From 13a2d16eab8637b6250396548619cd2cdf80a3c3 Mon Sep 17 00:00:00 2001 From: 日高 凌 Date: Sat, 11 Feb 2023 07:55:29 +0900 Subject: feat: add type of gallery (#55) * update GalleryPost type * update gallery/featured type * update gallery/popular type * update gallery/posts type * update gallery/posts/create type * update gallery/posts/like type * update gallery/posts/show type * update gallery/posts/unlike type * update gallery/posts/update type --- src/api.types.ts | 16 ++++++++-------- src/entities.ts | 15 ++++++++++++++- 2 files changed, 22 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/api.types.ts b/src/api.types.ts index 2a08af7d64..4fbf42f917 100644 --- a/src/api.types.ts +++ b/src/api.types.ts @@ -317,15 +317,15 @@ export type Endpoints = { 'following/requests/reject': { req: { userId: User['id'] }; res: null; }; // gallery - 'gallery/featured': { req: TODO; res: TODO; }; - 'gallery/popular': { req: TODO; res: TODO; }; - 'gallery/posts': { req: TODO; res: TODO; }; - 'gallery/posts/create': { req: TODO; res: TODO; }; + 'gallery/featured': { req: null; res: GalleryPost[]; }; + 'gallery/popular': { req: null; res: GalleryPost[]; }; + 'gallery/posts': { req: { limit?: number; sinceId?: GalleryPost['id']; untilId?: GalleryPost['id']; }; res: GalleryPost[]; }; + 'gallery/posts/create': { req: { title: GalleryPost['title']; description?: GalleryPost['description']; fileIds: GalleryPost['fileIds']; isSensitive?: GalleryPost['isSensitive'] }; res: GalleryPost; }; 'gallery/posts/delete': { req: { postId: GalleryPost['id'] }; res: null; }; - 'gallery/posts/like': { req: TODO; res: TODO; }; - 'gallery/posts/show': { req: TODO; res: TODO; }; - 'gallery/posts/unlike': { req: TODO; res: TODO; }; - 'gallery/posts/update': { req: TODO; res: TODO; }; + 'gallery/posts/like': { req: { postId: GalleryPost['id'] }; res: null; }; + 'gallery/posts/show': { req: { postId: GalleryPost['id'] }; res: GalleryPost; }; + 'gallery/posts/unlike': { req: { postId: GalleryPost['id'] }; res: null; }; + 'gallery/posts/update': { req: { postId: GalleryPost['id']; title: GalleryPost['title']; description?: GalleryPost['description']; fileIds: GalleryPost['fileIds']; isSensitive?: GalleryPost['isSensitive'] }; res: GalleryPost; }; // games 'games/reversi/games': { req: TODO; res: TODO; }; diff --git a/src/entities.ts b/src/entities.ts index 7acffa32e7..37a8bc6184 100644 --- a/src/entities.ts +++ b/src/entities.ts @@ -123,7 +123,20 @@ export type DriveFile = { export type DriveFolder = TODO; -export type GalleryPost = TODO; +export type GalleryPost = { + id: ID; + createdAt: DateString; + updatedAt: DateString; + userId: User['id']; + user: User; + title: string; + description: string | null; + fileIds: DriveFile['id'][]; + files: DriveFile[]; + isSensitive: boolean; + likedCount: number; + isLiked?: boolean; +}; export type Note = { id: ID; -- cgit v1.2.3-freya