feat(front): aligner api platform et sessions [INV-20260111-02]

This commit is contained in:
2026-01-11 17:14:24 +01:00
parent 936a73fde3
commit e99f053233
17 changed files with 346 additions and 67 deletions

View File

@@ -65,7 +65,7 @@ export interface ModelTypeListResponse {
limit: number;
}
const ENDPOINT = '/api/model-types';
const ENDPOINT = '/model_types';
function resolveBaseUrl() {
const runtimeConfig = useRuntimeConfig();
@@ -80,7 +80,7 @@ function createOptions<T>(options: FetchOptions<T> = {}) {
};
}
export function listModelTypes(params: ModelTypeListParams = {}, opts: { signal?: AbortSignal } = {}) {
export async function listModelTypes(params: ModelTypeListParams = {}, opts: { signal?: AbortSignal } = {}) {
const requestFetch = useRequestFetch();
const query: Record<string, string | number> = {};
@@ -97,17 +97,37 @@ export function listModelTypes(params: ModelTypeListParams = {}, opts: { signal?
query.dir = params.dir;
}
if (typeof params.limit === 'number') {
query.limit = params.limit;
query.itemsPerPage = params.limit;
}
if (typeof params.offset === 'number') {
query.offset = params.offset;
}
return requestFetch<ModelTypeListResponse>(ENDPOINT, createOptions({
const payload = await requestFetch<Record<string, any>>(ENDPOINT, createOptions({
method: 'GET',
query,
signal: opts.signal,
}));
const items = Array.isArray(payload?.member)
? payload.member
: Array.isArray(payload?.['hydra:member'])
? payload['hydra:member']
: Array.isArray(payload?.items)
? payload.items
: [];
const total = typeof payload?.totalItems === 'number'
? payload.totalItems
: Array.isArray(payload?.items)
? payload.items.length
: items.length;
return {
items,
total,
offset: params.offset ?? 0,
limit: typeof params.limit === 'number' ? params.limit : items.length,
} satisfies ModelTypeListResponse;
}
export function createModelType(payload: ModelTypePayload, opts: { signal?: AbortSignal } = {}) {