50 lines
1.9 KiB
TypeScript
50 lines
1.9 KiB
TypeScript
import { get, post, put, del } from './request'
|
|
import type { Anniversary, AnniversaryFormData, AnniversaryCategory, AnniversaryCategoryFormData } from './types'
|
|
|
|
export type AnniversaryResponse = Anniversary
|
|
export type AnniversaryCategoryResponse = AnniversaryCategory
|
|
|
|
export interface GetAnniversariesParams {
|
|
category_id?: number
|
|
}
|
|
|
|
export const anniversaryApi = {
|
|
// ============ 纪念日 ============
|
|
getAnniversaries(params?: GetAnniversariesParams): Promise<AnniversaryResponse[]> {
|
|
return get<AnniversaryResponse[]>('/anniversaries', { params })
|
|
},
|
|
|
|
getAnniversary(id: number): Promise<AnniversaryResponse> {
|
|
return get<AnniversaryResponse>(`/anniversaries/${id}`)
|
|
},
|
|
|
|
createAnniversary(data: AnniversaryFormData): Promise<AnniversaryResponse> {
|
|
return post<AnniversaryResponse>('/anniversaries', data)
|
|
},
|
|
|
|
updateAnniversary(id: number, data: Partial<AnniversaryFormData>): Promise<AnniversaryResponse> {
|
|
return put<AnniversaryResponse>(`/anniversaries/${id}`, data)
|
|
},
|
|
|
|
deleteAnniversary(id: number): Promise<{ success: boolean; message?: string }> {
|
|
return del<{ success: boolean; message?: string }>(`/anniversaries/${id}`)
|
|
},
|
|
|
|
// ============ 纪念日分类 ============
|
|
getCategories(): Promise<AnniversaryCategoryResponse[]> {
|
|
return get<AnniversaryCategoryResponse[]>('/anniversary-categories')
|
|
},
|
|
|
|
createCategory(data: AnniversaryCategoryFormData): Promise<AnniversaryCategoryResponse> {
|
|
return post<AnniversaryCategoryResponse>('/anniversary-categories', data)
|
|
},
|
|
|
|
updateCategory(id: number, data: Partial<AnniversaryCategoryFormData>): Promise<AnniversaryCategoryResponse> {
|
|
return put<AnniversaryCategoryResponse>(`/anniversary-categories/${id}`, data)
|
|
},
|
|
|
|
deleteCategory(id: number): Promise<{ success: boolean; message?: string }> {
|
|
return del<{ success: boolean; message?: string }>(`/anniversary-categories/${id}`)
|
|
},
|
|
}
|