UNPKG

aps-data-api

Version:

package for data extraction from APS company for omnimetic project

134 lines (126 loc) 3.93 kB
import fs from 'fs'; import path from 'path'; import { BrowserInterface } from '../../../src/typings'; import { GetServiceAccountsRequestHandler } from './get-service-accounts-request-handler'; const workFlowConfigFilePath = path.join( 'src', 'services', 'workflow', 'workflow.json', ); const apsWorkflowJson = JSON.parse( fs.readFileSync(workFlowConfigFilePath).toString(), ); export class GetServiceAccountsRequestHandlerImpl implements GetServiceAccountsRequestHandler { // tslint:disable-next-line: no-empty async type() {} async waitForResponse( urlOrPredicate: | string | ((res: BrowserInterface.HTTPResponse) => boolean | Promise<boolean>), options?: { timeout?: number; }, ) { try { if ( urlOrPredicate === apsWorkflowJson.getServiceAccounts.userDetailsUrl ) { const data = { Details: { profileData: { MainPersonName: 'Naval,Ravi', }, AccountDetails: { getAccountDetailsResponse: { getAccountDetailsRes: { getPersonDetails: { accountID: '816567445', results: [ { personID: '0350831000', personName: 'Naval,Ravi', accountRelationship: 'JAH-SP', }, { personID: '0967061000', personName: 'Naval,George', accountRelationship: 'MAIN', }, { personID: '0967061000', personName: 'Naval,George', accountRelationship: 'MAIN', }, ], }, getSASPListByAccountID: { premiseDetailsList: [ { premiseID: '7123467556', sASPDetails: [ { sPID: '8164327863', sPType: 'PROD', meterBadgeNumber: '1143088', sAID: '', sACISDiv: '', isEligibleDemandRate: 'true', totalElectricChargeAmount: '', }, { sPID: '8161046816', sPType: 'RES', meterBadgeNumber: '1211831', sAID: '7139371525', sACISDiv: 'APS', isEligibleDemandRate: 'true', totalElectricChargeAmount: '128.32', }, ], }, ], }, }, }, }, }, }; return Promise.resolve(data); } } catch (err) { return Promise.reject(err); } } async waitForSelector( selector: string, options?: { visible?: boolean; hidden?: boolean; timeout?: number; }, ) { try { if (selector === apsWorkflowJson.getServiceAccounts.addressDataSelector) { return Promise.resolve(null); } } catch (err) { return Promise.reject(err); } } async $eval<ReturnType>( selector: string, pageFunction: ( element: Element, ...args: unknown[] ) => ReturnType | Promise<ReturnType>, ) { if (selector === apsWorkflowJson.getServiceAccounts.addressDataSelector) { const data: Awaited<any> = 'Mailing address416115 N JW Marriot RD # 120-156, SCOTTSDALE, ARIZONA,85641, USA'; return Promise.resolve(data); } } }