diff --git a/dist/providers/rave-payment-provider.js.map b/dist/providers/rave-payment-provider.js.map index c4cc4af..a1de684 100644 --- a/dist/providers/rave-payment-provider.js.map +++ b/dist/providers/rave-payment-provider.js.map @@ -1 +1 @@ -{"version":3,"file":"rave-payment-provider.js","sourceRoot":"","sources":["../../src/providers/rave-payment-provider.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\nimport { Misc } from './misc-provider';\n\n@Injectable()\n\nexport class RavePayment {\n schema: object = {\n txref: {\n required: \"true\",\n type: \"string\",\n isEmpty: function (data) {\n return data === \"\" || data == null || data == undefined\n }\n },\n customer_phone: {\n required: \"true\",\n type: \"string\",\n isEmpty: function (data) {\n return data === \"\" || data == null || data == undefined\n }\n },\n customer_email: {\n required: \"true\",\n type: \"string\",\n isEmpty: function (data) {\n return data === \"\" || data == null || data == undefined\n },\n isValidEmail: function (email) {\n return email.match(/^([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5})$/)\n }\n },\n amount: {\n required: \"true\",\n type: \"number\",\n isEmpty: function (data) {\n return data === \"\" || data == null || data == undefined\n }\n },\n integrity_hash: {\n required: false,\n type: \"string\",\n },\n payment_options: {\n required: false,\n type: \"string\",\n },\n payment_plan: {\n required: false,\n type: \"number\",\n },\n subaccounts: {\n required: false,\n isValidArray: function (array) {\n return Array.isArray(array)\n }\n },\n currency: {\n required: false,\n type: \"string\"\n },\n country: {\n required: false,\n type: \"string\",\n },\n customer_firstname: {\n required: false,\n type: \"string\",\n },\n customer_lastname: {\n required: false,\n type: \"string\",\n },\n custom_title: {\n required: false,\n type: \"string\",\n },\n custom_description: {\n required: false,\n type: \"string\",\n },\n redirect_url: {\n required: false,\n type: \"string\",\n isValidUri: function (email) {\n return email.match(/\\w+:(\\/?\\/?)[^\\s]+/g)\n }\n }\n }\n\n constructor(private misc: Misc) {\n }\n\n create(payload) {\n const result = this.validate(payload)\n if(result[\"valid\"] == false) return result[\"error\"]\n else {\n // for (const key in result[\"payload\"]) {\n // if (result[\"payload\"].hasOwnProperty(key)) {\n // this[key] = result[\"payload\"][key];\n // }\n // }\n this.misc.paymentObject = result[\"payload\"]\n return result[\"payload\"];\n }\n }\n\n amount() : number {\n return this.misc.paymentObject[\"amount\"]\n }\n \n currency() : string{\n return this.misc.paymentObject[\"currency\"]\n }\n \n email() : string {\n return this.misc.paymentObject[\"customer_email\"]\n }\n\n txref() : string{\n return this.misc.paymentObject[\"txref\"]\n }\n\n\n validate(object) {\n var error = []\n var schema = this.schema;\n if(object != null && typeof(object) == \"object\" && Array.isArray(object) == false){ // checks if payload object passed in is really an object\n \n for(let prop in schema) {\n \n if(Object.keys(object).indexOf(prop) == -1 && schema[prop].required == false) continue;\n \n if(schema[prop].required == true) {\n if(schema[prop].isEmpty(object[prop])) error.push({'property': prop, 'error': `${prop} is a required field and cannot be empty`});\n }\n \n if(prop == \"customer_email\") {\n let is_valid = schema[prop].isValidEmail(object[prop]);\n if(!is_valid) error.push({'property': prop, 'error': `${prop} must be a valid email address`});\n }\n \n if(prop == \"subaccounts\") {\n let is_valid = schema[prop].isValidArray(object[prop]);\n if(!is_valid) error.push({'property': prop, 'error': `${prop} must be an array of objects`});\n }\n \n if(prop == \"redirect_url\") {\n let is_valid = schema[prop].isValidUri(object[prop]);\n if(!is_valid) error.push({'property': prop, 'error': `${prop} must be a valid url`});\n }\n \n \n if(!(schema[prop].type == typeof(object[prop]))) { // checks that every parameter in the object is of its correct type\n if(prop == \"subaccounts\") continue\n error.push({'property': prop, 'error': `${prop} must be of type ${schema[prop].type}`});\n }\n }\n }else error.push({property: object, error: \"You must pass in an object\"})\n \n if(error.length == 0) { \n object.validated = true;\n return {valid: true, payload: object};\n }\n else return {valid: false, error: error};\n } \n}\n"]} \ No newline at end of file +{"version":3,"file":"rave-payment-provider.js","sourceRoot":"","sources":["../../src/providers/rave-payment-provider.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\nimport { Misc } from './misc-provider';\n\n@Injectable()\n\nexport class RavePayment {\n schema: object = {\n txref: {\n required: \"true\",\n type: \"string\",\n isEmpty: function (data) {\n return data === \"\" || data == null || data == undefined\n }\n },\n customer_phone: {\n required: \"true\",\n type: \"string\",\n isEmpty: function (data) {\n return data === \"\" || data == null || data == undefined\n }\n },\n customer_email: {\n required: \"true\",\n type: \"string\",\n isEmpty: function (data) {\n return data === \"\" || data == null || data == undefined\n },\n isValidEmail: function (email) {\n return email.match(/^([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5})$/)\n }\n },\n amount: {\n required: \"true\",\n type: \"number\",\n isEmpty: function (data) {\n return data === \"\" || data == null || data == undefined\n }\n },\n integrity_hash: {\n required: false,\n type: \"string\",\n },\n payment_options: {\n required: false,\n type: \"string\",\n },\n payment_plan: {\n required: false,\n type: \"number\",\n },\n subaccounts: {\n required: false,\n isValidArray: function (array) {\n return Array.isArray(array)\n }\n },\n currency: {\n required: false,\n type: \"string\"\n },\n country: {\n required: false,\n type: \"string\",\n },\n customer_firstname: {\n required: false,\n type: \"string\",\n },\n customer_lastname: {\n required: false,\n type: \"string\",\n },\n custom_title: {\n required: false,\n type: \"string\",\n },\n custom_description: {\n required: false,\n type: \"string\",\n },\n redirect_url: {\n required: false,\n type: \"string\",\n isValidUri: function (email) {\n return email.match(/\\w+:(\\/?\\/?)[^\\s]+/g)\n }\n }\n }\n\n constructor(private misc: Misc) {\n }\n\n create(payload) {\n const result = this.validate(payload)\n if(result[\"valid\"] == false) return result[\"error\"]\n else {\n // for (const key in result[\"payload\"]) {\n // if (result[\"payload\"].hasOwnProperty(key)) {\n // this[key] = result[\"payload\"][key];\n // }\n // }\n this.misc.paymentObject = result[\"payload\"]\n return result[\"payload\"];\n }\n }\n\n amount() : number {\n return this.misc.paymentObject[\"amount\"]\n }\n \n currency() : string{\n return this.misc.paymentObject[\"currency\"]\n }\n \n email() : string {\n return this.misc.paymentObject[\"customer_email\"]\n }\n\n txref() : string{\n return this.misc.paymentObject[\"txref\"]\n }\n\n\n validate(object) {\n var error = []\n var schema = this.schema;\n if(object != null && typeof(object) == \"object\" && Array.isArray(object) == false){ // checks if payload object passed in is really an object\n \n for(let prop in schema) {\n \n if(Object.keys(object).indexOf(prop) == -1 && schema[prop].required == false) continue;\n \n if(schema[prop].required == true) {\n if(schema[prop].isEmpty(object[prop])) error.push({'property': prop, 'error': `${prop} is a required field and cannot be empty`});\n }\n \n if(prop == \"customer_email\") {\n let is_valid = schema[prop].isValidEmail(object[prop]);\n if(!is_valid) error.push({'property': prop, 'error': `${prop} must be a valid email address`});\n }\n \n if(prop == \"subaccounts\") {\n let is_valid = schema[prop].isValidArray(object[prop]);\n if(!is_valid) error.push({'property': prop, 'error': `${prop} must be an array of objects`});\n }\n \n if(prop == \"redirect_url\") {\n let is_valid = schema[prop].isValidUri(object[prop]);\n if(!is_valid) error.push({'property': prop, 'error': `${prop} must be a valid url`});\n }\n \n \n if(!(schema[prop].type == typeof(object[prop]))) { // checks that every parameter in the object is of its correct type\n if(prop == \"subaccounts\") continue\n error.push({'property': prop, 'error': `${prop} must be of type ${schema[prop].type}`});\n }\n }\n }else error.push({property: object, error: \"You must pass in an object\"})\n \n if(error.length == 0) { \n object.validated = true;\n return {valid: true, payload: object};\n }\n else return {valid: false, error: error};\n } \n}\n\n"]} \ No newline at end of file diff --git a/dist/providers/rave-provider.d.ts b/dist/providers/rave-provider.d.ts index 851f19e..75ecebe 100644 --- a/dist/providers/rave-provider.d.ts +++ b/dist/providers/rave-provider.d.ts @@ -1,3 +1,4 @@ +/** @format */ import { Misc } from './misc-provider'; import { RavePayment } from './rave-payment-provider'; import { HttpClient } from '@angular/common/http'; @@ -22,6 +23,6 @@ export declare class Rave { * Spins up the modal * @param paymentLink */ - render(paymentLink: any, iab: any): any; + render(paymentLink: any, iab: any, browser_options: any): any; paymentStatus(url: any): any; } diff --git a/dist/providers/rave-provider.js b/dist/providers/rave-provider.js index ac9946c..20b501e 100644 --- a/dist/providers/rave-provider.js +++ b/dist/providers/rave-provider.js @@ -1,3 +1,4 @@ +/** @format */ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); @@ -27,7 +28,7 @@ var Rave = /** @class */ (function () { if (production === void 0) { production = false; } return new Promise(function (resolve, reject) { if (public_key == undefined) - reject("Please pass in a valid public key"); + reject('Please pass in a valid public key'); if (production) _this.uri = _this.misc.live; else @@ -42,16 +43,15 @@ var Rave = /** @class */ (function () { */ Rave.prototype.preRender = function (paymentObject) { var _this = this; - paymentObject["PBFPubKey"] = this.misc.PBFPubKey; + paymentObject['PBFPubKey'] = this.misc.PBFPubKey; var paymentObj = this.ravePayment.create(paymentObject); return new Promise(function (resolve, reject) { - if (paymentObj["validated"]) { - return _this.http.post(_this.uri, paymentObj, { headers: { 'content-type': 'application/json' } }) - .subscribe(function (response) { - if (response["status"] == "error") - reject(response["message"]); + if (paymentObj['validated']) { + return _this.http.post(_this.uri, paymentObj, { headers: { 'content-type': 'application/json' } }).subscribe(function (response) { + if (response['status'] == 'error') + reject(response['message']); else - resolve(response["data"]["link"]); + resolve(response['data']['link']); }); } else @@ -62,15 +62,15 @@ var Rave = /** @class */ (function () { * Spins up the modal * @param paymentLink */ - Rave.prototype.render = function (paymentLink, iab) { + Rave.prototype.render = function (paymentLink, iab, browser_options) { //@ts-ignore - return iab.create(paymentLink.toString(), '_blank'); + return iab.create(paymentLink.toString(), '_blank', browser_options); }; Rave.prototype.paymentStatus = function (url) { var response = decodeURIComponent(url); - response = response.slice(response.indexOf("=") + 1, response.length); + response = response.slice(response.indexOf('=') + 1, response.length); response = JSON.parse(response); - return response["status"]; + return response['status']; }; Rave = __decorate([ Injectable(), diff --git a/dist/providers/rave-provider.js.map b/dist/providers/rave-provider.js.map index ef4bc1e..d8dc4e7 100644 --- a/dist/providers/rave-provider.js.map +++ b/dist/providers/rave-provider.js.map @@ -1 +1 @@ -{"version":3,"file":"rave-provider.js","sourceRoot":"","sources":["../../src/providers/rave-provider.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD;IAEI,cAAmB,IAAU,EAAS,WAAwB,EAAU,IAAgB;QAArE,SAAI,GAAJ,IAAI,CAAM;QAAS,gBAAW,GAAX,WAAW,CAAa;QAAU,SAAI,GAAJ,IAAI,CAAY;IACxF,CAAC;IAED;;;;OAIG;IACH,mBAAI,GAAJ,UAAK,UAAgB,EAAE,UAAU;QAAjC,iBAQC;QARI,2BAAA,EAAA,kBAAgB;QACjB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,IAAG,UAAU,IAAI,SAAS;gBAAE,MAAM,CAAC,mCAAmC,CAAC,CAAC;YACxE,IAAI,UAAU;gBAAE,KAAI,CAAC,GAAG,GAAG,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC;;gBACrC,KAAI,CAAC,GAAG,GAAG,KAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YAClC,KAAI,CAAC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC,CAAC,CAAA;IACN,CAAC;IAED;;;OAGG;IACH,wBAAS,GAAT,UAAU,aAAyB;QAAnC,iBAYC;QAXG,aAAa,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QACjD,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QACvD,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,IAAG,UAAU,CAAC,WAAW,CAAC,EAAE;gBACxB,OAAO,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAI,CAAC,GAAG,EAAE,UAAU,EAAE,EAAC,OAAO,EAAE,EAAC,cAAc,EAAE,kBAAkB,EAAC,EAAC,CAAC;qBACvF,SAAS,CAAC,UAAA,QAAQ;oBACf,IAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO;wBAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;;wBACxD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;gBAC1C,CAAC,CAAC,CAAA;aACT;;gBAAK,MAAM,CAAC,UAAU,CAAC,CAAA;QAC5B,CAAC,CAAC,CAAA;IACN,CAAC;IAED;;;OAGG;IACH,qBAAM,GAAN,UAAO,WAAW,EAAE,GAAG;QACnB,YAAY;QACZ,OAAO,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED,4BAAa,GAAb,UAAc,GAAG;QACb,IAAI,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACvC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;QACrE,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChC,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC7B,CAAC;IApDQ,IAAI;QADhB,UAAU,EAAE;yCAGgB,IAAI,EAAsB,WAAW,EAAgB,UAAU;OAF/E,IAAI,CAsDhB;IAAD,WAAC;CAAA,AAtDD,IAsDC;SAtDY,IAAI","sourcesContent":["import { Injectable } from '@angular/core';\nimport { Misc } from './misc-provider';\nimport { RavePayment } from './rave-payment-provider';\n\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable()\nexport class Rave {\n uri: string;\n constructor(public misc: Misc, public ravePayment: RavePayment, private http: HttpClient) {\n }\n\n /**\n * \n * @param production \n * @param public_key \n */\n init(production=false, public_key) {\n return new Promise((resolve, reject) => {\n if(public_key == undefined) reject(\"Please pass in a valid public key\");\n if (production) this.uri = this.misc.live;\n else this.uri = this.misc.sandbox;\n this.misc.PBFPubKey = public_key;\n resolve(true)\n }) \n }\n\n /**\n * Returns a payment link that can be used to spin up the modal\n * @param paymentObject \n */\n preRender(paymentObject:RavePayment) {\n paymentObject[\"PBFPubKey\"] = this.misc.PBFPubKey;\n var paymentObj = this.ravePayment.create(paymentObject)\n return new Promise((resolve, reject) => {\n if(paymentObj[\"validated\"]) { \n return this.http.post(this.uri, paymentObj, {headers: {'content-type': 'application/json'}})\n .subscribe(response => {\n if(response[\"status\"] == \"error\") reject(response[\"message\"])\n else resolve(response[\"data\"][\"link\"])\n })\n }else reject(paymentObj)\n })\n }\n\n /**\n * Spins up the modal\n * @param paymentLink \n */\n render(paymentLink, iab) {\n //@ts-ignore\n return iab.create(paymentLink.toString(), '_blank');\n }\n\n paymentStatus(url) {\n var response = decodeURIComponent(url);\n response = response.slice(response.indexOf(\"=\") + 1, response.length)\n response = JSON.parse(response);\n return response[\"status\"]\n }\n \n}\n\n"]} \ No newline at end of file +{"version":3,"file":"rave-provider.js","sourceRoot":"","sources":["../../src/providers/rave-provider.ts"],"names":[],"mappings":"AAAA,cAAc;;;;;;;;;;AAEd,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAGjD;IAEE,cAAmB,IAAU,EAAS,WAAwB,EAAU,IAAgB;QAArE,SAAI,GAAJ,IAAI,CAAM;QAAS,gBAAW,GAAX,WAAW,CAAa;QAAU,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAE5F;;;;OAIG;IACH,mBAAI,GAAJ,UAAK,UAAkB,EAAE,UAAU;QAAnC,iBAQC;QARI,2BAAA,EAAA,kBAAkB;QACrB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YACjC,IAAI,UAAU,IAAI,SAAS;gBAAE,MAAM,CAAC,mCAAmC,CAAC,CAAA;YACxE,IAAI,UAAU;gBAAE,KAAI,CAAC,GAAG,GAAG,KAAI,CAAC,IAAI,CAAC,IAAI,CAAA;;gBACpC,KAAI,CAAC,GAAG,GAAG,KAAI,CAAC,IAAI,CAAC,OAAO,CAAA;YACjC,KAAI,CAAC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAA;YAChC,OAAO,CAAC,IAAI,CAAC,CAAA;QACf,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACH,wBAAS,GAAT,UAAU,aAA0B;QAApC,iBAWC;QAVC,aAAa,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAA;QAChD,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QACvD,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YACjC,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE;gBAC3B,OAAO,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAI,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,UAAC,QAAQ;oBAClH,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO;wBAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;;wBACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;gBACxC,CAAC,CAAC,CAAA;aACH;;gBAAM,MAAM,CAAC,UAAU,CAAC,CAAA;QAC3B,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACH,qBAAM,GAAN,UAAO,WAAW,EAAE,GAAG,EAAE,eAAe;QACtC,YAAY;QACZ,OAAO,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAA;IACtE,CAAC;IAED,4BAAa,GAAb,UAAc,GAAG;QACf,IAAI,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAA;QACtC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;QACrE,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAC/B,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC3B,CAAC;IAlDU,IAAI;QADhB,UAAU,EAAE;yCAGc,IAAI,EAAsB,WAAW,EAAgB,UAAU;OAF7E,IAAI,CAmDhB;IAAD,WAAC;CAAA,AAnDD,IAmDC;SAnDY,IAAI","sourcesContent":["/** @format */\n\nimport { Injectable } from '@angular/core'\nimport { Misc } from './misc-provider'\nimport { RavePayment } from './rave-payment-provider'\n\nimport { HttpClient } from '@angular/common/http'\n\n@Injectable()\nexport class Rave {\n uri: string\n constructor(public misc: Misc, public ravePayment: RavePayment, private http: HttpClient) {}\n\n /**\n *\n * @param production\n * @param public_key\n */\n init(production = false, public_key) {\n return new Promise((resolve, reject) => {\n if (public_key == undefined) reject('Please pass in a valid public key')\n if (production) this.uri = this.misc.live\n else this.uri = this.misc.sandbox\n this.misc.PBFPubKey = public_key\n resolve(true)\n })\n }\n\n /**\n * Returns a payment link that can be used to spin up the modal\n * @param paymentObject\n */\n preRender(paymentObject: RavePayment) {\n paymentObject['PBFPubKey'] = this.misc.PBFPubKey\n var paymentObj = this.ravePayment.create(paymentObject)\n return new Promise((resolve, reject) => {\n if (paymentObj['validated']) {\n return this.http.post(this.uri, paymentObj, { headers: { 'content-type': 'application/json' } }).subscribe((response) => {\n if (response['status'] == 'error') reject(response['message'])\n else resolve(response['data']['link'])\n })\n } else reject(paymentObj)\n })\n }\n\n /**\n * Spins up the modal\n * @param paymentLink\n */\n render(paymentLink, iab, browser_options) {\n //@ts-ignore\n return iab.create(paymentLink.toString(), '_blank', browser_options)\n }\n\n paymentStatus(url) {\n var response = decodeURIComponent(url)\n response = response.slice(response.indexOf('=') + 1, response.length)\n response = JSON.parse(response)\n return response['status']\n }\n}\n"]} \ No newline at end of file diff --git a/dist/providers/rave-provider.metadata.json b/dist/providers/rave-provider.metadata.json index 27def04..dde36e9 100644 --- a/dist/providers/rave-provider.metadata.json +++ b/dist/providers/rave-provider.metadata.json @@ -1 +1 @@ -[{"__symbolic":"module","version":4,"metadata":{"Rave":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./misc-provider","name":"Misc","line":9,"character":29},{"__symbolic":"reference","module":"./rave-payment-provider","name":"RavePayment","line":9,"character":55},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":9,"character":82}]}],"init":[{"__symbolic":"method"}],"preRender":[{"__symbolic":"method"}],"render":[{"__symbolic":"method"}],"paymentStatus":[{"__symbolic":"method"}]}}}}] \ No newline at end of file +[{"__symbolic":"module","version":4,"metadata":{"Rave":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./misc-provider","name":"Misc","line":11,"character":27},{"__symbolic":"reference","module":"./rave-payment-provider","name":"RavePayment","line":11,"character":53},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":11,"character":80}]}],"init":[{"__symbolic":"method"}],"preRender":[{"__symbolic":"method"}],"render":[{"__symbolic":"method"}],"paymentStatus":[{"__symbolic":"method"}]}}}}] \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index e00cc4a..b8bb24f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "rave-ionic4", - "version": "1.0.4", + "version": "1.1.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/src/providers/rave-provider.ts b/src/providers/rave-provider.ts index a46872a..3f84c3b 100644 --- a/src/providers/rave-provider.ts +++ b/src/providers/rave-provider.ts @@ -1,63 +1,61 @@ -import { Injectable } from '@angular/core'; -import { Misc } from './misc-provider'; -import { RavePayment } from './rave-payment-provider'; +/** @format */ -import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core' +import { Misc } from './misc-provider' +import { RavePayment } from './rave-payment-provider' + +import { HttpClient } from '@angular/common/http' @Injectable() export class Rave { - uri: string; - constructor(public misc: Misc, public ravePayment: RavePayment, private http: HttpClient) { - } + uri: string + constructor(public misc: Misc, public ravePayment: RavePayment, private http: HttpClient) {} - /** - * - * @param production - * @param public_key - */ - init(production=false, public_key) { - return new Promise((resolve, reject) => { - if(public_key == undefined) reject("Please pass in a valid public key"); - if (production) this.uri = this.misc.live; - else this.uri = this.misc.sandbox; - this.misc.PBFPubKey = public_key; - resolve(true) - }) - } + /** + * + * @param production + * @param public_key + */ + init(production = false, public_key) { + return new Promise((resolve, reject) => { + if (public_key == undefined) reject('Please pass in a valid public key') + if (production) this.uri = this.misc.live + else this.uri = this.misc.sandbox + this.misc.PBFPubKey = public_key + resolve(true) + }) + } - /** - * Returns a payment link that can be used to spin up the modal - * @param paymentObject - */ - preRender(paymentObject:RavePayment) { - paymentObject["PBFPubKey"] = this.misc.PBFPubKey; - var paymentObj = this.ravePayment.create(paymentObject) - return new Promise((resolve, reject) => { - if(paymentObj["validated"]) { - return this.http.post(this.uri, paymentObj, {headers: {'content-type': 'application/json'}}) - .subscribe(response => { - if(response["status"] == "error") reject(response["message"]) - else resolve(response["data"]["link"]) - }) - }else reject(paymentObj) + /** + * Returns a payment link that can be used to spin up the modal + * @param paymentObject + */ + preRender(paymentObject: RavePayment) { + paymentObject['PBFPubKey'] = this.misc.PBFPubKey + var paymentObj = this.ravePayment.create(paymentObject) + return new Promise((resolve, reject) => { + if (paymentObj['validated']) { + return this.http.post(this.uri, paymentObj, { headers: { 'content-type': 'application/json' } }).subscribe((response) => { + if (response['status'] == 'error') reject(response['message']) + else resolve(response['data']['link']) }) - } + } else reject(paymentObj) + }) + } - /** - * Spins up the modal - * @param paymentLink - */ - render(paymentLink, iab) { - //@ts-ignore - return iab.create(paymentLink.toString(), '_blank'); - } + /** + * Spins up the modal + * @param paymentLink + */ + render(paymentLink, iab, browser_options) { + //@ts-ignore + return iab.create(paymentLink.toString(), '_blank', browser_options) + } - paymentStatus(url) { - var response = decodeURIComponent(url); - response = response.slice(response.indexOf("=") + 1, response.length) - response = JSON.parse(response); - return response["status"] - } - + paymentStatus(url) { + var response = decodeURIComponent(url) + response = response.slice(response.indexOf('=') + 1, response.length) + response = JSON.parse(response) + return response['status'] + } } -