UNPKG

ngx-mercadopago

Version:

An Angular wrapper for Mercado Pago SDK for JavaScript

84 lines 11.2 kB
import { __awaiter } from "tslib"; import { InjectionToken } from '@angular/core'; import { bindCallback } from 'rxjs'; import { map } from 'rxjs/operators'; /** @hidden */ const pathSDK = 'https://secure.mlstatic.com/sdk/javascript/v1/mercadopago.js'; /** @hidden */ export const ConfigToken = new InjectionToken('config'); export class NgxMercadopagoService { constructor(config) { this.config = config; if (!config.pathSDK) { config.pathSDK = pathSDK; } this.initialized = false; } initialize(publishKey) { return new Promise((resolve, reject) => { const sdkMercadoPago = this.loadMPScript(this.config.pathSDK); sdkMercadoPago.onload = () => { this.initialized = true; Mercadopago.setPublishableKey(publishKey || this.config.publishKey); return resolve(Mercadopago); }; sdkMercadoPago.onerror = (error) => reject(error); }); } loadMPScript(src) { const script = document.createElement('script'); script.type = 'text/javascript'; script.src = src; document.body.appendChild(script); return script; } clearSession() { return __awaiter(this, void 0, void 0, function* () { Mercadopago.clearSession(); }); } ; getPaymentMethod(card) { return bindCallback(Mercadopago.getPaymentMethod)(card).pipe(map(([status, resp]) => { if (status === 200) { return { status, data: resp, error: null }; } else { return { status, data: null, error: resp }; } })); } getPaymentMethods() { return Mercadopago.getPaymentMethods(); } getIdentificationTypes() { return bindCallback(Mercadopago.getIdentificationTypes)().pipe(map(([status, data]) => ({ status, data }))); } getInstallments(card) { return bindCallback(Mercadopago.getInstallments)(card).pipe(map(([status, resp]) => { if (status === 200) { return { status, data: resp, error: null }; } else { return { status, data: null, error: resp }; } })); } createToken(form) { return bindCallback(Mercadopago.createToken)(form).pipe(map(([status, resp]) => { if (status === 200) { return { status, data: resp, error: null }; } else { return { status, data: null, error: resp }; } })); } validateExpiryDate(date) { return Mercadopago.validateExpiryDate(date); } validateExpiryMonthYear(month, year) { return Mercadopago.validateExpiryDate(month, year); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LW1lcmNhZG9wYWdvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL2dhYmZpb2NjaGkvZGV2ZWxvcG1lbnQvbmd4LW1lcmNhZG9wYWdvL3Byb2plY3RzL25neC1tZXJjYWRvcGFnby9zcmMvIiwic291cmNlcyI6WyJsaWIvbmd4LW1lcmNhZG9wYWdvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsY0FBYztBQUNkLE1BQU0sT0FBTyxHQUFHLDhEQUE4RCxDQUFDO0FBQy9FLGNBQWM7QUFDZCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxjQUFjLENBQThCLFFBQVEsQ0FBQyxDQUFDO0FBR3JGLE1BQU0sT0FBTyxxQkFBcUI7SUFFaEMsWUFDVSxNQUFtQztRQUFuQyxXQUFNLEdBQU4sTUFBTSxDQUE2QjtRQUUzQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUNuQixNQUFNLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztTQUMxQjtRQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRCxVQUFVLENBQUMsVUFBbUI7UUFDNUIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFOUQsY0FBYyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixXQUFXLENBQUMsaUJBQWlCLENBQUMsVUFBVSxJ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QUUsS0FBSyxFQUFhLElBQUksRUFBRSxDQUFDO2FBQ2xFO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxJQUFZO1FBQzdCLE9BQU8sV0FBVyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFDRCx1QkFBdUIsQ0FBQyxLQUFhLEVBQUUsSUFBWTtRQUNqRCxPQUFPLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1lcmNhZG9wYWdvU0RrLCBQYXltZW50TWV0aG9kLCBQYXltZW50Rm9ybSwgQ2FyZEluc3RhbGxtZW50LCBQYXltZW50TWV0aG9kU2VhcmNoLCBDYXJkVG9rZW4sIEluc3RhbGxtZW50cywgRXJyb3JEYXRhIH0gZnJvbSAnLi9pbnRlcmZhY2VzL21lcmNhZG9wYWdvLXNkayc7XG5pbXBvcnQgeyBOZ3hNZXJjYWRvcGFnb0NvbmZpZ3VyYXRpb24gfSBmcm9tICcuL2ludGVyZmFjZXMvbmd4LW1lcmNhZG9wYWdvJztcbmltcG9ydCB7IGJpbmRDYWxsYmFjayB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vKiogQGhpZGRlbiAqL1xuY29uc3QgcGF0aFNESyA9ICdodHRwczovL3NlY3VyZS5tbHN0YXRpYy5jb20vc2RrL2phdmFzY3JpcHQvdjEvbWVyY2Fkb3BhZ28uanMnO1xuLyoqIEBoaWRkZW4gKi9cbmV4cG9ydCBjb25zdCBDb25maWdUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOZ3hNZXJjYWRvcGFnb0NvbmZpZ3VyYXRpb24+KCdjb25maWcnKTtcblxuZGVjbGFyZSB2YXIgTWVyY2Fkb3BhZ286IE1lcmNhZG9wYWdvU0RrO1xuZXhwb3J0IGNsYXNzIE5neE1lcmNhZG9wYWdvU2VydmljZSB7XG4gIGluaXRpYWxpemVkOiBib29sZWFuO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbmZpZzogTmd4TWVyY2Fkb3BhZ29Db25maWd1cmF0aW9uLFxuICApIHtcbiAgICBpZiAoIWNvbmZpZy5wYXRoU0RLKSB7XG4gICAgICBjb25maWcucGF0aFNESyA9IHBhdGhTREs7XG4gICAgfVxuXG4gICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xuICB9XG5cbiAgaW5pdGlhbGl6ZShwdWJsaXNoS2V5Pzogc3RyaW5nKTogUHJvbWlzZTxNZXJjYWRvcGFnb1NEaz4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBzZGtNZXJjYWRvUGFnbyA9IHRoaXMubG9hZE1QU2NyaXB0KHRoaXMuY29uZmlnLnBhdGhTREspO1xuXG4gICAgICBzZGtNZXJjYWRvUGFnby5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICBNZXJjYWRvcGFnby5zZXRQdWJsaXNoYWJsZUtleShwdWJsaXNoS2V5IHx8IHRoaXMuY29uZmlnLnB1Ymxpc2hLZXkpO1xuXG4gICAgICAgIHJldHVybiByZXNvbHZlKE1lcmNhZG9wYWdvKTtcbiAgICAgIH07XG4gICAgICBzZGtNZXJjYWRvUGFnby5vbmVycm9yID0gKGVycm9yKSA9PiByZWplY3QoZXJyb3IpO1xuICAgIH0pO1xuICB9XG5cbiAgbG9hZE1QU2NyaXB0KHNyYzogc3RyaW5nKTogSFRNTFNjcmlwdEVsZW1lbnQge1xuICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgIHNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XG4gICAgc2NyaXB0LnNyYyA9IHNyYztcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgcmV0dXJuIHNjcmlwdDtcbiAgfVxuXG4gIGFzeW5jIGNsZWFyU2Vzc2lvbigpIHtcbiAgICBNZXJjYWRvcGFnby5jbGVhclNlc3Npb24oKTtcbiAgfTtcblxuICBnZXRQYXltZW50TWV0aG9kKGNhcmQ6IFBheW1lbnRNZXRob2RTZWFyY2gpIHtcbiAgICByZXR1cm4gYmluZENhbGxiYWNrKE1lcmNhZG9wYWdvLmdldFBheW1lbnRNZXRob2QpKGNhcmQpLnBpcGUoXG4gICAgICBtYXAoKFtzdGF0dXMsIHJlc3BdKSA9PiB7XG4gICAgICAgIGlmIChzdGF0dXMgPT09IDIwMCkge1xuICAgICAgICAgIHJldHVybiB7IHN0YXR1cywgZGF0YTogPFBheW1lbnRNZXRob2RbXT5yZXNwLCBlcnJvcjogPEVycm9yRGF0YT5udWxsIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHsgc3RhdHVzLCBkYXRhOiA8UGF5bWVudE1ldGhvZFtdPm51bGwsIGVycm9yOiA8RXJyb3JEYXRhPnJlc3AgfTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBnZXRQYXltZW50TWV0aG9kcygpOiBQYXltZW50TWV0aG9kW10ge1xuICAgIHJldHVybiBNZXJjYWRvcGFnby5nZXRQYXltZW50TWV0aG9kcygpO1xuICB9XG5cbiAgZ2V0SWRlbnRpZmljYXRpb25UeXBlcygpIHtcbiAgICByZXR1cm4gYmluZENhbGxiYWNrKE1lcmNhZG9wYWdvLmdldElkZW50aWZpY2F0aW9uVHlwZXMpKCkucGlwZShcbiAgICAgIG1hcCgoW3N0YXR1cywgZGF0YV0pID0+ICh7IHN0YXR1cywgZGF0YSB9KSlcbiAgICApXG4gIH1cblxuICBnZXRJbnN0YWxsbWVudHMoY2FyZDogQ2FyZEluc3RhbGxtZW50KSB7XG4gICAgcmV0dXJuIGJpbmRDYWxsYmFjayhNZXJjYWRvcGFnby5nZXRJbnN0YWxsbWVudHMpKGNhcmQpLnBpcGUoXG4gICAgICBtYXAoKFtzdGF0dXMsIHJlc3BdKSA9PiB7XG4gICAgICAgIGlmIChzdGF0dXMgPT09IDIwMCkge1xuICAgICAgICAgIHJldHVybiB7IHN0YXR1cywgZGF0YTogPEluc3RhbGxtZW50c1tdPnJlc3AsIGVycm9yOiA8RXJyb3JEYXRhPm51bGwgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4geyBzdGF0dXMsIGRhdGE6IDxJbnN0YWxsbWVudHNbXT5udWxsLCBlcnJvcjogPEVycm9yRGF0YT5yZXNwIH07XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgY3JlYXRlVG9rZW4oZm9ybTogUGF5bWVudEZvcm0pIHtcbiAgICByZXR1cm4gYmluZENhbGxiYWNrKE1lcmNhZG9wYWdvLmNyZWF0ZVRva2VuKShmb3JtKS5waXBlKFxuICAgICAgbWFwKChbc3RhdHVzLCByZXNwXSkgPT4ge1xuICAgICAgICBpZiAoc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgICByZXR1cm4geyBzdGF0dXMsIGRhdGE6IDxDYXJkVG9rZW4+cmVzcCwgZXJyb3I6IDxFcnJvckRhdGE+bnVsbCB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB7IHN0YXR1cywgZGF0YTogPENhcmRUb2tlbj5udWxsLCBlcnJvcjogPEVycm9yRGF0YT5yZXNwIH07XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgdmFsaWRhdGVFeHBpcnlEYXRlKGRhdGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBNZXJjYWRvcGFnby52YWxpZGF0ZUV4cGlyeURhdGUoZGF0ZSk7XG4gIH1cbiAgdmFsaWRhdGVFeHBpcnlNb250aFllYXIobW9udGg6IHN0cmluZywgeWVhcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIE1lcmNhZG9wYWdvLnZhbGlkYXRlRXhwaXJ5RGF0ZShtb250aCwgeWVhcik7XG4gIH1cbn1cbiJdfQ==