feat: add liked for post and note model
Signed-off-by: Innei <tukon479@gmail.com>
This commit is contained in:
@@ -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<ResponseWrapper> implements IController {
|
||||
* 最新日记
|
||||
*/
|
||||
getLatest() {
|
||||
return this.proxy.latest.get<NoteWrappedPayload>()
|
||||
return this.proxy.latest.get<NoteWrappedWithLikedPayload>()
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取一篇日记, 根据 Id 查询需要鉴权
|
||||
* 获取一篇日记,根据 Id 查询需要鉴权
|
||||
* @param id id | nid
|
||||
* @param password 访问密码
|
||||
*/
|
||||
@@ -68,7 +72,7 @@ export class NoteController<ResponseWrapper> implements IController {
|
||||
const [id, password = undefined, singleResult = false] = rest
|
||||
|
||||
if (typeof id === 'number') {
|
||||
return this.proxy.nid(id.toString()).get<NoteWrappedPayload>({
|
||||
return this.proxy.nid(id.toString()).get<NoteWrappedWithLikedPayload>({
|
||||
params: { password, single: singleResult ? '1' : undefined },
|
||||
})
|
||||
} else {
|
||||
|
||||
@@ -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<ResponseWrapper> implements IController {
|
||||
getPost(
|
||||
categoryName: string,
|
||||
slug: string,
|
||||
): RequestProxyResult<PostModel, ResponseWrapper>
|
||||
): RequestProxyResult<ModelWithLiked<PostModel>, ResponseWrapper>
|
||||
/**
|
||||
* 根据 ID 查找文章
|
||||
* @param id
|
||||
@@ -83,7 +83,7 @@ export class PostController<ResponseWrapper> implements IController {
|
||||
* 获取最新的文章
|
||||
*/
|
||||
getLatest() {
|
||||
return this.proxy.latest.get<PostModel>()
|
||||
return this.proxy.latest.get<ModelWithLiked<PostModel>>()
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -43,3 +43,7 @@ export interface TextBaseModel extends BaseCommentIndexModel {
|
||||
|
||||
meta?: Record<string, any>
|
||||
}
|
||||
|
||||
export type ModelWithLiked<T> = T & {
|
||||
liked: boolean
|
||||
}
|
||||
|
||||
@@ -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<NoteModel>
|
||||
prev?: Partial<NoteModel>
|
||||
}
|
||||
|
||||
export interface NoteWrappedWithLikedPayload {
|
||||
data: ModelWithLiked<NoteModel>
|
||||
next?: Partial<NoteModel>
|
||||
prev?: Partial<NoteModel>
|
||||
}
|
||||
|
||||
@@ -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}": [
|
||||
|
||||
Reference in New Issue
Block a user