import { UserApi, Configuration, type UserDto, type UpdateEmailPreferencesDto } from '~~/.api-client' import { cleanDoubleSlashes, withoutTrailingSlash } from 'ufo' import { wrappedFetchWrap } from '~/utils/wrappedFetch' export function useUserApi() { const appBaseUrl = useRuntimeConfig().app.baseURL const { serverApiBasePath, clientProxyBasePath } = useRuntimeConfig().public const basePath = withoutTrailingSlash( cleanDoubleSlashes(import.meta.client ? appBaseUrl + clientProxyBasePath : clientProxyBasePath + serverApiBasePath) ) const userApiClient = new UserApi(new Configuration({ basePath, fetchApi: wrappedFetchWrap(useRequestFetch()) })) async function getUserById(id: string): Promise { return userApiClient.getUserById({ id }) } async function updateEmailPreferences( id: string, updateEmailPreferencesDto: UpdateEmailPreferencesDto ): Promise { return userApiClient.updateUserEmailPreferences({ id, updateEmailPreferencesDto }) } async function deleteUser(id: string): Promise { return userApiClient.deleteUser({ id }) } return { getUserById, updateEmailPreferences, deleteUser } }