major refactor of the dashboard and react-openapi integration #1

Merged
aetos merged 44 commits from period-selection into main 2026-05-07 11:00:54 +00:00
Showing only changes of commit 4e56d86cdb - Show all commits

View File

@@ -7,6 +7,28 @@ import { createApiClient } from "../../react-auth";
let _api: AxiosInstance | null = null; let _api: AxiosInstance | null = null;
let _auth: AxiosInstance | null = null; let _auth: AxiosInstance | null = null;
function withParamsSerializer(instance: AxiosInstance): AxiosInstance {
instance.defaults.paramsSerializer = {
serialize: (params) => {
const searchParams = new URLSearchParams();
Object.entries(params).forEach(([key, value]) => {
if (Array.isArray(value)) {
value.forEach((v) => {
searchParams.append(key, String(v)); // NO []
});
} else if (value !== undefined && value !== null) {
searchParams.append(key, String(value));
}
});
return searchParams.toString();
},
};
return instance;
}
export const api = { export const api = {
get: (...args: Parameters<AxiosInstance["get"]>) => { get: (...args: Parameters<AxiosInstance["get"]>) => {
if (!_api) throw new Error("API client not initialized"); if (!_api) throw new Error("API client not initialized");
@@ -38,6 +60,6 @@ export const auth = {
}; };
export function initializeApiClients(baseUrl: string, authBaseUrl: string) { export function initializeApiClients(baseUrl: string, authBaseUrl: string) {
_api = createApiClient(baseUrl); _api = withParamsSerializer(createApiClient(baseUrl));
_auth = createApiClient(authBaseUrl); _auth = withParamsSerializer(createApiClient(authBaseUrl));
} }