@softcol/biometrics
Version:
Collection of utility methods for eLogic Biometrics
45 lines (36 loc) • 1.43 kB
text/typescript
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();
}
};
});
}
}