diff --git a/frontend/src/lib/post/adapter/gateway/postInfoResponseDto.ts b/frontend/src/lib/post/adapter/gateway/postInfoResponseDto.ts index 861244b..846df5d 100644 --- a/frontend/src/lib/post/adapter/gateway/postInfoResponseDto.ts +++ b/frontend/src/lib/post/adapter/gateway/postInfoResponseDto.ts @@ -4,6 +4,7 @@ import z from 'zod'; export const PostInfoResponseSchema = z.object({ id: z.int32(), + semantic_id: z.string(), title: z.string(), description: z.string(), preview_image_url: z.url(), @@ -13,6 +14,7 @@ export const PostInfoResponseSchema = z.object({ export class PostInfoResponseDto { readonly id: number; + readonly semanticId: string; readonly title: string; readonly description: string; readonly previewImageUrl: URL; @@ -21,6 +23,7 @@ export class PostInfoResponseDto { private constructor(props: { id: number; + semanticId: string; title: string; description: string; previewImageUrl: URL; @@ -28,6 +31,7 @@ export class PostInfoResponseDto { publishedTime: Date | null; }) { this.id = props.id; + this.semanticId = props.semanticId; this.title = props.title; this.description = props.description; this.previewImageUrl = props.previewImageUrl; @@ -45,6 +49,7 @@ export class PostInfoResponseDto { return new PostInfoResponseDto({ id: parsedJson.id, + semanticId: parsedJson.semantic_id, title: parsedJson.title, description: parsedJson.description, previewImageUrl: new URL(parsedJson.preview_image_url), @@ -56,6 +61,7 @@ export class PostInfoResponseDto { toEntity(): PostInfo { return new PostInfo({ id: this.id, + semanticId: this.semanticId, title: this.title, description: this.description, previewImageUrl: this.previewImageUrl, diff --git a/frontend/src/lib/post/adapter/presenter/postInfoViewModel.ts b/frontend/src/lib/post/adapter/presenter/postInfoViewModel.ts index 7fcfcbd..5045165 100644 --- a/frontend/src/lib/post/adapter/presenter/postInfoViewModel.ts +++ b/frontend/src/lib/post/adapter/presenter/postInfoViewModel.ts @@ -6,6 +6,7 @@ import type { PostInfo } from '$lib/post/domain/entity/postInfo'; export class PostInfoViewModel { readonly id: number; + readonly semanticId: string; readonly title: string; readonly description: string; readonly previewImageUrl: URL; @@ -14,6 +15,7 @@ export class PostInfoViewModel { private constructor(props: { id: number; + semanticId: string; title: string; description: string; previewImageUrl: URL; @@ -21,6 +23,7 @@ export class PostInfoViewModel { publishedTime: Date | null; }) { this.id = props.id; + this.semanticId = props.semanticId; this.title = props.title; this.description = props.description; this.previewImageUrl = props.previewImageUrl; @@ -31,6 +34,7 @@ export class PostInfoViewModel { static fromEntity(postInfo: PostInfo): PostInfoViewModel { return new PostInfoViewModel({ id: postInfo.id, + semanticId: postInfo.semanticId, title: postInfo.title, description: postInfo.description, previewImageUrl: postInfo.previewImageUrl, @@ -47,6 +51,7 @@ export class PostInfoViewModel { return new PostInfoViewModel({ id: props.id, + semanticId: props.semanticId, title: props.title, description: props.description, previewImageUrl: new URL(props.previewImageUrl), @@ -66,6 +71,7 @@ export class PostInfoViewModel { dehydrate(): DehydratedPostInfoProps { return { id: this.id, + semanticId: this.semanticId, title: this.title, description: this.description, previewImageUrl: this.previewImageUrl.href, @@ -77,6 +83,7 @@ export class PostInfoViewModel { export interface DehydratedPostInfoProps { id: number; + semanticId: string; title: string; description: string; previewImageUrl: string; diff --git a/frontend/src/lib/post/domain/entity/postInfo.ts b/frontend/src/lib/post/domain/entity/postInfo.ts index 002c788..9da7344 100644 --- a/frontend/src/lib/post/domain/entity/postInfo.ts +++ b/frontend/src/lib/post/domain/entity/postInfo.ts @@ -2,6 +2,7 @@ import type { Label } from '$lib/post/domain/entity/label'; export class PostInfo { readonly id: number; + readonly semanticId: string; readonly title: string; readonly description: string; readonly previewImageUrl: URL; @@ -10,6 +11,7 @@ export class PostInfo { constructor(props: { id: number; + semanticId: string; title: string; description: string; previewImageUrl: URL; @@ -17,6 +19,7 @@ export class PostInfo { publishedTime: Date | null; }) { this.id = props.id; + this.semanticId = props.semanticId; this.title = props.title; this.description = props.description; this.previewImageUrl = props.previewImageUrl; diff --git a/frontend/src/lib/post/framework/ui/PostPreview.svelte b/frontend/src/lib/post/framework/ui/PostPreview.svelte index 7a22e4b..050d3e1 100644 --- a/frontend/src/lib/post/framework/ui/PostPreview.svelte +++ b/frontend/src/lib/post/framework/ui/PostPreview.svelte @@ -17,7 +17,7 @@ } - +