diff --git a/frontend/composables/api/tickets/useCreateTicket.ts b/frontend/composables/api/tickets/useCreateTicket.ts new file mode 100644 index 0000000..353e1cc --- /dev/null +++ b/frontend/composables/api/tickets/useCreateTicket.ts @@ -0,0 +1,50 @@ +// 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;