feat: update api service state

This commit is contained in:
2025-06-03 12:58:40 +02:00
parent 29b97a87b3
commit 6cd9da69ab

View File

@ -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;