35 lines
881 B
TypeScript
35 lines
881 B
TypeScript
import { createClient, createConfig } from '@repo/loomart-sdk';
|
|
import { storage } from '../storage';
|
|
import { authEvents } from './client';
|
|
|
|
export const getAuthToken = async () =>
|
|
(await storage.getItem('bestaibest.better-auth.session_token')) || '';
|
|
|
|
export const loomartClient = createClient(
|
|
createConfig({
|
|
baseUrl: 'https://api.mixvideo.bowong.cc'
|
|
})
|
|
);
|
|
|
|
loomartClient.interceptors.request.use(async (request) => {
|
|
const Authorization = `Bearer ${await getAuthToken()}`
|
|
request.headers.append(`Authorization`, Authorization)
|
|
|
|
if (__DEV__) {
|
|
console.log('[API]', request.method, request.url);
|
|
}
|
|
|
|
return request;
|
|
})
|
|
|
|
loomartClient.interceptors.response.use(async (response) => {
|
|
if (__DEV__) {
|
|
console.log('[API]', response.status, response.url);
|
|
}
|
|
|
|
if (response.status === 401) {
|
|
authEvents.emitUnauthorized();
|
|
}
|
|
return response;
|
|
});
|