UNPKG

@softcol/biometrics

Version:

Collection of utility methods for eLogic Biometrics

45 lines (36 loc) 1.43 kB
import { EBiometricsEnvironment, EBiometricsProvider, EBiometricsState } from '../models'; import { EBM_TRANSACTIONS_API_ENDPOINT_DEVELOPMENT, EBM_TRANSACTIONS_API_ENDPOINT_PRODUCTION } from '../constants'; export class TransactionsService { private _url: string; constructor() { this._url = EBM_TRANSACTIONS_API_ENDPOINT_DEVELOPMENT; } private _configure(state: EBiometricsState): void { if (state.environment === EBiometricsEnvironment.production) { this._url = EBM_TRANSACTIONS_API_ENDPOINT_PRODUCTION } } async create(state: EBiometricsState): Promise<any> { this._configure(state); return new Promise((resolve, reject) => { const request: any = { provider: state.provider, extraInfo: state.extraInfo, ...state.params }; if (state.provider === EBiometricsProvider.softcol) request.queue = state.queue const xhr = new XMLHttpRequest(); xhr.open('POST', this._url, true); xhr.setRequestHeader('X-Ebm-Token', state.account); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.send(JSON.stringify(request)); xhr.onreadystatechange = function () { if (this.readyState === XMLHttpRequest.DONE) { if (this.status === 0 || (this.status >= 200 && this.status < 400)) { resolve(JSON.parse(this.responseText)); } else reject(); } }; }); } }