diff --git a/src/api/dto/page.ts b/src/api/dto/page.ts new file mode 100644 index 0000000..390fa03 --- /dev/null +++ b/src/api/dto/page.ts @@ -0,0 +1,40 @@ +import { Identifiable } from "@/data"; +import { Page } from "@/data/page"; +import { Transformer } from "@/serialization"; + +export interface PageDTO extends Identifiable { + accessName: string; + title: string; + titleEng: string; + content: string; + contentEng: string; +} + +export const pageDtoTransformer: Transformer = { + reverseTransform(subject: Page, context: undefined): PageDTO { + return { + id: subject.id, + accessName: subject.slug, + content: subject.content.pl, + contentEng: subject.content.en, + title: subject.title.pl, + titleEng: subject.title.en, + } + }, + transform(subject: PageDTO, context: undefined): Page { + return { + slug: subject.accessName, + id: subject.id, + content: { + pl: subject.content, + en: subject.contentEng + }, + title: { + pl: subject.title, + en: subject.titleEng + }, + }; + } +} + +export default pageDtoTransformer; diff --git a/src/api/page.tsx b/src/api/page.tsx index f1c69ee..1a5cd02 100644 --- a/src/api/page.tsx +++ b/src/api/page.tsx @@ -1,27 +1,13 @@ -// MOCK import { Page } from "@/data/page"; +import { PageDTO, pageDtoTransformer } from "./dto/page" +import { axios } from "@/api/index"; +import { prepare } from "@/routing"; -const tos = `

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Bestiarum vero nullum iudicium puto. Quare ad ea primum, si videtur; Duo Reges: constructio interrete. Eam tum adesse, cum dolor omnis absit; Sed ad bona praeterita redeamus. Facillimum id quidem est, inquam. Apud ceteros autem philosophos, qui quaesivit aliquid, tacet;

- -

Quorum altera prosunt, nocent altera. Eam stabilem appellas. Sed nimis multa. Quo plebiscito decreta a senatu est consuli quaestio Cn. Sin laboramus, quis est, qui alienae modum statuat industriae? Quod quidem nobis non saepe contingit. Si autem id non concedatur, non continuo vita beata tollitur. Illum mallem levares, quo optimum atque humanissimum virum, Cn. Id est enim, de quo quaerimus.

- -

Ille vero, si insipiens-quo certe, quoniam tyrannus -, numquam beatus; Sin dicit obscurari quaedam nec apparere, quia valde parva sint, nos quoque concedimus; Et quod est munus, quod opus sapientiae? Ab hoc autem quaedam non melius quam veteres, quaedam omnino relicta.

-` +const STATIC_PAGE_ENDPOINT = "/staticPage/:slug" export async function get(slug: string): Promise { - if (slug === "/regulamin" || slug === "/rules") { - return { - id: "tak", - content: { - pl: tos, - en: tos, - }, - title: { - pl: "Regulamin Praktyk", - en: "Terms of Internship", - }, - } - } + const response = await axios.get(prepare(STATIC_PAGE_ENDPOINT, { slug })) + const page = response.data; - throw new Error(); + return pageDtoTransformer.transform(page); } diff --git a/src/data/page.ts b/src/data/page.ts index a474e82..ca7e3c9 100644 --- a/src/data/page.ts +++ b/src/data/page.ts @@ -3,4 +3,5 @@ import { Identifiable, Multilingual } from "@/data/common"; export interface Page extends Identifiable { title: Multilingual; content: Multilingual; + slug: string; } diff --git a/webpack.config.js b/webpack.config.js index 94454fc..c98251d 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -51,12 +51,11 @@ const config = { ], devServer: { contentBase: path.resolve("./public/"), - port: 443, - host: 'system-praktyk.stg.kadet.net', + host: process.env.APP_HOST || 'system-praktyk-front.localhost', disableHostCheck: true, historyApiFallback: true, overlay: true, - https: true, + https: !!process.env.APP_HTTPS || false, proxy: { "/api": { target: "http://system-praktyk-front.localhost:8080/",