feat: add delete subscription plan and delete tags APIs with response validation

This commit is contained in:
fredy.siswanto 2025-03-11 00:21:09 +07:00
parent f97c79aaa9
commit 9a5bddef6a
2 changed files with 59 additions and 0 deletions

View File

@ -0,0 +1,29 @@
import { z } from 'zod'
import { HttpServer, type THttpServer } from '~/libs/http-server'
import type { TSubscribePlanSchema } from '~/pages/form-subscriptions-plan'
const subscribePlanResponseSchema = z.object({
data: z.object({
Message: z.string(),
}),
})
type TTSubscribePlanId = Pick<TSubscribePlanSchema, 'id'>
type TParameters = {
payload: TTSubscribePlanId
} & THttpServer
export const deleteSubscribePlanRequest = async (parameters: TParameters) => {
const { payload, ...restParameters } = parameters
const { id } = payload
try {
const { data } = await HttpServer(restParameters).delete(
`/api/subscribe-plan/${id}/delete`,
)
return subscribePlanResponseSchema.parse(data)
} catch (error) {
// eslint-disable-next-line unicorn/no-useless-promise-resolve-reject
return Promise.reject(error)
}
}

View File

@ -0,0 +1,30 @@
import { z } from 'zod'
import { HttpServer, type THttpServer } from '~/libs/http-server'
import type { TTagSchema } from '~/pages/form-tag'
const deleteTagsResponseSchema = z.object({
data: z.object({
Message: z.string(),
}),
})
type TTagsId = Pick<TTagSchema, 'id'>
type TParameters = {
payload: TTagsId
} & THttpServer
export type TDeleteTagsSchema = z.infer<typeof deleteTagsResponseSchema>
export const deleteTagsRequest = async (parameters: TParameters) => {
const { payload, ...restParameters } = parameters
const { id } = payload
try {
const { data } = await HttpServer(restParameters).delete(
`/api/tag/${id}/delete`,
)
return deleteTagsResponseSchema.parse(data)
} catch (error) {
// eslint-disable-next-line unicorn/no-useless-promise-resolve-reject
return Promise.reject(error)
}
}