From 1073c6764612a6a3c46e13d32807d3d72a1662d5 Mon Sep 17 00:00:00 2001 From: Innei Date: Thu, 22 Dec 2022 18:07:40 +0800 Subject: [PATCH] feat: add `liked` for post and note model Signed-off-by: Innei --- packages/api-client/controllers/note.ts | 12 ++++++++---- packages/api-client/controllers/post.ts | 6 +++--- packages/api-client/models/base.ts | 4 ++++ packages/api-client/models/note.ts | 8 +++++++- packages/api-client/package.json | 4 +++- 5 files changed, 25 insertions(+), 9 deletions(-) diff --git a/packages/api-client/controllers/note.ts b/packages/api-client/controllers/note.ts index b70c2134..6002123e 100644 --- a/packages/api-client/controllers/note.ts +++ b/packages/api-client/controllers/note.ts @@ -3,7 +3,11 @@ import { IController } from '~/interfaces/controller' import { IRequestHandler, RequestProxyResult } from '~/interfaces/request' import { SelectFields } from '~/interfaces/types' import { PaginateResult } from '~/models/base' -import { NoteModel, NoteWrappedPayload } from '~/models/note' +import { + NoteModel, + NoteWrappedPayload, + NoteWrappedWithLikedPayload, +} from '~/models/note' import { autoBind } from '~/utils/auto-bind' import { HTTPClient } from '../core/client' @@ -40,11 +44,11 @@ export class NoteController implements IController { * 最新日记 */ getLatest() { - return this.proxy.latest.get() + return this.proxy.latest.get() } /** - * 获取一篇日记, 根据 Id 查询需要鉴权 + * 获取一篇日记,根据 Id 查询需要鉴权 * @param id id | nid * @param password 访问密码 */ @@ -68,7 +72,7 @@ export class NoteController implements IController { const [id, password = undefined, singleResult = false] = rest if (typeof id === 'number') { - return this.proxy.nid(id.toString()).get({ + return this.proxy.nid(id.toString()).get({ params: { password, single: singleResult ? '1' : undefined }, }) } else { diff --git a/packages/api-client/controllers/post.ts b/packages/api-client/controllers/post.ts index c41cdbd6..aa527fa4 100644 --- a/packages/api-client/controllers/post.ts +++ b/packages/api-client/controllers/post.ts @@ -2,7 +2,7 @@ import { IRequestAdapter } from '~/interfaces/adapter' import { IController } from '~/interfaces/controller' import { IRequestHandler, RequestProxyResult } from '~/interfaces/request' import { SelectFields } from '~/interfaces/types' -import { PaginateResult } from '~/models/base' +import { ModelWithLiked, PaginateResult } from '~/models/base' import { PostModel } from '~/models/post' import { autoBind } from '~/utils/auto-bind' @@ -65,7 +65,7 @@ export class PostController implements IController { getPost( categoryName: string, slug: string, - ): RequestProxyResult + ): RequestProxyResult, ResponseWrapper> /** * 根据 ID 查找文章 * @param id @@ -83,7 +83,7 @@ export class PostController implements IController { * 获取最新的文章 */ getLatest() { - return this.proxy.latest.get() + return this.proxy.latest.get>() } /** diff --git a/packages/api-client/models/base.ts b/packages/api-client/models/base.ts index 89d89e86..650756ab 100644 --- a/packages/api-client/models/base.ts +++ b/packages/api-client/models/base.ts @@ -43,3 +43,7 @@ export interface TextBaseModel extends BaseCommentIndexModel { meta?: Record } + +export type ModelWithLiked = T & { + liked: boolean +} diff --git a/packages/api-client/models/note.ts b/packages/api-client/models/note.ts index 8b451d99..52078195 100644 --- a/packages/api-client/models/note.ts +++ b/packages/api-client/models/note.ts @@ -1,4 +1,4 @@ -import { TextBaseModel } from './base' +import { ModelWithLiked, TextBaseModel } from './base' import { TopicModel } from './topic' export interface NoteModel extends TextBaseModel { @@ -38,3 +38,9 @@ export interface NoteWrappedPayload { next?: Partial prev?: Partial } + +export interface NoteWrappedWithLikedPayload { + data: ModelWithLiked + next?: Partial + prev?: Partial +} diff --git a/packages/api-client/package.json b/packages/api-client/package.json index f9653cdc..81478fa5 100644 --- a/packages/api-client/package.json +++ b/packages/api-client/package.json @@ -51,7 +51,9 @@ ], "after": [ "npm publish --access=public" - ] + ], + "tag": false, + "commit_message": "chore(release): bump @mx-space/api-client to v${NEW_VERSION}" }, "lint-staged": { "*.{js,jsx,ts,tsx}": [