Browse Source

Implement setting api token after response

pull/561/head
mrjvs 2 years ago
parent
commit
4db6dcca48
  1. 7
      src/backend/helpers/fetch.ts
  2. 6
      src/backend/helpers/providerApi.ts

7
src/backend/helpers/fetch.ts

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
import { ofetch } from "ofetch";
import { getApiToken } from "@/backend/helpers/providerApi";
import { getApiToken, setApiToken } from "@/backend/helpers/providerApi";
import { getLoadbalancedProxyUrl } from "@/utils/providers";
type P<T> = Parameters<typeof ofetch<T, any>>;
@ -66,6 +66,11 @@ export async function singularProxiedFetch<T>( @@ -66,6 +66,11 @@ export async function singularProxiedFetch<T>(
},
query: {},
headers,
onResponse(context) {
const tokenHeader = context.response.headers.get("X-Token");
if (tokenHeader) setApiToken(tokenHeader);
ops.onResponse?.(context);
},
});
}

6
src/backend/helpers/providerApi.ts

@ -15,6 +15,10 @@ export function getCachedMetadata(): MetaOutput[] { @@ -15,6 +15,10 @@ export function getCachedMetadata(): MetaOutput[] {
return metaDataCache ?? [];
}
export function setApiToken(newToken: string) {
token = newToken;
}
function getTokenIfValid(): null | string {
if (!token) return null;
try {
@ -116,7 +120,7 @@ export async function connectServerSideEvents<T>( @@ -116,7 +120,7 @@ export async function connectServerSideEvents<T>(
});
eventSource.addEventListener("token", (e) => {
token = JSON.parse(e.data);
setApiToken(JSON.parse(e.data));
});
eventSource.addEventListener("error", (err: MessageEvent<any>) => {

Loading…
Cancel
Save