Challenge Overview
For this challenge, we'd like to make some improvement for billing account services (https://github.com/topcoder-platform/tc-billing-account-service) (use dev branch)
1. Add offset and limit parameters for GET /clients and GET /me/billing-accounts, and GET /billing-accounts/{billingAccountId}/users
API - GET /billing-accounts already has similar implementation for your reference.
2. Add filtering for GET /clients
It should support filtering on name (partial match), status, start date, and end date, please check filtering for which GET /billing-accounts is already implemented.
3. Change for creating billing account api
- Remove the customerNumber field
- Add a new clientId field
- Add support for budgetAmount field
- Before creating the billing account, it should first validate the exisitence of client
- After creating the billing account, it should add a new record in client_project table for linking client and billing account, as we are assuming 1-1 mapping for client and billing account
4. Change for updating billing account api
- Remove the customerNumber field
- Add a new clientId field
- Before updating the billing account, it should first validate the exisitence of client
- After updating the billing account, it should remove the old record in client_project table and add a new record in client_project table for linking client and billing account, as we are assuming 1-1 mapping for client and billing account
5. For clients related api, please add support customerNumber for creation, update and retrieval.
6. Please update the swagger.yaml to reflect the latest changes.
7. Tests should be properly updated
8. Please update the postman scripts for easily testing.
- Verification Steps
- Updated Postman scripts
1. Add offset and limit parameters for GET /clients and GET /me/billing-accounts, and GET /billing-accounts/{billingAccountId}/users
API - GET /billing-accounts already has similar implementation for your reference.
2. Add filtering for GET /clients
It should support filtering on name (partial match), status, start date, and end date, please check filtering for which GET /billing-accounts is already implemented.
3. Change for creating billing account api
- Remove the customerNumber field
- Add a new clientId field
- Add support for budgetAmount field
- Before creating the billing account, it should first validate the exisitence of client
- After creating the billing account, it should add a new record in client_project table for linking client and billing account, as we are assuming 1-1 mapping for client and billing account
4. Change for updating billing account api
- Remove the customerNumber field
- Add a new clientId field
- Before updating the billing account, it should first validate the exisitence of client
- After updating the billing account, it should remove the old record in client_project table and add a new record in client_project table for linking client and billing account, as we are assuming 1-1 mapping for client and billing account
5. For clients related api, please add support customerNumber for creation, update and retrieval.
6. Please update the swagger.yaml to reflect the latest changes.
7. Tests should be properly updated
8. Please update the postman scripts for easily testing.
Final Submission Guidelines
- Code changes for the requiremensts- Verification Steps
- Updated Postman scripts