Commit 398ffbd7 authored by Oleg Nikolaev's avatar Oleg Nikolaev
Browse files

MAX-11: Trade-in, Credit, Redeem pages

parent feb7db4c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
{
  "latest": "5.12.4",
  "lastUpdateCheck": 1744262333706,
  "lastUpdateCheck": 1744610754125,
  "lastNotification": 1744262491140
}
+1 −4
Original line number Diff line number Diff line
@@ -30,10 +30,7 @@
    },
    "dynamicBlocks": {
      "type": "dynamiczone",
      "components": [
        "page-block.section-title-and-description",
        "page-block.cards-list"
      ],
      "components": ["page-block.cards-list"],
      "min": 1
    }
  }
+39 −0
Original line number Diff line number Diff line
{
  "kind": "collectionType",
  "collectionName": "credit_pages",
  "info": {
    "singularName": "credit-page",
    "pluralName": "credit-pages",
    "displayName": "CreditPage",
    "description": ""
  },
  "options": {
    "draftAndPublish": true
  },
  "attributes": {
    "site": {
      "type": "relation",
      "relation": "oneToOne",
      "target": "api::site.site",
      "inversedBy": "credit_page"
    },
    "banner": {
      "type": "component",
      "repeatable": false,
      "component": "page-block.banner"
    },
    "breadcrumb": {
      "type": "component",
      "repeatable": false,
      "component": "page-block.breadcrumb"
    },
    "dynamicBlocks": {
      "type": "dynamiczone",
      "components": [
        "page-block.section-title-and-description",
        "page-block.cards-list"
      ],
      "min": 1
    }
  }
}
+55 −0
Original line number Diff line number Diff line
/**
 * credit-page controller
 */

import { Context } from "koa";

import { factories } from "@strapi/strapi";
import { CUSTOM_REQUEST_HEADERS } from "../../../lib/constants/custom-headers";
import { bannerComponentRetrievingConfig } from "../../../lib/api-utils/data-retrieving-configs";
import { 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::credit-page.credit-page",
  ({ strapi }) => ({
    async getCreditPage(ctx: Context) {
      const creditPage = await strapi
        .documents("api::credit-page.credit-page")
        .findFirst({
          filters: {
            site: {
              documentId: ctx.request.headers[
                CUSTOM_REQUEST_HEADERS.siteDocumentId
              ] as string,
            },
          },
          fields: [],
          populate: {
            banner: bannerComponentRetrievingConfig,
            breadcrumb: breadcrumbComponentRetrievingConfig,
            dynamicBlocks: dynamicBlocksRetrievingConfig,
          },
        });

      if (!creditPage) {
        return ctx.notFound("Page not found");
      }

      const responseBody = {
        banner: formatBanner(creditPage.banner),
        breadcrumb: formatBreadcrumb(creditPage.breadcrumb),
        dynamicBlocks: formatDynamicBlocks(creditPage.dynamicBlocks),
      };

      ctx.body = responseBody;
    },
  }),
);
+16 −0
Original line number Diff line number Diff line
/**
 * credit-page router
 */

export default {
  routes: [
    {
      method: "GET",
      path: "/pages/credit-page",
      handler: "credit-page.getCreditPage",
      config: {
        auth: false,
      },
    },
  ],
};
Loading