challenge-api
challenge-api copied to clipboard
WIP Billing Account & Markup
trafficstars
For this issue, we'll implement billing account on the challenge object and then calculate the markup. This challenge depends on the projects api implementing the sfdc billing account markup property.
1. Implement Challenge API
Allow the challenge api to have a billing object:
{
"billing": {
"billingAccountId": 20394002,
"markup": "<float>0.85"
}
}
- Billing Account ID should NOT be required to create a challenge
- Billing Account ID SHOULD be required to Activate a challenge
- Billing Account should be "Active" when Activating a challenge, otherwise throw an error. Active means if you query the v5 project for the
projectIdthe billing account ID that comes back should match. - The v5 project should be query-able by the jwt - meaning the user should be on the v5 project
GET /challengeandGET /challenges/:uuidshould only return thebillingobject for Admin or m2m
2. legacy-challenge-processor
There is currently a hack where it pulls the billing account id and writes it to the payload, change this to use the billing.billingAccountId
TBD - project update notification
We might need to listen to project update notifications and update the BA/markup. Will confirm.
Working on https://github.com/topcoder-platform/challenge-api/tree/feature/v5-ba
The flow will be like this:
- If the billing information is set, we validate and use that
- If the billing information is not set, we will try to fetch the default from the Projects API
Assumptions:
- The
billingAccountIdis read-only - The
markupcan be different than what's in the Project info but we default to the one from the project info. (Values from 0 to 100 as it's a percentage)
PRs:
- https://github.com/topcoder-platform/challenge-api/pull/388
- https://github.com/topcoder-platform/legacy-challenge-processor/pull/39/