ngx-jenga-api
Version:
Angular wrapper for Equity's Jenga API. Still in progress
162 lines • 17.2 kB
JavaScript
import { ErrorHandler, NgModule } from '@angular/core';
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { CommonModule } from '@angular/common';
// configs
import { JENGA_API_KEYS } from './jenga.keys';
import { ApiKeyInterceptor } from './interceptors/api-key.interceptor';
import { AuthInterceptor } from './interceptors/auth.interceptor';
import { GlobalErrorHndler } from './error-handler/global-error-handler';
// components
import { NgxJengaApiComponent } from './ngx-jenga-api.component';
import { MerchantsComponent } from './components/merchants/merchants.component';
import { BillPaymentsComponent } from './components/bill-payments/bill-payments.component';
import { MerchantPaymentsComponent } from './components/merchant-payments/merchant-payments.component';
import { BillersComponent } from './components/billers/billers.component';
// material
import { MatSelectModule } from '@angular/material/select';
import { MatTableModule } from '@angular/material/table';
import { MatSortModule } from '@angular/material/sort';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
import { MatCardModule } from '@angular/material/card';
import { MatButtonModule } from '@angular/material/button';
import { MatSnackBarModule } from '@angular/material/snack-bar';
import { LoaderInterceptor } from './interceptors/loader.interceptor';
import { MatProgressBarModule } from '@angular/material/progress-bar';
import { MatPaginatorModule } from '@angular/material/paginator';
import * as i0 from "@angular/core";
export class NgxJengaApiModule {
static forRoot(merchant_code, consumer_secret, api_key) {
return {
ngModule: NgxJengaApiModule,
providers: [
{
provide: JENGA_API_KEYS,
useValue: {
merchant_code,
consumer_secret,
api_key
}
}
]
};
}
}
NgxJengaApiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: NgxJengaApiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
NgxJengaApiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: NgxJengaApiModule, declarations: [NgxJengaApiComponent,
MerchantsComponent,
BillPaymentsComponent,
MerchantPaymentsComponent,
BillersComponent], imports: [HttpClientModule,
CommonModule,
// material
MatProgressBarModule,
ReactiveFormsModule,
MatFormFieldModule,
MatPaginatorModule,
MatSnackBarModule,
MatSelectModule,
MatButtonModule,
MatTableModule,
MatInputModule,
MatSortModule,
MatCardModule,
FormsModule], exports: [NgxJengaApiComponent,
MerchantsComponent,
BillPaymentsComponent,
MerchantPaymentsComponent,
BillersComponent] });
NgxJengaApiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: NgxJengaApiModule, providers: [
{ provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true },
{ provide: HTTP_INTERCEPTORS, useClass: ApiKeyInterceptor, multi: true },
// { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true },
{ provide: HTTP_INTERCEPTORS, useClass: LoaderInterceptor, multi: true },
{ provide: ErrorHandler, useClass: GlobalErrorHndler },
// {
// provide: APP_INITIALIZER,
// useFactory: (authAPI: AuthService) => () =>
// authAPI.authenticateMerchant().subscribe({
// next: (res:any) => {
// console.log("RES IS: ", res)
// localStorage.setItem('jenga-tkn', res.accessToken)
// },
// error: (e:any) => {
// console.error("Error is: ", e)
// }
// }),
// deps: [AuthService], multi: true
// }
], imports: [HttpClientModule,
CommonModule,
// material
MatProgressBarModule,
ReactiveFormsModule,
MatFormFieldModule,
MatPaginatorModule,
MatSnackBarModule,
MatSelectModule,
MatButtonModule,
MatTableModule,
MatInputModule,
MatSortModule,
MatCardModule,
FormsModule] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: NgxJengaApiModule, decorators: [{
type: NgModule,
args: [{
declarations: [
NgxJengaApiComponent,
MerchantsComponent,
BillPaymentsComponent,
MerchantPaymentsComponent,
BillersComponent
],
imports: [
HttpClientModule,
CommonModule,
// material
MatProgressBarModule,
ReactiveFormsModule,
MatFormFieldModule,
MatPaginatorModule,
MatSnackBarModule,
MatSelectModule,
MatButtonModule,
MatTableModule,
MatInputModule,
MatSortModule,
MatCardModule,
FormsModule
],
exports: [
NgxJengaApiComponent,
MerchantsComponent,
BillPaymentsComponent,
MerchantPaymentsComponent,
BillersComponent
],
providers: [
{ provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true },
{ provide: HTTP_INTERCEPTORS, useClass: ApiKeyInterceptor, multi: true },
// { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true },
{ provide: HTTP_INTERCEPTORS, useClass: LoaderInterceptor, multi: true },
{ provide: ErrorHandler, useClass: GlobalErrorHndler },
// {
// provide: APP_INITIALIZER,
// useFactory: (authAPI: AuthService) => () =>
// authAPI.authenticateMerchant().subscribe({
// next: (res:any) => {
// console.log("RES IS: ", res)
// localStorage.setItem('jenga-tkn', res.accessToken)
// },
// error: (e:any) => {
// console.error("Error is: ", e)
// }
// }),
// deps: [AuthService], multi: true
// }
]
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWplbmdhLWFwaS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtamVuZ2EtYXBpL3NyYy9saWIvbmd4LWplbmdhLWFwaS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsVUFBVTtBQUNWLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBR3pFLGFBQWE7QUFDYixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNoRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMzRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUUxRSxXQUFXO0FBQ1gsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVB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cEIsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixXQUFXO3FCQUNaO29CQUNELE9BQU8sRUFBRTt3QkFDUCxvQkFBb0I7d0JBQ3BCLGtCQUFrQjt3QkFDbEIscUJBQXFCO3dCQUNyQix5QkFBeUI7d0JBQ3pCLGdCQUFnQjtxQkFDakI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTt3QkFDdEUsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7d0JBQ3hFLDJFQUEyRTt3QkFDM0UsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7d0JBQ3hFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUU7d0JBQ3RELEtBQUs7d0JBQ0wsK0JBQStCO3dCQUMvQixpREFBaUQ7d0JBQ2pELCtDQUErQzt3QkFDL0MsNkJBQTZCO3dCQUM3Qix1Q0FBdUM7d0JBQ3ZDLDZEQUE2RDt3QkFDN0QsV0FBVzt3QkFDWCw0QkFBNEI7d0JBQzVCLHlDQUF5Qzt3QkFDekMsVUFBVTt3QkFDVixXQUFXO3dCQUNYLHFDQUFxQzt3QkFDckMsSUFBSTtxQkFDTDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVycm9ySGFuZGxlciwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUsIEhUVFBfSU5URVJDRVBUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8vIGNvbmZpZ3NcbmltcG9ydCB7IEpFTkdBX0FQSV9LRVlTIH0gZnJvbSAnLi9qZW5nYS5rZXlzJztcbmltcG9ydCB7IEFwaUtleUludGVyY2VwdG9yIH0gZnJvbSAnLi9pbnRlcmNlcHRvcnMvYXBpLWtleS5pbnRlcmNlcHRvcic7XG5pbXBvcnQgeyBBdXRoSW50ZXJjZXB0b3IgfSBmcm9tICcuL2ludGVyY2VwdG9ycy9hdXRoLmludGVyY2VwdG9yJztcbmltcG9ydCB7IEdsb2JhbEVycm9ySG5kbGVyIH0gZnJvbSAnLi9lcnJvci1oYW5kbGVyL2dsb2JhbC1lcnJvci1oYW5kbGVyJztcbmltcG9ydCB7IEVycm9ySW50ZXJjZXB0b3IgfSBmcm9tICcuL2ludGVyY2VwdG9ycy9lcnJvci5pbnRlcmNlcHRvcic7XG5cbi8vIGNvbXBvbmVudHNcbmltcG9ydCB7IE5neEplbmdhQXBpQ29tcG9uZW50IH0gZnJvbSAnLi9uZ3gtamVuZ2EtYXBpLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZXJjaGFudHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWVyY2hhbnRzL21lcmNoYW50cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmlsbFBheW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2JpbGwtcGF5bWVudHMvYmlsbC1wYXltZW50cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVyY2hhbnRQYXltZW50c0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tZXJjaGFudC1wYXltZW50cy9tZXJjaGFudC1wYXltZW50cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmlsbGVyc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9iaWxsZXJzL2JpbGxlcnMuY29tcG9uZW50JztcblxuLy8gbWF0ZXJpYWxcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IE1hdFNvcnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0U25hY2tCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgTG9hZGVySW50ZXJjZXB0b3IgfSBmcm9tICcuL2ludGVyY2VwdG9ycy9sb2FkZXIuaW50ZXJjZXB0b3InO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuaW1wb3J0IHsgTWF0UGFnaW5hdG9yTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcblxuXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIE5neEplbmdhQXBpQ29tcG9uZW50LFxuICAgIE1lcmNoYW50c0NvbXBvbmVudCxcbiAgICBCaWxsUGF5bWVudHNDb21wb25lbnQsXG4gICAgTWVyY2hhbnRQYXltZW50c0NvbXBvbmVudCxcbiAgICBCaWxsZXJzQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcblxuICAgIC8vIG1hdGVyaWFsXG4gICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0UGFnaW5hdG9yTW9kdWxlLFxuICAgIE1hdFNuYWNrQmFyTW9kdWxlLCBcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdFRhYmxlTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdFNvcnRNb2R1bGUsXG4gICAgTWF0Q2FyZE1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgTmd4SmVuZ2FBcGlDb21wb25lbnQsXG4gICAgTWVyY2hhbnRzQ29tcG9uZW50LFxuICAgIEJpbGxQYXltZW50c0NvbXBvbmVudCxcbiAgICBNZXJjaGFudFBheW1lbnRzQ29tcG9uZW50LFxuICAgIEJpbGxlcnNDb21wb25lbnRcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUywgdXNlQ2xhc3M6IEF1dGhJbnRlcmNlcHRvciwgbXVsdGk6IHRydWUgfSxcbiAgICB7IHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLCB1c2VDbGFzczogQXBpS2V5SW50ZXJjZXB0b3IsIG11bHRpOiB0cnVlIH0sXG4gICAgLy8geyBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUywgdXNlQ2xhc3M6IEVycm9ySW50ZXJjZXB0b3IsIG11bHRpOiB0cnVlIH0sXG4gICAgeyBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUywgdXNlQ2xhc3M6IExvYWRlckludGVyY2VwdG9yLCBtdWx0aTogdHJ1ZSB9LFxuICAgIHsgcHJvdmlkZTogRXJyb3JIYW5kbGVyLCB1c2VDbGFzczogR2xvYmFsRXJyb3JIbmRsZXIgfSxcbiAgICAvLyB7IFxuICAgIC8vICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLCBcbiAgICAvLyAgIHVzZUZhY3Rvcnk6IChhdXRoQVBJOiBBdXRoU2VydmljZSkgPT4gKCkgPT4gXG4gICAgLy8gICBhdXRoQVBJLmF1dGhlbnRpY2F0ZU1lcmNoYW50KCkuc3Vic2NyaWJlKHtcbiAgICAvLyAgICAgICBuZXh0OiAocmVzOmFueSkgPT4ge1xuICAgIC8vICAgICAgICAgY29uc29sZS5sb2coXCJSRVMgSVM6IFwiLCByZXMpXG4gICAgLy8gICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnamVuZ2EtdGtuJywgcmVzLmFjY2Vzc1Rva2VuKVxuICAgIC8vICAgICAgIH0sXG4gICAgLy8gICAgICAgZXJyb3I6IChlOmFueSkgPT4ge1xuICAgIC8vICAgICAgICAgY29uc29sZS5lcnJvcihcIkVycm9yIGlzOiBcIiwgZSlcbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgIH0pLCBcbiAgICAvLyAgIGRlcHM6IFtBdXRoU2VydmljZV0sIG11bHRpOiB0cnVlXG4gICAgLy8gfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE5neEplbmdhQXBpTW9kdWxlIHsgXG4gIHN0YXRpYyBmb3JSb290KFxuICAgIG1lcmNoYW50X2NvZGU6IHN0cmluZywgXG4gICAgY29uc3VtZXJfc2VjcmV0OiBzdHJpbmcsXG4gICAgYXBpX2tleTogc3RyaW5nXG4gICAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ3hKZW5nYUFwaU1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTmd4SmVuZ2FBcGlNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBcbiAgICAgICAgICBwcm92aWRlOiBKRU5HQV9BUElfS0VZUywgXG4gICAgICAgICAgdXNlVmFsdWU6IFxuICAgICAgICAgIHsgXG4gICAgICAgICAgICBtZXJjaGFudF9jb2RlLCBcbiAgICAgICAgICAgIGNvbnN1bWVyX3NlY3JldCwgXG4gICAgICAgICAgICBhcGlfa2V5IFxuICAgICAgICAgIH0gXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIH1cbn1cbiJdfQ==