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 ofservice-accounts
related to givenuser-account
-
getMonthlyUtilityData
- It gives the response in the form of list ofmonthly-utility-data
for givenservice-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 viamocha
andchai
. -
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
-
Typescript support
-
Environment specific configuation support. The application use config npm module.
-
Linting support
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