ff-admin-webapi-client/src/clients/webapi.client.ts

33 lines
935 B
TypeScript

import { BaseClient } from "./clientBase";
export class WebApiClient extends BaseClient {
constructor({ serverAdress, webapiToken }: { serverAdress: string; webapiToken: string }) {
super({ serverAdress, webapiToken });
}
public async initialize(): Promise<void> {
await this.refreshToken();
}
public refreshToken(): Promise<void> {
return new Promise<void>(async (resolve, reject) => {
await this.http
.get(`/webapi/retrieve`, {
headers: {
Authorization: `Bearer ${this.webapiToken}`,
},
})
.then(async (response) => {
const { accessToken } = response.data;
this.setAccessToken(accessToken);
resolve();
})
.catch((error) => {
console.error("Error refreshing webapi token:", error.response.data);
reject(`failed token retrieve: ${error.response.data}`);
});
});
}
}