51 lines
1.1 KiB
TypeScript
51 lines
1.1 KiB
TypeScript
// imports
|
|
|
|
import { useMutation } from "@tanstack/vue-query";
|
|
import { API_ENDPOINTS } from "~/constants";
|
|
|
|
// types
|
|
|
|
export type CreateTicketRequest = {
|
|
ticket_category: string | undefined;
|
|
order: number | undefined;
|
|
subject: string;
|
|
content: string;
|
|
attachments: {
|
|
id: number;
|
|
file_link: string;
|
|
date: string;
|
|
size: number;
|
|
name: string;
|
|
}[];
|
|
};
|
|
|
|
const useCreateTicket = () => {
|
|
// state
|
|
|
|
const { $axios: axios } = useNuxtApp();
|
|
|
|
// methods
|
|
|
|
const handleCreateTicket = async (params: CreateTicketRequest) => {
|
|
const { data } = await axios.post(
|
|
API_ENDPOINTS.account.address.update,
|
|
{
|
|
...params,
|
|
},
|
|
{
|
|
headers: {
|
|
"Content-Type": "multipart/form-data",
|
|
},
|
|
}
|
|
);
|
|
return data;
|
|
};
|
|
|
|
return useMutation({
|
|
mutationFn: (ticketData: CreateTicketRequest) =>
|
|
handleCreateTicket(ticketData),
|
|
});
|
|
};
|
|
|
|
export default useCreateTicket;
|