feat: update api service state
This commit is contained in:
@ -3,7 +3,9 @@ import {
|
||||
getApiServices,
|
||||
patchToggleApiService,
|
||||
postApiService,
|
||||
putApiService,
|
||||
type CreateApiServiceRequest,
|
||||
type UpdateApiServiceRequest,
|
||||
} from "@/api/admin/apiServices";
|
||||
import type { ApiService, ApiServiceCredentials } from "@/types";
|
||||
import { create } from "zustand";
|
||||
@ -25,6 +27,12 @@ interface IAdminState {
|
||||
|
||||
togglingApiService: boolean;
|
||||
toggleApiService: () => Promise<void>;
|
||||
|
||||
updateApiService: (req: UpdateApiServiceRequest) => Promise<void>;
|
||||
updatingApiService: boolean;
|
||||
updatedApiService: boolean;
|
||||
|
||||
resetUpdatedApiService: () => void;
|
||||
}
|
||||
|
||||
export const useAdmin = create<IAdminState>((set, get) => ({
|
||||
@ -39,6 +47,10 @@ export const useAdmin = create<IAdminState>((set, get) => ({
|
||||
|
||||
togglingApiService: false,
|
||||
|
||||
updatingApiService: false,
|
||||
updatedApiService: false,
|
||||
resetUpdatedApiService: () => set({ updatedApiService: false }),
|
||||
|
||||
resetCredentials: () => set({ createdCredentials: null }),
|
||||
|
||||
fetchApiServices: async () => {
|
||||
@ -67,6 +79,23 @@ export const useAdmin = create<IAdminState>((set, get) => ({
|
||||
}
|
||||
},
|
||||
|
||||
updateApiService: async (req: UpdateApiServiceRequest) => {
|
||||
const viewService = get().viewApiService;
|
||||
if (!viewService) return;
|
||||
|
||||
set({ updatingApiService: true });
|
||||
|
||||
try {
|
||||
await putApiService(viewService.id, req);
|
||||
get().fetchApiService(viewService.id);
|
||||
set({ updatedApiService: true });
|
||||
} catch (err) {
|
||||
console.log("ERR: Failed to toggle service:", err);
|
||||
} finally {
|
||||
set({ updatingApiService: false });
|
||||
}
|
||||
},
|
||||
|
||||
toggleApiService: async () => {
|
||||
const viewService = get().viewApiService;
|
||||
if (!viewService) return;
|
||||
|
Reference in New Issue
Block a user