homebox/frontend/composables/use-api.ts
2022-09-04 16:41:12 -08:00

27 lines
733 B
TypeScript

import { PublicApi } from '~~/lib/api/public';
import { UserApi } from '~~/lib/api/user';
import { Requests } from '~~/lib/requests';
import { useAuthStore } from '~~/stores/auth';
function logger(r: Response) {
console.log(`${r.status} ${r.url} ${r.statusText}`);
}
export function usePublicApi(): PublicApi {
const requests = new Requests('', '', {});
return new PublicApi(requests);
}
export function useUserApi(): UserApi {
const authStore = useAuthStore();
const requests = new Requests('', () => authStore.token, {});
requests.addResponseInterceptor(logger);
requests.addResponseInterceptor(r => {
if (r.status === 401) {
authStore.clearSession();
}
});
return new UserApi(requests);
}