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