diff --git a/frontend/services/applications.ts b/frontend/services/applications.ts new file mode 100644 index 0000000..47d38f4 --- /dev/null +++ b/frontend/services/applications.ts @@ -0,0 +1,38 @@ +export function getApplications(): Promise { + const api = useApi() + return api.get('/applications', undefined, { + toast: false, + }).then((response) => { + if (Array.isArray(response)) { + return response + } + return extractHydraMembers(response as HydraCollection) + }) +} + +export function getApplication(slug: string): Promise { + return useApi().get(`/applications/${slug}`, undefined, { + toast: false, + }) +} + +export function createApplication(data: ApplicationWrite): Promise { + return useApi().post('/applications', data, { + toastSuccessKey: 'success.applications.create', + toastErrorKey: 'errors.applications.create', + }) +} + +export function updateApplication(slug: string, data: Partial): Promise { + return useApi().patch(`/applications/${slug}`, data, { + toastSuccessKey: 'success.applications.update', + toastErrorKey: 'errors.applications.update', + }) +} + +export function deleteApplication(slug: string): Promise { + return useApi().delete(`/applications/${slug}`, undefined, { + toastSuccessKey: 'success.applications.delete', + toastErrorKey: 'errors.applications.delete', + }) +} diff --git a/frontend/services/managed-applications.ts b/frontend/services/managed-applications.ts deleted file mode 100644 index fb22367..0000000 --- a/frontend/services/managed-applications.ts +++ /dev/null @@ -1,33 +0,0 @@ -import type { ManagedApplication, ManagedApplicationCollection } from './dto/managed-application' - -function normalizeManagedApplications(response: ManagedApplication[] | ManagedApplicationCollection): ManagedApplication[] { - if (Array.isArray(response)) { - return response - } - - return response['hydra:member'] ?? response.member ?? [] -} - -export async function getManagedApplications(): Promise { - const api = useApi() - const response = await api.get('/applications') - - return normalizeManagedApplications(response) -} - -export function setApplicationMaintenance(slug: string, maintenance: boolean) { - const api = useApi() - - return api.post( - `/applications/${slug}/maintenance`, - { maintenance }, - { - toastSuccessKey: maintenance - ? 'success.applications.activateMaintenance' - : 'success.applications.deactivateMaintenance', - toastErrorKey: maintenance - ? 'errors.applications.activateMaintenance' - : 'errors.applications.deactivateMaintenance' - } - ) -}