vendor-order-service
v1.1.2
Published
This service handles any backend requirements for the EV charger front-end.
Downloads
2
Readme
Vendor Order Service (BFF - Backend for Frontend)
This service handles any backend requirements for the EV charger front-end.
This app was created with a cdk init --language=typescript
and modified from there.
Please see the companion Postman collection for demonstration on use.
Useful commands
These commands from the CDK init boilerplate
npm run build
compile typescript to jsnpm run watch
watch for changes and compilenpm run test
perform the jest unit testscdk deploy
deploy this stack to your default AWS account/regioncdk diff
compare deployed stack with current statecdk synth
emits the synthesized CloudFormation template
Deploying
This package runs within the Lerna-controlled monorepo, and is deployed by using GitHub Actions from the root directory of the repository (../.github/workflows
).
Running Lambda Locally
# build to dist
npm run build
# create a CloudFormation template
cdk synth --no-staging > template.yaml
# invoke the lambda function locally
sam local invoke availability1234abcd -e sample_events/availability.json
* Note that '1234abcd' represents an 8-character ID that AWS CDK generates. You can find your's in template.yaml, right before Type: AWS::Lambda::Function
Endpoints
GET /referral?zip={zipCode}
Returns an array of partners for the given zip code. If no records are found, a 404 will be returned. Data structure for each entry can be found in the /src/referral/referral.ts
file and is as such
{
productOffering: string;
partnerTier: 'Standard' | 'Preferred';
accountName: string;
accountType?: string;
accountAddress?: string;
accountCity?: string;
accountState?: string;
accountZip?: string;
accountPhone?: string;
accountWebsite?: string;
}
GET /orders
Return order infomation.
Querystring params (as an object):
{
vendor_name: string,
order_number: string,
zipcode: string,
last_name: string,
}
GET /availability?zip={zip}
Returns availability info for EV charger installations for a given zip code.
Output:
{
EVChargerInstall: boolean,
}
Lambdas
For lambdas without an endpoint
{env}-vendor-order-service-GetJWT
Returns a signed JWT for authentication.
Querystring params (as an object):
{
order_number: string,
zipcode: string,
last_name: string,
}
Success output:
{
access_token: JWT, // string
}
Disaster Recovery
Please read the disaster recovery plan.