feat: add delete subscription plan and delete tags APIs with response validation
This commit is contained in:
parent
f97c79aaa9
commit
9a5bddef6a
29
app/apis/admin/delete-subscribe-plan.ts
Normal file
29
app/apis/admin/delete-subscribe-plan.ts
Normal 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)
|
||||||
|
}
|
||||||
|
}
|
||||||
30
app/apis/admin/delete-tags.ts
Normal file
30
app/apis/admin/delete-tags.ts
Normal 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)
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user