Loading .strapi-updater.json +3 −3 Original line number Diff line number Diff line { "latest": "5.12.4", "lastUpdateCheck": 1744719394746, "lastNotification": 1744262491140 "latest": "5.12.5", "lastUpdateCheck": 1744806284674, "lastNotification": 1744867304898 } config/middlewares.ts +9 −1 Original line number Diff line number Diff line import { CUSTOM_REQUEST_HEADERS } from "../src/lib/constants/custom-headers"; // TODO: Setup cors export default [ "strapi::logger", "strapi::errors", "strapi::security", "strapi::cors", { name: "strapi::cors", config: { headers: [CUSTOM_REQUEST_HEADERS.brand], }, }, "strapi::poweredBy", "strapi::query", "strapi::body", Loading src/api/corporate-sales-page/content-types/corporate-sales-page/schema.json +15 −6 Original line number Diff line number Diff line Loading @@ -17,11 +17,6 @@ "component": "page-block.banner", "required": false }, "breadcrumb": { "type": "component", "repeatable": false, "component": "page-block.breadcrumb" }, "site": { "type": "relation", "relation": "oneToOne", Loading @@ -30,8 +25,22 @@ }, "dynamicBlocks": { "type": "dynamiczone", "components": ["page-block.cards-list"], "components": [ "page-block.cards-list", "page-block.section-with-services-cards" ], "min": 1 }, "pageTitle": { "type": "string", "required": true, "default": "Корпоративным клиентам" }, "pagePreviewImage": { "type": "media", "multiple": false, "required": false, "allowedTypes": ["images", "files"] } } } src/api/corporate-sales-page/controllers/corporate-sales-page.ts +4 −43 Original line number Diff line number Diff line Loading @@ -5,53 +5,14 @@ import { Context } from "koa"; import { factories } from "@strapi/strapi"; import { CUSTOM_REQUEST_HEADERS } from "../../../lib/constants/custom-headers"; import { bannerComponentRetrievingConfig, formatBanner, } from "../../../lib/api-utils/data-retrieving-configs/banner"; import { breadcrumbComponentRetrievingConfig, formatBreadcrumb, } from "../../../lib/api-utils/data-retrieving-configs/breadcrumb"; import { dynamicBlocksRetrievingConfig, formatDynamicBlocks, } from "../../../lib/api-utils/data-retrieving-configs/dynamic-blocks"; export default factories.createCoreController( "api::corporate-sales-page.corporate-sales-page", ({ strapi }) => ({ async getCorporateSalesPage(ctx: Context) { const corporateSalesPage = await strapi .documents("api::corporate-sales-page.corporate-sales-page") .findFirst({ filters: { site: { documentId: ctx.request.headers[ CUSTOM_REQUEST_HEADERS.siteDocumentId ] as string, }, }, fields: [], populate: { banner: bannerComponentRetrievingConfig, breadcrumb: breadcrumbComponentRetrievingConfig, dynamicBlocks: dynamicBlocksRetrievingConfig, }, }); if (!corporateSalesPage) { return ctx.notFound("Page not found"); } const responseBody = { banner: formatBanner(corporateSalesPage.banner), breadcrumb: formatBreadcrumb(corporateSalesPage.breadcrumb), dynamicBlocks: formatDynamicBlocks(corporateSalesPage.dynamicBlocks), }; ctx.body = responseBody; getCorporateSalesPage(ctx: Context) { return strapi .service("api::corporate-sales-page.corporate-sales-page") .getPage(ctx); }, }), ); src/api/corporate-sales-page/services/corporate-sales-page.ts 0 → 100644 +12 −0 Original line number Diff line number Diff line import { factories } from "@strapi/strapi"; import { generateGetServiceBaseInfo, generateGetServiceData, } from "../../../lib/api-utils/service-methods-generators/generate-service-methods"; const serviceApiKey = "api::corporate-sales-page.corporate-sales-page"; export default factories.createCoreService(serviceApiKey, ({ strapi }) => ({ getPage: generateGetServiceData(strapi, serviceApiKey), getPageBaseInfo: generateGetServiceBaseInfo(strapi, serviceApiKey), })); Loading
.strapi-updater.json +3 −3 Original line number Diff line number Diff line { "latest": "5.12.4", "lastUpdateCheck": 1744719394746, "lastNotification": 1744262491140 "latest": "5.12.5", "lastUpdateCheck": 1744806284674, "lastNotification": 1744867304898 }
config/middlewares.ts +9 −1 Original line number Diff line number Diff line import { CUSTOM_REQUEST_HEADERS } from "../src/lib/constants/custom-headers"; // TODO: Setup cors export default [ "strapi::logger", "strapi::errors", "strapi::security", "strapi::cors", { name: "strapi::cors", config: { headers: [CUSTOM_REQUEST_HEADERS.brand], }, }, "strapi::poweredBy", "strapi::query", "strapi::body", Loading
src/api/corporate-sales-page/content-types/corporate-sales-page/schema.json +15 −6 Original line number Diff line number Diff line Loading @@ -17,11 +17,6 @@ "component": "page-block.banner", "required": false }, "breadcrumb": { "type": "component", "repeatable": false, "component": "page-block.breadcrumb" }, "site": { "type": "relation", "relation": "oneToOne", Loading @@ -30,8 +25,22 @@ }, "dynamicBlocks": { "type": "dynamiczone", "components": ["page-block.cards-list"], "components": [ "page-block.cards-list", "page-block.section-with-services-cards" ], "min": 1 }, "pageTitle": { "type": "string", "required": true, "default": "Корпоративным клиентам" }, "pagePreviewImage": { "type": "media", "multiple": false, "required": false, "allowedTypes": ["images", "files"] } } }
src/api/corporate-sales-page/controllers/corporate-sales-page.ts +4 −43 Original line number Diff line number Diff line Loading @@ -5,53 +5,14 @@ import { Context } from "koa"; import { factories } from "@strapi/strapi"; import { CUSTOM_REQUEST_HEADERS } from "../../../lib/constants/custom-headers"; import { bannerComponentRetrievingConfig, formatBanner, } from "../../../lib/api-utils/data-retrieving-configs/banner"; import { breadcrumbComponentRetrievingConfig, formatBreadcrumb, } from "../../../lib/api-utils/data-retrieving-configs/breadcrumb"; import { dynamicBlocksRetrievingConfig, formatDynamicBlocks, } from "../../../lib/api-utils/data-retrieving-configs/dynamic-blocks"; export default factories.createCoreController( "api::corporate-sales-page.corporate-sales-page", ({ strapi }) => ({ async getCorporateSalesPage(ctx: Context) { const corporateSalesPage = await strapi .documents("api::corporate-sales-page.corporate-sales-page") .findFirst({ filters: { site: { documentId: ctx.request.headers[ CUSTOM_REQUEST_HEADERS.siteDocumentId ] as string, }, }, fields: [], populate: { banner: bannerComponentRetrievingConfig, breadcrumb: breadcrumbComponentRetrievingConfig, dynamicBlocks: dynamicBlocksRetrievingConfig, }, }); if (!corporateSalesPage) { return ctx.notFound("Page not found"); } const responseBody = { banner: formatBanner(corporateSalesPage.banner), breadcrumb: formatBreadcrumb(corporateSalesPage.breadcrumb), dynamicBlocks: formatDynamicBlocks(corporateSalesPage.dynamicBlocks), }; ctx.body = responseBody; getCorporateSalesPage(ctx: Context) { return strapi .service("api::corporate-sales-page.corporate-sales-page") .getPage(ctx); }, }), );
src/api/corporate-sales-page/services/corporate-sales-page.ts 0 → 100644 +12 −0 Original line number Diff line number Diff line import { factories } from "@strapi/strapi"; import { generateGetServiceBaseInfo, generateGetServiceData, } from "../../../lib/api-utils/service-methods-generators/generate-service-methods"; const serviceApiKey = "api::corporate-sales-page.corporate-sales-page"; export default factories.createCoreService(serviceApiKey, ({ strapi }) => ({ getPage: generateGetServiceData(strapi, serviceApiKey), getPageBaseInfo: generateGetServiceBaseInfo(strapi, serviceApiKey), }));