Pull Request branch dev-clone to main #1
|
|
@ -0,0 +1,83 @@
|
|||
import client from "@/honoClient";
|
||||
import fetchRPC from "@/utils/fetchRPC";
|
||||
import { queryOptions } from "@tanstack/react-query";
|
||||
import { InferRequestType } from "hono";
|
||||
|
||||
export const aspectQueryOptions = (page: number, limit: number, q?: string) =>
|
||||
queryOptions({
|
||||
queryKey: ["management-aspect", { page, limit, q }],
|
||||
queryFn: async () => {
|
||||
const response = await fetchRPC(
|
||||
client["management-aspect"].$get({
|
||||
query: {
|
||||
limit: String(limit),
|
||||
page: String(page),
|
||||
q,
|
||||
},
|
||||
})
|
||||
);
|
||||
|
||||
return response;
|
||||
},
|
||||
});
|
||||
|
||||
export const getAspectByIdQueryOptions = (aspectId: string | undefined) =>
|
||||
queryOptions({
|
||||
queryKey: ["management-aspect", aspectId],
|
||||
queryFn: () =>
|
||||
fetchRPC(
|
||||
client["management-aspect"][":id"].$get({
|
||||
param: {
|
||||
id: aspectId!,
|
||||
},
|
||||
query: {},
|
||||
})
|
||||
),
|
||||
enabled: Boolean(aspectId),
|
||||
});
|
||||
|
||||
export const createAspect = async (
|
||||
json: { name: string; subAspects?: string }
|
||||
) => {
|
||||
try {
|
||||
return await fetchRPC(
|
||||
client["management-aspect"].$post({
|
||||
json,
|
||||
})
|
||||
);
|
||||
} catch (error) {
|
||||
console.error("Error creating aspect:", error);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
export const updateAspect = async (
|
||||
form: { id: string; name: string; subAspects?: string }
|
||||
) => {
|
||||
try {
|
||||
const payload = {
|
||||
name: form.name,
|
||||
subAspects: form.subAspects
|
||||
? JSON.parse(form.subAspects)
|
||||
: [],
|
||||
};
|
||||
|
||||
return await fetchRPC(
|
||||
client["management-aspect"][":id"].$patch({
|
||||
param: {
|
||||
id: form.id,
|
||||
},
|
||||
json: payload,
|
||||
})
|
||||
);
|
||||
} catch (error) {
|
||||
console.error("Error updating aspect:", error);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
export const deleteAspect = async (id: string) => {
|
||||
return await fetchRPC(
|
||||
(client["management-aspect"] as { [key: string]: any })[id].$delete()
|
||||
);
|
||||
};
|
||||
Loading…
Reference in New Issue
Block a user