Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
b54c0f1
Challenge API - v6 status normalization. These aren't used, but futu…
jmgasper Jan 6, 2026
6132900
Merge branch 'dev' of github.com:topcoder-platform/tc-finance-api int…
jmgasper Jan 6, 2026
f50661a
PM-3242 - support points on winnings
vas3a Jan 8, 2026
6a02b8a
PM-2688 - handle no checkpoint winners
vas3a Jan 8, 2026
3ac3642
Throw error if there are more winners than prizes
vas3a Jan 8, 2026
0821d3d
PM-3242 - Skip payment generation for reviewers & copilots when winni…
vas3a Jan 9, 2026
2ff5c5b
PM-3242 - skip BA consume for non-usd payments
vas3a Jan 9, 2026
9d9a2e0
Ensure consistency accross data types
vas3a Jan 9, 2026
1ae2bd7
Merge pull request #128 from topcoder-platform/PM-2688_payments-for-c…
vas3a Jan 9, 2026
22bde35
cleanup
vas3a Jan 9, 2026
04a8b80
Throw error when user tries to withdraw non-payments or non-usd winnings
vas3a Jan 12, 2026
8ece24f
Merge pull request #130 from topcoder-platform/PM-3242_support-points…
vas3a Jan 12, 2026
20f451c
Update swagger doc for wallet endpoint. remove POST /winnings
vas3a Jan 14, 2026
c30c95c
update type for wallet points
vas3a Jan 14, 2026
2fd842e
Handle points in POST /winnings
vas3a Jan 14, 2026
10f1292
typo
vas3a Jan 14, 2026
da2892f
Updates to allow Task managers to create payments
jmgasper Jan 15, 2026
8e6383f
Merge pull request #132 from topcoder-platform/PM-3259_feedback
vas3a Jan 15, 2026
dfa03f6
Merge branch 'dev' into engagements
jmgasper Jan 16, 2026
88ba3df
Merge pull request #133 from topcoder-platform/engagements
jmgasper Jan 16, 2026
eca984b
Return "points" in wallet response
vas3a Jan 19, 2026
63d25bd
Merge pull request #134 from topcoder-platform/PM-3259_feedback
vas3a Jan 19, 2026
87dde0d
PM-3260 - add winnings category & type filters
vas3a Jan 20, 2026
8e4748d
Challenge-payments: support points
vas3a Jan 20, 2026
0888eb8
Allow Project Manager to create payments, used for engagements
jmgasper Jan 20, 2026
860ac06
Fix up Task Manager vs. Talent Manager confusion
jmgasper Jan 20, 2026
4158375
Merge pull request #135 from topcoder-platform/PM-3260_points-in-wallet
vas3a Jan 21, 2026
ade3baa
Better role handling
jmgasper Jan 21, 2026
1cf23ed
feat: exposed finance client
hentrymartin Jan 22, 2026
81db939
fix: removed generated client
hentrymartin Jan 22, 2026
8d17205
fix: finance client
hentrymartin Jan 22, 2026
9de6171
Support for https://topcoder.atlassian.net/browse/PM-3555 New endpoi…
jmgasper Jan 22, 2026
ed2f18d
Merge pull request #137 from topcoder-platform/engagements
jmgasper Jan 22, 2026
21623d9
Fix to use external ID properly after merge
jmgasper Jan 23, 2026
987d4c1
fix: made finance client readonly
hentrymartin Jan 23, 2026
cbcd819
fix: added generated client to remote
hentrymartin Jan 23, 2026
45f34e8
fix: added external client
hentrymartin Jan 23, 2026
74b5f22
fix: review commen
hentrymartin Jan 23, 2026
7767a72
Merge pull request #136 from topcoder-platform/pm-3454_finance_client
hentrymartin Jan 23, 2026
640ddc0
Fix for engagement payments not displaying in wallet
jmgasper Jan 25, 2026
51e60ab
Merge branch 'dev' of github.com:topcoder-platform/tc-finance-api int…
jmgasper Jan 25, 2026
03ce88b
PM-3575 - handle BA Admin user
vas3a Jan 28, 2026
4448678
import ba client from develop branch; fix typo in error message
vas3a Jan 28, 2026
83bcf6d
Merge pull request #138 from topcoder-platform/PM-3575_handle-ba-admi…
vas3a Jan 29, 2026
f9f93d3
Allow for setting the payment status via create Winnings for engageme…
jmgasper Feb 3, 2026
cfbfac7
Merge branch 'dev' of github.com:topcoder-platform/tc-finance-api int…
jmgasper Feb 3, 2026
dea070b
PM-3575 - use m2m to BA api to fetch user's billing accounts
vas3a Feb 4, 2026
a4617c8
Merge pull request #140 from topcoder-platform/PM-3575_handle-ba-admi…
vas3a Feb 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ workflows:
branches:
only:
- dev
- engagements
- 'build-prod':
context: org-global
filters:
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@ main

.env
node_modules
dist
dist
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,8 @@ The API uses role-based access control with the following roles:
- `User` - Regular authenticated users (withdrawals, view own data)
- `PaymentAdmin` - Full administrative access
- `PaymentEditor` - Edit payments and winnings
- `TaskManager` - Create and manage engagement winnings
- `TalentManager` - Create and manage engagement winnings
- `PaymentViewer` - Read-only access to payment data
- `M2M` - Machine-to-machine service access

Expand Down
3 changes: 2 additions & 1 deletion docs/ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ Controllers handle HTTP requests and route them to appropriate services:

- User winnings CRUD operations
- View personal winnings history
- Requires: `User` role
- Requires: `User` role for member endpoints; create winnings requires `PaymentAdmin`, `PaymentEditor`, `TaskManager`, or `TalentManager` roles

**WithdrawalController** (`/v5/finance/withdraw`)

Expand Down Expand Up @@ -217,6 +217,7 @@ Controllers handle HTTP requests and route them to appropriate services:
- `RolesGuard` - Role-based access control
- `TokenValidatorMiddleware` - Token parsing and extraction
- Supports both user JWT and M2M tokens
- Roles include `User`, `PaymentAdmin`, `PaymentEditor`, `PaymentViewer`, `TaskManager`, and `TalentManager`

**Request Context**

Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
"@nestjs/platform-express": "^11.1.7",
"@nestjs/swagger": "^11.2.1",
"@prisma/client": "^6.18.0",
"@topcoder/billing-accounts-api-v6": "github:topcoder-platform/billing-accounts-api-v6#develop",
"class-transformer": "^0.5.1",
"class-validator": "^0.14.2",
"cors": "^2.8.5",
Expand Down
1 change: 1 addition & 0 deletions packages/finance-prisma-client/client.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from "./index"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[💡 style]
Consider adding a newline at the end of the file to comply with POSIX standards. This can prevent potential issues with some tools and version control systems that expect a newline at the end of files.

4 changes: 4 additions & 0 deletions packages/finance-prisma-client/client.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@

/* !!! This is code generated by Prisma. Do not edit directly. !!!
/* eslint-disable */
module.exports = { ...require('.') }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[⚠️ maintainability]
The use of require('.') without specifying a specific module or file path can lead to unexpected behavior if the directory structure changes or if there are multiple entry points. Consider explicitly requiring the intended module to improve maintainability and clarity.

1 change: 1 addition & 0 deletions packages/finance-prisma-client/default.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from "./index"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[💡 style]
Consider adding a newline at the end of the file to adhere to POSIX standards. This can help avoid potential issues with some tools and version control systems that expect a newline at the end of files.

4 changes: 4 additions & 0 deletions packages/finance-prisma-client/default.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@

/* !!! This is code generated by Prisma. Do not edit directly. !!!
/* eslint-disable */
module.exports = { ...require('#main-entry-point') }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[❗❗ correctness]
The use of require('#main-entry-point') with a dynamic path might cause issues if the module resolution path is not correctly configured. Ensure that the module path is correctly set up in the environment where this code will run.

1 change: 1 addition & 0 deletions packages/finance-prisma-client/edge.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from "./default"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[💡 style]
Consider adding a newline at the end of the file. While this is a minor style issue, it can prevent potential issues with some tools or when concatenating files.

Loading
Loading