From a72d2fd18eaefd421e0c9132d7395af624e1797b Mon Sep 17 00:00:00 2001 From: Mamalizz Date: Fri, 21 Feb 2025 23:12:40 +0330 Subject: [PATCH] added use get all tickets --- .../api/tickets/useGetAllTickets.ts | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 frontend/composables/api/tickets/useGetAllTickets.ts diff --git a/frontend/composables/api/tickets/useGetAllTickets.ts b/frontend/composables/api/tickets/useGetAllTickets.ts new file mode 100644 index 0000000..81c7c27 --- /dev/null +++ b/frontend/composables/api/tickets/useGetAllTickets.ts @@ -0,0 +1,44 @@ +// imports + +import { useQuery } from "@tanstack/vue-query"; +import { API_ENDPOINTS, QUERY_KEYS } from "~/constants"; + +// types + +export type GetAllTicketsResponse = ApiPaginated; + +export type GetAllTicketsFilters = { + sort: string | undefined; + filter: string | undefined; + page: string | string[]; +}; + +const useGetAllTickets = (params: Ref) => { + // state + + const { $axios: axios } = useNuxtApp(); + + // methods + + const handleGetAllTickets = async (params: GetAllTicketsFilters) => { + const { data } = await axios.get( + API_ENDPOINTS.tickets.get_all, + { + params: { + sort: params.sort, + filter: params.filter, + offset: Number(params.page) * 10 - 10, + limit: 10, + }, + } + ); + return data; + }; + + return useQuery({ + queryKey: [QUERY_KEYS.tickets, params], + queryFn: () => handleGetAllTickets(params.value), + }); +}; + +export default useGetAllTickets;