34 lines
1.2 KiB
TypeScript
34 lines
1.2 KiB
TypeScript
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<ManagedApplication[]> {
|
|
const api = useApi()
|
|
const response = await api.get<ManagedApplication[] | ManagedApplicationCollection>('/applications')
|
|
|
|
return normalizeManagedApplications(response)
|
|
}
|
|
|
|
export function setApplicationMaintenance(slug: string, maintenance: boolean) {
|
|
const api = useApi()
|
|
|
|
return api.post<ManagedApplication>(
|
|
`/applications/${slug}/maintenance`,
|
|
{ maintenance },
|
|
{
|
|
toastSuccessKey: maintenance
|
|
? 'success.applications.activateMaintenance'
|
|
: 'success.applications.deactivateMaintenance',
|
|
toastErrorKey: maintenance
|
|
? 'errors.applications.activateMaintenance'
|
|
: 'errors.applications.deactivateMaintenance'
|
|
}
|
|
)
|
|
}
|