diff --git a/src/app/interceptors/cache.interceptor.ts b/src/app/interceptors/cache.interceptor.ts index 0d67ce5..57ee03e 100644 --- a/src/app/interceptors/cache.interceptor.ts +++ b/src/app/interceptors/cache.interceptor.ts @@ -14,8 +14,8 @@ export const cacheInterceptor: HttpInterceptorFn = (req, next) => { // Кэшируем списки категорий, товары категорий и отдельные товары const isCategoryList = /\/category$/.test(req.url); - const isCategoryItems = /\/category\/\d+/.test(req.url); - const isItem = /\/items\/\d+/.test(req.url); + const isCategoryItems = /\/category\/[^/?]+/.test(req.url); + const isItem = /\/items\/[^/?]+/.test(req.url); if (!isCategoryList && !isCategoryItems && !isItem) { return next(req); } diff --git a/src/app/interceptors/mock-data.interceptor.ts b/src/app/interceptors/mock-data.interceptor.ts index 6c702c3..8575414 100644 --- a/src/app/interceptors/mock-data.interceptor.ts +++ b/src/app/interceptors/mock-data.interceptor.ts @@ -661,8 +661,10 @@ function getAllVisibleItems(): any[] { return MOCK_ITEMS.filter(i => i.visible !== false); } -function getItemsByCategoryId(categoryID: number): any[] { - return getAllVisibleItems().filter(i => i.categoryID === categoryID); +function getItemsByCategoryId(categoryID: number | string): any[] { + return getAllVisibleItems().filter(i => + i.categoryID === categoryID || i.subcategoryId === categoryID + ); } function respond(body: T, delayMs = 150) { @@ -689,18 +691,23 @@ export const mockDataInterceptor: HttpInterceptorFn = (req, next) => { } // ── GET /category/:id (items for a category) - const catItemsMatch = url.match(/\/category\/(\d+)$/); + const catItemsMatch = url.match(/\/category\/([^/?]+)$/); if (catItemsMatch && req.method === 'GET') { - const catId = parseInt(catItemsMatch[1], 10); + const raw = catItemsMatch[1]; + const num = Number(raw); + const catId = Number.isFinite(num) ? num : raw; const items = getItemsByCategoryId(catId); return respond(items); } // ── GET /item/:id - const itemMatch = url.match(/\/item\/(\d+)$/); + const itemMatch = url.match(/\/item\/([^/?]+)$/); if (itemMatch && req.method === 'GET') { - const itemId = parseInt(itemMatch[1], 10); - const item = MOCK_ITEMS.find(i => i.itemID === itemId); + const raw = itemMatch[1]; + const num = Number(raw); + const item = MOCK_ITEMS.find(i => + Number.isFinite(num) ? i.itemID === num : i.id === raw + ); if (item) { return respond(item); } diff --git a/src/environments/environment.novo.ts b/src/environments/environment.novo.ts index b194ed0..d639f02 100644 --- a/src/environments/environment.novo.ts +++ b/src/environments/environment.novo.ts @@ -15,5 +15,5 @@ export const environment = { armenia: '+374 98 731231', support: '+374 98 731231' }, - useMockData: true + useMockData: false };