{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./src/app/app.component.html","./node_modules/tslib/tslib.es6.js","./src/app/app-routing.module.ts","./src/app/app.component.scss","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/models/congif.model.ts","./src/app/models/tenantDetails.model.ts","./src/app/services/authGaurd/auth-gaurd.service.ts","./src/app/services/authNet/anet-accept-base.service.ts","./src/app/services/authNet/anet-token-base.service.ts","./src/app/services/authNet/auth-net-accept.service.ts","./src/app/services/authNet/auth-net-error.service.ts","./src/app/services/authNet/auth-net-token.service.ts","./src/app/services/customerService/customerService.ts","./src/app/services/interceptors/loader.service.ts","./src/app/services/payment/defaultPayment.service.ts","./src/app/services/payment/payment.service.ts","./src/app/services/payment/paymentConfiguration.service.ts","./src/app/services/planRenewal/defaultPlanRenewal.service.ts","./src/app/services/planRenewal/planRenewal.service.ts","./src/app/services/scriptLoader/dynamicScriptService.ts","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":"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","file":"main-es2015.js","sourcesContent":["var map = {\n\t\"./modules/login/login.module\": [\n\t\t\"./src/app/modules/login/login.module.ts\",\n\t\t\"default~modules-login-login-module~modules-portal-portal-module\",\n\t\t\"modules-login-login-module\"\n\t],\n\t\"./modules/portal/portal.module\": [\n\t\t\"./src/app/modules/portal/portal.module.ts\",\n\t\t\"default~modules-login-login-module~modules-portal-portal-module\",\n\t\t\"modules-portal-portal-module\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";\nmodule.exports = webpackAsyncContext;","export default \"\"","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { AppComponent } from './app.component';\r\n\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n redirectTo: '/home',\r\n pathMatch: 'full',\r\n },\r\n {\r\n path: 'home',\r\n component: AppComponent,\r\n children: [\r\n {\r\n path: '',\r\n loadChildren: './modules/login/login.module#LoginModule'\r\n },\r\n ]\r\n },\r\n {\r\n path: 'portal',\r\n loadChildren: './modules/portal/portal.module#PortalModule'\r\n },\r\n\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent {\r\n title = 'syncronex-app';\r\n}\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { AuthnetAcceptJsBase } from './services/authNet/anet-accept-base.service';\r\nimport { AuthNetTokenServiceBase } from './services/authNet/anet-token-base.service';\r\nimport { PaymentService } from './services/payment/payment.service';\r\nimport { MockAcceptJsService } from './services/authNet/mock-accept.service';\r\nimport { MockTokenService } from './services/authNet/mock-token.service';\r\nimport { FakePaymentService } from './services/payment/mock.payment.service';\r\nimport { PlanRenewalService } from './services/planRenewal/planRenewal.service';\r\nimport { DefaultPlanRenewalService } from './services/planRenewal/defaultPlanRenewal.service';\r\nimport { MockPlanRenewalService } from './services/planRenewal/mockPlanRenewal.service';\r\nimport { AuthNetAcceptService } from './services/authNet/auth-net-accept.service';\r\nimport { AuthNetTokenService } from './services/authNet/auth-net-token.service';\r\nimport { DefaultPaymentService } from './services/payment/defaultPayment.service';\r\nimport { PaymentConfigurationService, DefaultPaymentConfigurationService, MockPaymentConfigurationService } from './services/payment/paymentConfiguration.service';\r\nimport { LoaderComponent } from './components/loader/loader.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule,\r\n HttpClientModule\r\n ],\r\n providers: [\r\n /* \r\n Switch the commented blocks to change from real services to mocks\r\n to avoid dependencies while working on styling, etc.\r\n */\r\n // {provide: PlanRenewalService, useClass: MockPlanRenewalService},\r\n // {provide: AuthnetAcceptJsBase, useClass: MockAcceptJsService},\r\n // {provide: AuthNetTokenServiceBase, useClass: MockTokenService},\r\n // {provide: PaymentService, useClass: FakePaymentService},\r\n // {provide: PaymentConfigurationService, useClass: MockPaymentConfigurationService},\r\n\r\n {provide: PlanRenewalService, useClass: DefaultPlanRenewalService},\r\n {provide: AuthnetAcceptJsBase, useClass: AuthNetAcceptService},\r\n {provide: AuthNetTokenServiceBase, useClass: AuthNetTokenService},\r\n {provide: PaymentService, useClass: DefaultPaymentService},\r\n {provide: PaymentConfigurationService, useClass: DefaultPaymentConfigurationService}\r\n ],\r\n bootstrap: [AppComponent],\r\n schemas: [ CUSTOM_ELEMENTS_SCHEMA ]\r\n})\r\nexport class AppModule { }\r\n","export class ConfigDetails {\r\n eEditionLink: string;\r\n customerLogoUrl: string;\r\n customerLogoFooterUrl: string;\r\n customerServicePhoneNumber: string;\r\n customerServiceEmailAddress: string;\r\n copyrightInfo: string;\r\n customerWebsiteUrl: string;\r\n paymentProcessor: string;\r\n}","export class TenantDetails {\r\n tenantId: string;\r\n tenantKey: string;\r\n tenantDescription: string;\r\n servicesBaseUrl: string;\r\n customDomain: string;\r\n}","import { Injectable } from '@angular/core';\r\nimport { CanActivate, Router, ActivatedRoute } from '@angular/router';\r\nimport { CustomerService } from '../customerService/customerService';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthGaurdService implements CanActivate {\r\n\r\n params: any;\r\n\r\n constructor(\r\n private router: Router,\r\n private customerService: CustomerService) {\r\n this.customerService.params.subscribe(val => {\r\n this.params = val;\r\n })\r\n }\r\n\r\n private getAuthFromCookie(): any{\r\n return JSON.parse(decodeURIComponent(this.getCookie(\"ls.authorizationData\")));\r\n }\r\n\r\n canActivate() {\r\n if (this.getCookie(\"ls.authorizationData\")) {\r\n const auth = this.getAuthFromCookie();\r\n if (auth.token || auth.access_token) {\r\n this.customerService.setAuthTokenDetails(auth);\r\n return true;\r\n }\r\n this.router.navigate(['home'], { queryParams: this.params });\r\n return false;\r\n }\r\n this.router.navigate(['home'], { queryParams: this.params });\r\n return false;\r\n }\r\n\r\n getCookie(cname) {\r\n const name = cname + \"=\";\r\n const ca = document.cookie.split(';');\r\n for (let i = 0; i < ca.length; i++) {\r\n let c = ca[i];\r\n while (c.charAt(0) == ' ') {\r\n c = c.substring(1);\r\n }\r\n if (c.indexOf(name) == 0) {\r\n return c.substring(name.length, c.length);\r\n }\r\n }\r\n return \"\";\r\n }\r\n\r\n /**\r\n * Fetch the logged-in user's bearer token from\r\n * authentication cookie\r\n * @returns null if token does not exist\r\n */\r\n getUserAuthToken(): string{\r\n const auth = this.getAuthFromCookie();\r\n if(auth && auth.token){\r\n return auth.token;\r\n }\r\n return null;\r\n }\r\n}","import { CardDataModel } from \"./cardDataModel\";\r\nimport { OpaqueDataModel } from \"./opaqueDataModel\";\r\n\r\n/**\r\n * Abstraction over the Authorize.Net \"AcceptJS\" SDK. \r\n */\r\nexport abstract class AuthnetAcceptJsBase{\r\n public abstract getNonce(cardData: CardDataModel): Promise;\r\n}","import { TokenFromNonceDataModel } from \"./tokenFromNonceDataModel\";\r\nimport { TokenModel } from \"./tokenModel\";\r\n\r\n/**\r\n * Abstraction over the Appservices V2 Authorize.Net token\r\n * service\r\n */\r\nexport abstract class AuthNetTokenServiceBase{\r\n public abstract getTokenFromNonce(request: TokenFromNonceDataModel): Promise;\r\n}","import { Injectable } from '@angular/core';\r\nimport { DynamicScriptService } from '../scriptLoader/dynamicScriptService';\r\nimport { AuthnetAcceptJsBase } from './anet-accept-base.service';\r\nimport { PaymentConfigurationService } from '../payment/paymentConfiguration.service';\r\nimport { AuthNetError, AuthNetErrorService } from './auth-net-error.service';\r\nimport { AuthDataModel } from './authDataModel';\r\nimport { CardDataModel } from './cardDataModel';\r\n\r\nimport { OpaqueDataModel } from './opaqueDataModel';\r\nimport { SecureDataModel } from './secureDataModel';\r\nimport { AuthorizeNetConfiguration } from '../payment/models';\r\nimport { LoaderService } from '../interceptors/loader.service';\r\n\r\n// This is necessary to access the dynamically loaded\r\n// acceptJs library\r\ndeclare var Accept: any;\r\n\r\n@Injectable()\r\nexport class AuthNetAcceptService implements AuthnetAcceptJsBase {\r\n\r\n private config: AuthorizeNetConfiguration;\r\n\r\n constructor(\r\n private scriptLoader: DynamicScriptService,\r\n private errorService: AuthNetErrorService,\r\n private configService: PaymentConfigurationService,\r\n private loaderService: LoaderService) { }\r\n\r\n /**\r\n * Get the encrypted one-time token representing the user's\r\n * submitted payment data\r\n * @param cardData \r\n */\r\n async getNonce(cardData: CardDataModel): Promise {\r\n this.loaderService.loading();\r\n try {\r\n // MUST initialize the config first\r\n await this.initConfiguration();\r\n\r\n await this.loadAcceptJsLibrary();\r\n\r\n const apiAuthentication = this.getApiAuthentication();\r\n const secureData = this.composeSecureDataModel(cardData, apiAuthentication);\r\n\r\n const nonce: OpaqueDataModel = await this.dispatchData(secureData);\r\n this.loaderService.done();\r\n return nonce;\r\n } finally {\r\n this.loaderService.done();\r\n }\r\n }\r\n\r\n /**\r\n * Initialize the Authorize.net configuration\r\n */\r\n private async initConfiguration(): Promise {\r\n const paymentConfig = await this.configService.getConfiguration();\r\n if (!paymentConfig.authNetSettings) {\r\n throw new Error(`The current tenant is not configured to use Authorize.net as the payment processor!`);\r\n }\r\n this.config = paymentConfig.authNetSettings;\r\n }\r\n /**\r\n * Called to load the Authorize.net AcceptJs client-side\r\n * library (that this class wraps)\r\n */\r\n private async loadAcceptJsLibrary(): Promise {\r\n\r\n if (this.config.useSandbox) {\r\n await this.scriptLoader.loadDynamicScript(DynamicScriptService.AuthnetAcceptJsSandbox);\r\n } else {\r\n await this.scriptLoader.loadDynamicScript(DynamicScriptService.AuthnetAcceptJs);\r\n }\r\n\r\n // If we don't pause slightly, We trip a \r\n // 'Accept.js is not loaded correctly' error.\r\n // Evidently, their library is susceptible \r\n await new Promise(resolve => setTimeout(resolve, 250));\r\n }\r\n\r\n /**\r\n * Called to setup the AcceptJs API Authentication\r\n */\r\n private getApiAuthentication(): AuthDataModel {\r\n return {\r\n clientKey: this.config.clientKey,\r\n apiLoginID: this.config.apiLoginId\r\n };\r\n }\r\n\r\n /**\r\n * Called to compose the required SecureDataModel object\r\n * used by AcceptJs\r\n */\r\n private composeSecureDataModel(cardData: CardDataModel, apiAuth: AuthDataModel): SecureDataModel {\r\n return {\r\n authData: apiAuth,\r\n cardData: cardData\r\n };\r\n }\r\n /**\r\n * Async wrapper around AcceptJs's dispatchData method\r\n * @param args Expectes the SecureData object that will be passed\r\n * to dispatchData\r\n * @returns A promise that can be awaited. When the promise\r\n * resolves, the results is the new Nonce.\r\n * @remarks\r\n * We've just turned a standard 'callback' method pattern into\r\n * a promise so that we can leverage async/await syntax\r\n */\r\n private dispatchData(...args): Promise {\r\n return new Promise((resolve, reject) => {\r\n Accept.dispatchData(...args, (response) => {\r\n try {\r\n if (response.messages.resultCode === \"Error\") {\r\n const errors: AuthNetError[] = [];\r\n for (let i = 0; i < response.messages.message.length; i++) {\r\n errors.push(this.errorService.getErrorFromCode(response.messages.message[i].code));\r\n }\r\n reject(errors);\r\n } else {\r\n const opaqueData = response.opaqueData;\r\n const nonce: OpaqueDataModel = {\r\n dataDescriptor: opaqueData.dataDescriptor,\r\n dataValue: opaqueData.dataValue\r\n };\r\n resolve(nonce);\r\n }\r\n } catch (error) {\r\n reject(`Error dispatching data to Auth.net. ${error}`);\r\n }\r\n });\r\n });\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthNetErrorService{\r\n private readonly errors: AuthNetError[];\r\n\r\n constructor() {\r\n this.errors = [\r\n new AuthNetError('E_WC_05','Please provide valid credit card number.','Please provide valid credit card number.'),\r\n new AuthNetError('E_WC_06','Please provide valid expiration month.','Please provide valid expiration month.'),\r\n new AuthNetError('E_WC_07','Please provide valid expiration year.','Please provide valid expiration year.'),\r\n new AuthNetError('E_WC_08','','Expiration date should be in the future.'),\r\n new AuthNetError('E_WC_15','Please provide valid CVV.','Please provide valid CVV.'),\r\n new AuthNetError('E_WC_16','Please provide valid ZIP code.','Please provide valid ZIP code.'),\r\n new AuthNetError('E_WC_17','Please provide valid card holder name.','Cardholder name must be less than 65 characters.')\r\n ]; \r\n }\r\n\r\n getErrorFromCode(code: string): AuthNetError{\r\n for(let i = 0; i < this.errors.length; i++){\r\n if(this.errors[i].code === code){\r\n return this.errors[i];\r\n }\r\n }\r\n return new AuthNetError(code,'unexpected Authorize.net error','unexpected Authorize.net error');\r\n }\r\n}\r\n\r\n/**\r\n * Maps an authnet error to a more friendly description\r\n */\r\nexport class AuthNetError{\r\n constructor( \r\n public code: string,\r\n public authNetDescription: string,\r\n public description: string\r\n ) { }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { AuthGaurdService } from \"../authGaurd/auth-gaurd.service\";\r\nimport { CustomerService } from \"../customerService/customerService\";\r\nimport { LoaderService } from \"../interceptors/loader.service\";\r\nimport { AuthNetTokenServiceBase } from \"./anet-token-base.service\";\r\nimport { TokenFromNonceDataModel } from \"./tokenFromNonceDataModel\";\r\nimport { TokenModel } from \"./tokenModel\";\r\n\r\n@Injectable()\r\nexport class AuthNetTokenService implements AuthNetTokenServiceBase {\r\n\r\n constructor(private authenticationService: AuthGaurdService,\r\n private tenantService: CustomerService,\r\n private loaderService: LoaderService) { }\r\n\r\n /**\r\n * Gets a payment token from SA services\r\n * based on the given AuthNet Nonce data\r\n */\r\n async getTokenFromNonce(request: TokenFromNonceDataModel): Promise {\r\n this.loaderService.loading();\r\n\r\n try {\r\n const response: Response = await this.doFetchToken(request);\r\n\r\n await this.validateResponse(response);\r\n\r\n return response.json();\r\n } finally {\r\n this.loaderService.done();\r\n }\r\n }\r\n\r\n private async doFetchToken(request: TokenFromNonceDataModel): Promise {\r\n\r\n const api = await this.getPaymentTokenEndpoint();\r\n const authToken = await this.getAuthenticationToken();\r\n\r\n const response: Response = await fetch(api, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${authToken}`\r\n },\r\n body: JSON.stringify(request)\r\n });\r\n\r\n return response;\r\n }\r\n\r\n /**\r\n * Helper to get the URI for the payment token request\r\n * @returns Fully qualified url to the API endpoint\r\n */\r\n private async getPaymentTokenEndpoint() {\r\n const config = await this.tenantService.getTenantDetailsAsync();\r\n return `${config.servicesBaseUrl}/appservices/api/v2/payment/authnet/token`;\r\n }\r\n\r\n /**\r\n * Helper to ensure we got a successful response\r\n */\r\n private async validateResponse(response: Response): Promise {\r\n if (response.status === 200 || response.status === 201) return;\r\n\r\n let error: Error = new Error(`Unexpected ${response.statusText} response from server.`);\r\n\r\n try {\r\n const content: any = await response.json();\r\n let msg: string = '';\r\n\r\n if (content.message) {\r\n msg = content.message;\r\n }\r\n\r\n error = new Error(`Unexpected ${response.statusText} response from server. ${msg}`)\r\n } finally {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * Get the current user's bearer token\r\n * @returns the raw bearer token value\r\n * @remarks This is coded as an async returning\r\n * a promise to future-proof it in the event we have\r\n * to fetch a new token from a service. currently,\r\n * we're fetching a locally stored value but that could\r\n * likely change.\r\n */\r\n private async getAuthenticationToken(): Promise {\r\n return new Promise((resolve, reject) => {\r\n resolve(this.authenticationService.getUserAuthToken())\r\n });\r\n }\r\n\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { map, first } from 'rxjs/operators';\r\nimport { TenantDetails } from 'src/app/models/tenantDetails.model';\r\nimport { OauthToken } from 'src/app/models/oauthToken';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ConfigDetails } from 'src/app/models/congif.model';\r\nimport { LoginToken } from 'src/app/models/loginToken.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CustomerService {\r\n _tenantApiUrl: string = environment.BASE_URL_TENANT + 'tenants/';\r\n _oauthApiUrl: string = environment.BASE_URL_OAUTH + 'oauth/token';\r\n\r\n private TenantDetailSource = new BehaviorSubject(null);\r\n private urlParams = new BehaviorSubject(null);\r\n private ConfigDetailSource = new BehaviorSubject(null);\r\n private AuthTokenDetailsSource = new BehaviorSubject(null);\r\n\r\n tenantDetails = this.TenantDetailSource.asObservable();\r\n params = this.urlParams.asObservable();\r\n configDetails = this.ConfigDetailSource.asObservable();\r\n authTokenDetails = this.AuthTokenDetailsSource.asObservable();\r\n\r\n constructor(private apiService: HttpClient) {\r\n }\r\n\r\n /**\r\n * Gets customer specipic data\r\n * @param tenantId: Tenant ID\r\n */\r\n getTenantId(tenantId: string, token: string): Observable {\r\n let headers = new HttpHeaders().set('content-type', 'application/json')\r\n .set('Authorization', `Bearer ${token}`);\r\n\r\n return this.apiService.get(this._tenantApiUrl + tenantId, { headers: headers }).pipe(\r\n map(rep => {\r\n var customerDetails = rep;\r\n return customerDetails;\r\n })\r\n )\r\n }\r\n\r\n /**\r\n * Get the current tenant details (configuration)\r\n * @returns A Promise that resolves to a TenantDetails object\r\n */\r\n getTenantDetailsAsync(): Promise{\r\n return new Promise((resolve,reject)=>{\r\n resolve(this.TenantDetailSource.value);\r\n });\r\n // return this.tenantDetails.pipe(first()).toPromise();\r\n }\r\n\r\n getToken(): Observable {\r\n let headers = new HttpHeaders();\r\n headers = headers.append('content-type', 'application/x-www-form-urlencoded');\r\n const scopePart = 'scope=' + environment.OAUTH_CLIENT_SCOPE;\r\n const clientIdPart = 'client_id=' + environment.OAUTH_CLIENT;\r\n const secretPart = 'client_secret=' + environment.OAUTH_CLIENT_SECRET;\r\n\r\n const body = `grant_type=client_credentials&`\r\n + scopePart + '&'\r\n + clientIdPart + '&'\r\n + secretPart\r\n\r\n return this.apiService.post(this._oauthApiUrl, body, { headers }).pipe(\r\n map(rep => {\r\n var token = rep;\r\n return token;\r\n })\r\n )\r\n }\r\n\r\n getRefreshedToken(baseUrl: string, scope: string, refresh_token: string): Observable {\r\n let headers = new HttpHeaders();\r\n headers = headers.append('content-type', 'application/x-www-form-urlencoded');\r\n const scopePart = 'scope=' + scope;\r\n const refreshTokenPart = 'refresh_token=' + refresh_token;\r\n\r\n const body = `grant_type=refresh_token&`\r\n + scopePart + '&'\r\n + refreshTokenPart + '&'\r\n\r\n return this.apiService.post(baseUrl + '/appservices/token', body, { headers }).pipe(\r\n map(rep => {\r\n var token = rep;\r\n return token;\r\n })\r\n )\r\n }\r\n\r\n getConfig(url: string, token: string): Observable {\r\n let headers = new HttpHeaders().set('content-type', 'application/json')\r\n .set('Authorization', `Bearer ${token}`);\r\n\r\n return this.apiService.get(url + '/appservices/api/v2/config/portal', { headers: headers }).pipe(\r\n map(rep => {\r\n var customerDetails = rep;\r\n return customerDetails;\r\n })\r\n )\r\n }\r\n\r\n setTenantDetails(tenantDetails: TenantDetails) {\r\n let tenantData = new TenantDetails();\r\n Object.assign(tenantData, tenantDetails);\r\n\r\n this.TenantDetailSource.next(tenantData);\r\n }\r\n\r\n setParams(params: any) {\r\n this.urlParams.next(params);\r\n }\r\n\r\n setConfig(config: ConfigDetails) {\r\n let configDetails = new ConfigDetails();\r\n Object.assign(configDetails, config);\r\n\r\n this.ConfigDetailSource.next(configDetails);\r\n }\r\n\r\n setAuthTokenDetails(details: LoginToken) {\r\n this.AuthTokenDetailsSource.next(details);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoaderService {\r\n public isLoading = new BehaviorSubject(false);\r\n \r\n private requests: number = 0;\r\n\r\n constructor() { }\r\n\r\n /**\r\n * Called to let the service know that a long-running op\r\n * is starting\r\n */\r\n loading(){\r\n this.requests++;\r\n this.isLoading.next(this.requests > 0);\r\n }\r\n\r\n /**\r\n * Called to let the service know that a long-running op\r\n * has completed\r\n */\r\n done(){\r\n this.requests--;\r\n this.isLoading.next(this.requests > 0);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AuthGaurdService } from '../authGaurd/auth-gaurd.service';\r\nimport { CustomerService } from '../customerService/customerService';\r\nimport { LoaderService } from '../interceptors/loader.service';\r\nimport { NewRenewalPayment, RenewalPayment } from './models';\r\nimport { PaymentService } from './payment.service';\r\nimport { PaymentProcessorExceptionResponse, RenewalPaymentRequest } from './serviceModels';\r\n\r\n/**\r\n * Payment service encapsulates the Appservices v2 payment\r\n * APIs (POST renewal payment, GET Renewal payment (aka recpt), etc. )\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DefaultPaymentService implements PaymentService {\r\n\r\n constructor(\r\n private authenticationService: AuthGaurdService,\r\n private tenantService: CustomerService,\r\n private loaderService: LoaderService) { }\r\n\r\n /**\r\n * Called to submit a new renewal payment to the system\r\n */\r\n public async postNewRenewalPayment(payment: NewRenewalPayment): Promise {\r\n this.loaderService.loading();\r\n try {\r\n const response: Response = await this.doPostNewRenewalPayment(payment);\r\n await this.validateResponse(response);\r\n return response.json();\r\n } finally {\r\n this.loaderService.done();\r\n }\r\n\r\n }\r\n\r\n /**\r\n * Called to fetch a specific renewal payment object from the system\r\n * @param id \r\n * @remarks \r\n * This is effectively a 'receipt fetch' as it pulls back details of\r\n * a processed renewal payment\r\n */\r\n public async getRenewalPayment(id: string): Promise {\r\n this.loaderService.loading();\r\n try {\r\n const response: Response = await this.doGetRenewalPayment(id);\r\n await this.validateResponse(response);\r\n return response.json();\r\n } finally {\r\n this.loaderService.done();\r\n }\r\n }\r\n\r\n /**\r\n * Called to make the API request\r\n */\r\n private async doPostNewRenewalPayment(payment: NewRenewalPayment): Promise {\r\n const api = await this.getPostRenewalPaymentEndpoint(payment.subscriptionId, payment.renewalPlanId);\r\n const authToken = await this.getAuthenticationToken();\r\n\r\n const req: RenewalPaymentRequest = {\r\n token: payment.paymentToken,\r\n paymentAmount: payment.grossAmount,\r\n tipAmount: payment.tipAmount,\r\n donationAmount: payment.donationAmount\r\n };\r\n\r\n const response: Response = await fetch(api, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${authToken}`\r\n },\r\n body: JSON.stringify(req)\r\n });\r\n\r\n return response;\r\n }\r\n\r\n /**\r\n * Called to make the API request to fetch \r\n * an existing renewal payment\r\n */\r\n private async doGetRenewalPayment(id: string): Promise {\r\n const api = await this.getRenewalPaymentEndpoint(id);\r\n const authToken = await this.getAuthenticationToken();\r\n\r\n const response: Response = await fetch(api, {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${authToken}`\r\n }\r\n });\r\n\r\n return response;\r\n }\r\n\r\n\r\n /**\r\n * Get the current user's bearer token\r\n * @returns the raw bearer token value\r\n * @remarks This is coded as an async returning\r\n * a promise to future-proof it in the event we have\r\n * to fetch a new token from a service. currently,\r\n * we're fetching a locally stored value but that could\r\n * likely change.\r\n */\r\n private async getAuthenticationToken(): Promise {\r\n return new Promise((resolve, reject) => {\r\n resolve(this.authenticationService.getUserAuthToken())\r\n });\r\n }\r\n\r\n /**\r\n* Helper to get the URI for the POST request\r\n* to create a new renewal payment\r\n*/\r\n private async getPostRenewalPaymentEndpoint(subscriptionId: string, renewalPlanId: string) {\r\n const config = await this.tenantService.getTenantDetailsAsync();\r\n return `${config.servicesBaseUrl}/appservices/api/v2/subscription/${subscriptionId}/renewal/${renewalPlanId}/payment`;\r\n }\r\n\r\n /**\r\n * Helper to get the URI for the GET request\r\n * to fetch an existing renewal payment\r\n */\r\n private async getRenewalPaymentEndpoint(renewalId: string) {\r\n const config = await this.tenantService.getTenantDetailsAsync();\r\n return `${config.servicesBaseUrl}/appservices/api/v2/payment/renewal/${renewalId}`;\r\n }\r\n\r\n /**\r\n * Helper to ensure we got a successful response\r\n */\r\n private async validateResponse(response: Response): Promise {\r\n if (response.status === 200 || response.status === 201) return;\r\n\r\n let error: Error = new Error(`Unexpected ${response.statusText} response from server.`);\r\n\r\n try {\r\n let msg: string = '';\r\n const content: any = await response.json();\r\n\r\n if (this.isPaymentProcessorErrorContent(content)) {\r\n const paymentError: PaymentProcessorExceptionResponse = {\r\n requestId: content.requestId,\r\n error: content.error,\r\n errorType: content.errorType,\r\n message: content.message,\r\n details: content.details\r\n };\r\n throw paymentError;\r\n\r\n } else if (content.message) {\r\n msg = content.message;\r\n error = new Error(`Unexpected ${response.statusText} response from server. ${msg}`)\r\n }\r\n\r\n } finally {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * Determines whether or not content is a structured PaymentProcessor\r\n * exception\r\n */\r\n private isPaymentProcessorErrorContent(content: any): boolean {\r\n return (\r\n 'requestId' in content &&\r\n 'error' in content &&\r\n 'errorType' in content &&\r\n 'message' in content\r\n );\r\n }\r\n\r\n}\r\n","import { NewRenewalPayment, RenewalPayment } from \"./models\";\r\n\r\n/**\r\n * Abstract class from which any concrete implementations\r\n * should inherit. Describes the expected functionaliy\r\n * of the payment service\r\n */\r\nexport abstract class PaymentService{\r\n\r\n /**\r\n * Called to create a payment for a subscription renewal\r\n */\r\n public abstract postNewRenewalPayment(payment: NewRenewalPayment): Promise;\r\n\r\n /**\r\n * Called to get the details of an existing renewal payment\r\n * (i.e., for buildling a receipt)\r\n * @param id The unique identefier of the renewal payment\r\n */\r\n public abstract getRenewalPayment(id: string): Promise;\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { AuthGaurdService } from \"../authGaurd/auth-gaurd.service\";\r\nimport { CustomerService } from \"../customerService/customerService\";\r\nimport { PaymentConfigurationResponse } from \"./serviceModels\";\r\nimport { PaymentConfiguration } from \"./models\";\r\n\r\n/**\r\n * Abstract base class to act as our 'interface'\r\n * for switching between mock and real implementations\r\n */\r\nexport abstract class PaymentConfigurationService {\r\n /**\r\n * Async method to fetch the current Auth net configuration\r\n */\r\n abstract getConfiguration(): Promise;\r\n}\r\n\r\n/**\r\n * Fake implementation for testing and prototyping. Returns\r\n * our dev credentials\r\n */\r\n@Injectable()\r\nexport class MockPaymentConfigurationService implements PaymentConfigurationService {\r\n getConfiguration(): Promise {\r\n\r\n const mockConfig: PaymentConfiguration = {\r\n processor: 'authorize.net',\r\n authNetSettings: {\r\n useSandbox: true,\r\n apiLoginId: '8vZgZ6N5bzY7',\r\n clientKey: '2m38KQ6WPcSR858xVnG8GP5u2384uxG5KrQq3CmXvewmX96gtGKZ4uFMjpe2r55W'\r\n }\r\n };\r\n\r\n return new Promise((resolve, reject) => resolve(mockConfig));\r\n }\r\n}\r\n\r\n/**\r\n * Real implementation of the Configuration service\r\n */\r\n@Injectable()\r\nexport class DefaultPaymentConfigurationService implements PaymentConfigurationService {\r\n\r\n constructor(\r\n private authenticationService: AuthGaurdService,\r\n private tenantService: CustomerService) { }\r\n\r\n /**\r\n * Fetch the currently configured authorize.net settings for the \r\n * current tenant\r\n */\r\n async getConfiguration(): Promise {\r\n const response: Response = await this.doGetConfiguration();\r\n await this.validateResponse(response);\r\n\r\n const paymentConfig: PaymentConfigurationResponse = await response.json();\r\n\r\n const config: PaymentConfiguration = {\r\n processor: paymentConfig.paymentProcessor\r\n };\r\n\r\n if (config.processor === 'Authorize.net') {\r\n config.authNetSettings = {\r\n apiLoginId: paymentConfig.authNetSettings.loginId,\r\n clientKey: paymentConfig.authNetSettings.publicClientKey,\r\n useSandbox: paymentConfig.authNetSettings.useSandboxEnvironment\r\n };\r\n }\r\n\r\n return config;\r\n }\r\n\r\n /**\r\n * Does the heavy lifting of calling out to the service\r\n */\r\n private async doGetConfiguration(): Promise {\r\n const api = await this.getPaymentConfigApiEndpoint();\r\n const authToken = await this.getAuthenticationToken();\r\n\r\n const response: Response = await fetch(api, {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${authToken}`\r\n }\r\n });\r\n\r\n return response;\r\n }\r\n\r\n /**\r\n * constructs the tenant-specific Url to the payment configuration\r\n * service\r\n */\r\n private async getPaymentConfigApiEndpoint(): Promise {\r\n const config = await this.tenantService.getTenantDetailsAsync();\r\n return `${config.servicesBaseUrl}/appservices/api/v2/config/payment`;\r\n }\r\n\r\n /**\r\n* Helper to ensure we got a successful response\r\n*/\r\n private async validateResponse(response: Response): Promise {\r\n if (response.status === 200 || response.status === 201) return;\r\n\r\n let error: Error = new Error(`Unexpected ${response.statusText} response from server.`);\r\n\r\n try {\r\n const content: any = await response.json();\r\n let msg: string = '';\r\n\r\n if (content.message) {\r\n msg = content.message;\r\n }\r\n\r\n error = new Error(`Unexpected ${response.statusText} response from server. ${msg}`)\r\n } finally {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * Get the current user's bearer token\r\n * @returns the raw bearer token value\r\n * @remarks This is coded as an async returning\r\n * a promise to future-proof it in the event we have\r\n * to fetch a new token from a service. currently,\r\n * we're fetching a locally stored value but that could\r\n * likely change.\r\n */\r\n private async getAuthenticationToken(): Promise {\r\n return new Promise((resolve, reject) => {\r\n resolve(this.authenticationService.getUserAuthToken())\r\n });\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AuthGaurdService } from '../authGaurd/auth-gaurd.service';\r\nimport { CustomerService } from '../customerService/customerService';\r\nimport { LoaderService } from '../interceptors/loader.service';\r\nimport { RenewalPlan, RenewalPlanList } from './models';\r\nimport { PlanRenewalService } from './planRenewal.service';\r\nimport { RenewalPlanListResponse, RenewalPlanResponse } from './serviceModels';\r\n\r\n@Injectable()\r\nexport class DefaultPlanRenewalService implements PlanRenewalService {\r\n\r\n constructor(\r\n private authenticationService: AuthGaurdService,\r\n private tenantService: CustomerService,\r\n private loadingService: LoaderService) { }\r\n\r\n async getRenewalOptionsFromSubscription(subscriptionId: string): Promise {\r\n this.loadingService.loading();\r\n try {\r\n\r\n const response: Response = await this.doFetchOptions(subscriptionId);\r\n\r\n await this.validateResponse(response);\r\n\r\n const listFromApi: RenewalPlanListResponse = await response.json();\r\n\r\n const returnVal: RenewalPlanList = {\r\n planId: listFromApi.planId,\r\n renewalOptions: listFromApi.renewalPlans.map(i => this.constructRenewalOptionItemFromServiceItem(i))\r\n };\r\n\r\n return returnVal;\r\n } finally {\r\n this.loadingService.done();\r\n }\r\n\r\n }\r\n\r\n private async doFetchOptions(subscriptionId: string): Promise {\r\n const api = await this.getRenewalOptionsEndpoint(subscriptionId);\r\n const authToken = await this.getAuthenticationToken();\r\n\r\n const response: Response = await fetch(api, {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${authToken}`\r\n }\r\n });\r\n\r\n return response;\r\n\r\n }\r\n\r\n /**\r\n * Helper to xform raw API result into our application model\r\n * @param serviceItem \r\n */\r\n private constructRenewalOptionItemFromServiceItem(serviceItem: RenewalPlanResponse): RenewalPlan {\r\n if (serviceItem) {\r\n const newItem: RenewalPlan = {\r\n id: serviceItem.renewalPlanId,\r\n detailsLink: serviceItem.renewalPlanDetailsUrl,\r\n code: serviceItem.code,\r\n name: serviceItem.name,\r\n display: serviceItem.displayText,\r\n price: serviceItem.price\r\n };\r\n\r\n return newItem;\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Helper to get the URI for the payment token request\r\n * @returns Fully qualified url to the API endpoint\r\n */\r\n private async getRenewalOptionsEndpoint(subscriptionId: string) {\r\n const config = await this.tenantService.getTenantDetailsAsync();\r\n\r\n return `${config.servicesBaseUrl}/appservices/api/v2/subscription/${subscriptionId}/renewalplans`;\r\n }\r\n\r\n /**\r\n * Helper to ensure we got a successful response\r\n */\r\n private async validateResponse(response: Response): Promise {\r\n if (response.status === 200 || response.status === 201) return;\r\n\r\n let error: Error = new Error(`Unexpected ${response.statusText} response from server.`);\r\n\r\n try {\r\n const content: any = await response.json();\r\n let msg: string = '';\r\n\r\n if (content.message) {\r\n msg = content.message;\r\n }\r\n\r\n error = new Error(`Unexpected ${response.statusText} response from server. ${msg}`)\r\n } finally {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * Get the current user's bearer token\r\n * @returns the raw bearer token value\r\n * @remarks This is coded as an async returning\r\n * a promise to future-proof it in the event we have\r\n * to fetch a new token from a service. currently,\r\n * we're fetching a locally stored value but that could\r\n * likely change.\r\n */\r\n private async getAuthenticationToken(): Promise {\r\n return new Promise((resolve, reject) => {\r\n resolve(this.authenticationService.getUserAuthToken())\r\n });\r\n }\r\n}\r\n","import { RenewalPlanList } from \"./models\";\r\n\r\n/**\r\n * PlanRenewal Service abstraction. Defines the methods\r\n * supported by a concrete plan renewal service implementation\r\n */\r\nexport abstract class PlanRenewalService{\r\n public abstract getRenewalOptionsFromSubscription(subscriptionId: string): Promise;\r\n}","import { Injectable } from '@angular/core';\r\n\r\n/**\r\n * Contains a list of the external scripts we might need.\r\n * There is only one at this point.\r\n */\r\n const authNetAcceptJsSandbox: string = 'acceptJsSandbox';\r\n const authNetAcceptJsSandboxSrc: string = 'https://jstest.authorize.net/v1/Accept.js';\r\n\r\n export const authNetAcceptJs: string = 'acceptJs';\r\n const authNetAcceptJsSrc: string = 'https://js.authorize.net/v1/Accept.js';\r\n\r\n\r\n const scriptList = [\r\n { name: authNetAcceptJsSandbox, src: authNetAcceptJsSandboxSrc },\r\n { name: authNetAcceptJs, src: authNetAcceptJsSrc }\r\n ];\r\n \r\n/**\r\n * Dynamic script loading service.\r\n * Borrowed from: http://www.lukasjakob.com/how-to-dynamically-load-external-scripts-in-angular/\r\n */\r\n @Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DynamicScriptService {\r\n static AuthnetAcceptJsSandbox: string = authNetAcceptJsSandbox;\r\n static AuthnetAcceptJs: string = authNetAcceptJs;\r\n\r\n private scripts: any = {};\r\n\r\n constructor(){\r\n scriptList.forEach((script: any) => {\r\n this.scripts[script.name] = {\r\n loaded: false,\r\n src: script.src\r\n };\r\n });\r\n }\r\n\r\n load(...scripts: string[]){\r\n const promises: any[] = [];\r\n scripts.forEach((script) => promises.push(this.loadDynamicScript(script)));\r\n return Promise.all(promises);\r\n }\r\n\r\n loadDynamicScript(name: string){\r\n return new Promise((resolve,reject)=>{\r\n\r\n if(this.scripts[name].loaded){\r\n resolve({script: name, loaded: true, status: 'Already Loaded'});\r\n }else{\r\n const scriptElement = window.document.createElement('script');\r\n scriptElement.type = 'text/javascript';\r\n scriptElement.src = this.scripts[name].src;\r\n \r\n scriptElement.onload = () =>{\r\n this.scripts[name].loaded = true;\r\n resolve({script: name, loaded: true, status: 'Loaded'});\r\n };\r\n scriptElement.onerror = () =>{\r\n console.error('failed to load script');\r\n reject();\r\n };\r\n document.getElementsByTagName('head')[0].appendChild(scriptElement);\r\n }\r\n });\r\n }\r\n}\r\n","export const environment = {\r\n production: true,\r\n BASE_URL_TENANT: \"https://customers.syncronex.com/api/v1.0/\",\r\n BASE_URL_OAUTH: \"https://identity.syncronex.com/\",\r\n OAUTH_CLIENT: \"smp_hag_cap_Prod\",\r\n OAUTH_CLIENT_SECRET: \"f89X5Hw3NS@i#xlV\",\r\n OAUTH_CLIENT_SCOPE: \"hag_cap_Prod\"\r\n};\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n"],"sourceRoot":"webpack:///"}