diff --git a/web/src/store/admin.ts b/web/src/store/admin.ts index 4af888a..318ef22 100644 --- a/web/src/store/admin.ts +++ b/web/src/store/admin.ts @@ -1,6 +1,7 @@ import { getApiService, getApiServices, + patchToggleApiService, postApiService, type CreateApiServiceRequest, } from "@/api/admin/apiServices"; @@ -21,9 +22,12 @@ interface IAdminState { fetchApiService: (id: string) => Promise; createApiService: (req: CreateApiServiceRequest) => Promise; resetCredentials: () => void; + + togglingApiService: boolean; + toggleApiService: (id: string) => Promise; } -export const useAdmin = create((set) => ({ +export const useAdmin = create((set, get) => ({ apiServices: [], loadingApiServices: false, @@ -33,6 +37,8 @@ export const useAdmin = create((set) => ({ viewApiService: null, fetchingApiService: false, + togglingApiService: false, + resetCredentials: () => set({ createdCredentials: null }), fetchApiServices: async () => { @@ -61,6 +67,19 @@ export const useAdmin = create((set) => ({ } }, + toggleApiService: async (id) => { + set({ togglingApiService: true }); + + try { + await patchToggleApiService(id); + get().fetchApiService(id); + } catch (err) { + console.log("ERR: Failed to toggle service:", err); + } finally { + set({ togglingApiService: false }); + } + }, + createApiService: async (req: CreateApiServiceRequest) => { set({ creatingApiService: true });