gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/modules/inbounds/api/inbounds.query.ts · v0.6.5
Source
1 3b7feef Mrdn 2y ago
2 3b7feef Mrdn 2y ago import { useQuery } from "@tanstack/react-query";
3 d636f3f Dawsh 2y ago import { fetch } from "@marzneshin/common/utils";
4 7738ec1 Mardin 2y ago import {
5 7738ec1 Mardin 2y ago FetchEntityReturn,
6 7738ec1 Mardin 2y ago UseEntityQueryProps,
7 7738ec1 Mardin 2y ago EntityQueryKeyType
8 7389ad0 Mardin 2y ago } from "@marzneshin/libs/entity-table";
9 3b7feef Mrdn 2y ago import { InboundType } from "../types";
10 3b7feef Mrdn 2y ago
11 7738ec1 Mardin 2y ago export async function fetchInbounds({ queryKey }: EntityQueryKeyType): FetchEntityReturn<InboundType> {
12 7738ec1 Mardin 2y ago const pagination = queryKey[1];
13 7738ec1 Mardin 2y ago const primaryFilter = queryKey[2];
14 7738ec1 Mardin 2y ago const filters = queryKey[4].filters;
15 7738ec1 Mardin 2y ago return fetch(`/inbounds`, {
16 7738ec1 Mardin 2y ago query: {
17 7738ec1 Mardin 2y ago ...pagination,
18 7738ec1 Mardin 2y ago ...filters,
19 7738ec1 Mardin 2y ago tag: primaryFilter,
20 7738ec1 Mardin 2y ago descending: queryKey[3].desc,
21 7738ec1 Mardin 2y ago order_by: queryKey[3].sortBy,
22 7738ec1 Mardin 2y ago }
23 7738ec1 Mardin 2y ago }).then((result) => {
24 7738ec1 Mardin 2y ago return {
25 7738ec1 Mardin 2y ago entities: result.items,
26 7738ec1 Mardin 2y ago pageCount: result.pages
27 7738ec1 Mardin 2y ago };
28 7738ec1 Mardin 2y ago })
29 3b7feef Mrdn 2y ago }
30 3b7feef Mrdn 2y ago
31 3b7feef Mrdn 2y ago export const InboundsQueryFetchKey = "inbounds";
32 3b7feef Mrdn 2y ago
33 7738ec1 Mardin 2y ago export const useInboundsQuery = ({
34 7738ec1 Mardin 2y ago page, size, sortBy = "created_at", desc = false, filters = {}
35 7738ec1 Mardin 2y ago }: UseEntityQueryProps) => {
36 3b7feef Mrdn 2y ago return useQuery({
37 7738ec1 Mardin 2y ago queryKey: [InboundsQueryFetchKey, { page, size }, filters?.tag ?? "", { sortBy, desc }, { filters }],
38 3b7feef Mrdn 2y ago queryFn: fetchInbounds,
39 7738ec1 Mardin 2y ago initialData: { entities: [], pageCount: 0 }
40 3b7feef Mrdn 2y ago })
41 3b7feef Mrdn 2y ago }