create-plume-react-project
Version:
CLI to create Plume React Project
33 lines (28 loc) • 1.23 kB
text/typescript
import { HttpRequest, HttpMethod } from 'simple-http-request-builder';
import { HttpPromise } from 'simple-http-rest-client';
import SessionService from '@services/session/SessionService';
import ApiHttpClient from './ApiHttpClient';
import PlumeAdminHttpClient from '@lib/plume-admin-api/PlumeHttpClient';
export default class ApiHttpClientAuthenticated implements PlumeAdminHttpClient {
constructor(private readonly httpClient: ApiHttpClient,
private readonly sessionService: SessionService) {
}
/**
* Add configuration for requests made with this client.
*
* Here the authorization token is added to each "authenticated request".
*/
private configureRequest<T>(httpRequest: HttpRequest<T>) {
return httpRequest.headers({ Authorization: `Bearer ${this.sessionService.getSessionToken().get()}` });
}
rawRequest(method: HttpMethod, path: string): HttpRequest<HttpPromise<Response>> {
return this.configureRequest<HttpPromise<Response>>(
this.httpClient.rawRequest(method, path),
);
}
restRequest<T>(method: HttpMethod, path: string): HttpRequest<HttpPromise<T>> {
return this.configureRequest<HttpPromise<T>>(
this.httpClient.restRequest<T>(method, path),
);
}
}