mirror of
https://github.com/maxdorninger/MediaManager.git
synced 2026-04-21 13:25:14 +02:00
36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
import { handleLogout } from '$lib/utils.ts';
|
|
import type { Middleware } from 'openapi-fetch';
|
|
|
|
export const loggingMiddleware: Middleware = {
|
|
async onRequest({ request }) {
|
|
console.log(`Requesting ${request.method} ${request.url}`);
|
|
return request;
|
|
},
|
|
async onResponse({ request, response }) {
|
|
if (!response.ok) {
|
|
console.error(`Request to ${request.url} failed with status ${response.status}`);
|
|
} else {
|
|
console.log(`Request to ${request.url} succeeded with status ${response.status}`);
|
|
}
|
|
return response;
|
|
},
|
|
async onError({ error }) {
|
|
return new Error('Oops, fetch failed', { cause: error });
|
|
}
|
|
};
|
|
|
|
export const autoLogoutMiddleware: Middleware = {
|
|
async onResponse({ request, response }) {
|
|
if (response.status === 401 && !request.url.endsWith('/auth/cookie/logout')) {
|
|
console.log(`Request to ${request.url} returned HTTP Error Code 401, logging out...`);
|
|
await handleLogout();
|
|
}
|
|
if (response.status === 403) {
|
|
console.log(
|
|
`Request to ${request.url} returned HTTP Error Code 403, this shouldn't happen, consider opening a bug report!`
|
|
);
|
|
}
|
|
return response;
|
|
}
|
|
};
|