aps-data-api
npm
package for APS company for data extraction
- This package contains two methods of data extraction
getServiceAccounts
- It gives the response in the form of list of service-accounts
related to given user-account
getMonthlyUtilityData
- It gives the response in the form of list of monthly-utility-data
for given service-account
Installation
npm i aps-data-api --save
How to use?
import { APSUtilityDataService } from 'aps-data-api';
const apsUtilityDataService = new APSUtilityDataService();
const payload: GetDataPayload = {
password: string;
username: string;
};
const res = await apsUtilityDataService.getServiceAccounts(payload)
After data extraction, we will get response as -
res: UtilityUserAccountResponse = {
id: string
name: string
serviceAccounts[]: [{id:string, address:Address}]
};
const res = await apsUtilityDataService.getMonthlyUtilityData(payload)
After data extraction, we will get response as -
res: MonthlyUtilityData[] = {
id: string
amountInCents: number
energyConsumptionInWatts: number
month: string
serviceAccountId: string
year: number
};
Methods
getServiceAccounts: (
payload: GetDataPayload,
) => Promise<UtilityUserAccountResponse>;
getMonthlyUtilityData: (
payload: GetDataPayload,
) => Promise<MonthlyUtilityData[]>;
setProxy:(proxy: string[]) => Promise<void>
Options
GetDataPayload = {
password: string;
username: string;
};
WHERE,
password: password of the user-account
username: username of the user-account
proxy:string[]
WHERE,
proxy: VGS proxy we set
Responses
UtilityUserAccountResponse = {
id: string
name: string
serviceAccounts[]: [{id:string, address:Address}]
};
WHERE,
id: user-account id
name: Name of the user
serviceAccounts[]: List of service-accounts which are linked to given user-account id
MonthlyUtilityData[] = {
id: string
amountInCents: number
energyConsumptionInWatts: number
month: string
serviceAccountId: string
year: number
};
WHERE,
id: id of monthly utility data model
amountInCents: Cost of electricity used in respective month and year in cents
energyConsumptionInWatts: Amount of electricity consumed in respective month and year in watts
month: Month of year for which utility data is extracted
serviceAccountId: service-account id for which utility data is extracted
year: Year of calender for which utility data is extracted
Scripts
npm run build
- For building the app.npm run test
- Run automated test cases via mocha
and chai
.npm run start
- For starting the app.npm run serve
- For building and starting the app with auto-reload on changes.npm run lint
- To perform linting
Overview
npm run lint
Error Handling
- If we pass incorrect credentials for getting utility-data, then...
import { APSUtilityDataService } from 'aps-data-api';
const apsUtilityDataService = new APSUtilityDataService();
const payload: GetDataPayload = {
password: incorrect-username;
username: incorrect-password;
};
const res = await apsUtilityDataService.getServiceAccounts(payload)
-
The Promise gets rejected with AuthenticationError
with message - access_denied
-
If we pass correct credentials for getting utility-data, but data extraction failed and service cannot extract data, then...
import { APSUtilityDataService } from 'aps-data-api';
const apsUtilityDataService = new APSUtilityDataService();
const payload: GetDataPayload = {
password: correct-username;
username: correct-password;
};
const res = await apsUtilityDataService.getMonthlyUtilityData(payload)
- The Promise gets rejected with
DataExtractionError
with message - Failed to extract data