48f823a7c8
Merge branch 'main' into feature/308 #308 #308 #308 #308 Co-authored-by: miteruzo <miteruzo@naver.com> Reviewed-on: #315
48 lines
1.5 KiB
TypeScript
48 lines
1.5 KiB
TypeScript
import { apiDelete, apiGet, apiPost } from '@/lib/api'
|
|
|
|
import type { FetchPostsParams, Post, PostVersion } from '@/types'
|
|
|
|
|
|
export const fetchPosts = async (
|
|
{ url, title, tags, match, createdFrom, createdTo, updatedFrom, updatedTo,
|
|
originalCreatedFrom, originalCreatedTo, page, limit, order }: FetchPostsParams,
|
|
): Promise<{
|
|
posts: Post[]
|
|
count: number }> =>
|
|
await apiGet ('/posts', { params: {
|
|
...(url && { url }),
|
|
...(title && { title }),
|
|
...(tags && { tags }),
|
|
...(match && { match }),
|
|
...(createdFrom && { created_from: createdFrom }),
|
|
...(createdTo && { created_to: createdTo }),
|
|
...(updatedFrom && { updated_from: updatedFrom }),
|
|
...(updatedTo && { updated_to: updatedTo }),
|
|
...(originalCreatedFrom && { original_created_from: originalCreatedFrom }),
|
|
...(originalCreatedTo && { original_created_to: originalCreatedTo }),
|
|
...(page && { page }),
|
|
...(limit && { limit }),
|
|
...(order && { order }) } })
|
|
|
|
|
|
export const fetchPost = async (id: string): Promise<Post> => await apiGet (`/posts/${ id }`)
|
|
|
|
|
|
export const fetchPostChanges = async (
|
|
{ post, tag, page, limit }: {
|
|
post?: string
|
|
tag?: string
|
|
page: number
|
|
limit: number },
|
|
): Promise<{
|
|
versions: PostVersion[]
|
|
count: number }> =>
|
|
await apiGet ('/posts/versions', { params: { ...(post && { post }),
|
|
...(tag && { tag }),
|
|
page, limit } })
|
|
|
|
|
|
export const toggleViewedFlg = async (id: string, viewed: boolean): Promise<void> => {
|
|
await (viewed ? apiPost : apiDelete) (`/posts/${ id }/viewed`)
|
|
}
|