UNPKG

create-plume-react-project

Version:
33 lines (28 loc) 1.23 kB
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), ); } }