import { paths } from './schema.ts' import createClient, { Middleware } from 'openapi-fetch' import { dispatchMessage } from '../messageBus/messageBus.ts' import { useUserStore } from '../user/user.ts' import { getUserFromCookie } from '../auth/getUserFromCookie.ts' export const initClient = () => { const client = createClient({ baseUrl: import.meta.env.VITE_API_URL }) const UnauthorizedHandlerMiddleware: Middleware = { async onResponse({ response }) { if (response.status === 401) { dispatchMessage('auth:unauthorized', null) } const user = getUserFromCookie() console.debug('got user cookie', user) useUserStore.getState().setUser(user) }, } client.use(UnauthorizedHandlerMiddleware) return client } export type ApiClient = ReturnType