Path: blob/1.0-develop/resources/scripts/api/swr/getServerBackups.ts
7461 views
import useSWR from 'swr';1import http, { getPaginationSet, PaginatedResult } from '@/api/http';2import { ServerBackup } from '@/api/server/types';3import { rawDataToServerBackup } from '@/api/transformers';4import { ServerContext } from '@/state/server';5import { createContext, useContext } from 'react';67interface ctx {8page: number;9setPage: (value: number | ((s: number) => number)) => void;10}1112export const Context = createContext<ctx>({ page: 1, setPage: () => 1 });1314type BackupResponse = PaginatedResult<ServerBackup> & { backupCount: number };1516export default () => {17const { page } = useContext(Context);18const uuid = ServerContext.useStoreState((state) => state.server.data!.uuid);1920return useSWR<BackupResponse>(['server:backups', uuid, page], async () => {21const { data } = await http.get(`/api/client/servers/${uuid}/backups`, { params: { page } });2223return {24items: (data.data || []).map(rawDataToServerBackup),25pagination: getPaginationSet(data.meta.pagination),26backupCount: data.meta.backup_count,27};28});29};303132