HotTRDealsBackend/routes/category.routes.js
2026-01-25 17:50:56 +00:00

50 lines
1.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const express = require("express");
const categoryService = require("../services/category.service"); // Kategori servisi
const router = express.Router();
const { mapCategoryToCategoryDetailsResponse }=require("../adapters/responses/categoryDetails.adapter")
const { mapDealToDealDetailResponse } = require("../adapters/responses/dealDetail.adapter")
const { mapPaginatedDealsToDealCardResponse } = require("../adapters/responses/dealCard.adapter")
router.get("/:slug", async (req, res) => {
const { slug } = req.params; // URL parametresinden slug alıyoruz
try {
const { category, breadcrumb } = await categoryService.findCategoryBySlug(slug); // Servisten kategori ve breadcrumb bilgilerini alıyoruz
if (!category) {
return res.status(404).json({ error: "Kategori bulunamadı" });
}
const response = mapCategoryToCategoryDetailsResponse(category, breadcrumb); // Adapter ile veriyi dönüştürüyoruz
res.json(response);
} catch (err) {
res.status(500).json({ error: "Kategori detayları alınırken bir hata oluştu", message: err.message });
}
});
router.get("/:slug/deals", async (req, res) => {
const { slug } = req.params;
const { page = 1, limit = 10, ...filters } = req.query;
try {
const { category } = await categoryService.findCategoryBySlug(slug);
if (!category) {
return res.status(404).json({ error: "Kategori bulunamadı" });
}
// Kategorinin fırsatlarını alıyoruz
const deals = await categoryService.getDealsByCategoryId(category.id, page, limit, filters);
const response = mapPaginatedDealsToDealCardResponse(payload)
// frontend DealCard[] bekliyor
res.json(response.results)
} catch (err) {
res.status(500).json({ error: "Kategoriye ait fırsatlar alınırken bir hata oluştu", message: err.message });
}
});
module.exports = router;