inject defaults + cleanup

This commit is contained in:
Hayden 2022-09-03 22:19:13 -08:00
parent 9b46ea7874
commit 5f589f95b8
8 changed files with 212 additions and 85 deletions

View file

@ -1,23 +1,31 @@
import { PublicApi } from "~~/lib/api/public";
import { UserApi } from "~~/lib/api/user";
import { Requests } from "~~/lib/requests";
import { useAuthStore } from "~~/stores/auth";
import { PublicApi } from '~~/lib/api/public';
import { UserApi } from '~~/lib/api/user';
import { Requests } from '~~/lib/requests';
import { useAuthStore } from '~~/stores/auth';
async function ApiDebugger(r: Response) {
function ApiDebugger(r: Response) {
console.table({
"Request Url": r.url,
"Response Status": r.status,
"Response Status Text": r.statusText,
'Request Url': r.url,
'Response Status': r.status,
'Response Status Text': r.statusText,
});
}
export function usePublicApi(): PublicApi {
const requests = new Requests("", "", {}, ApiDebugger);
const requests = new Requests('', '', {});
return new PublicApi(requests);
}
export function useUserApi(): UserApi {
const authStore = useAuthStore();
const requests = new Requests("", () => authStore.token, {}, ApiDebugger);
const requests = new Requests('', () => authStore.token, {});
requests.addResponseInterceptor(ApiDebugger);
requests.addResponseInterceptor(r => {
if (r.status === 401) {
authStore.clearSession();
}
});
return new UserApi(requests);
}