@@ -73,7 +73,9 @@ export class ChallengesService {
7373 private readonly winningsRepo : WinningsRepository ,
7474 ) { }
7575
76- private getDefaultWinnerCategory ( challenge : Challenge ) : WinningsCategory {
76+ private getMetadataPaymentCategory (
77+ challenge : Challenge ,
78+ ) : WinningsCategory | undefined {
7779 const metadataPaymentCategory = challenge . metadata ?. find (
7880 ( { name, value } ) =>
7981 name ?. toLowerCase ( ) === PAYMENT_TYPE_METADATA_NAME &&
@@ -87,11 +89,35 @@ export class ChallengesService {
8789 ] ;
8890 }
8991
92+ return undefined ;
93+ }
94+
95+ private getDefaultWinnerCategory ( challenge : Challenge ) : WinningsCategory {
96+ const metadataPaymentCategory = this . getMetadataPaymentCategory ( challenge ) ;
97+
98+ if ( metadataPaymentCategory ) {
99+ return metadataPaymentCategory ;
100+ }
101+
90102 return challenge . task . isTask
91103 ? WinningsCategory . TASK_PAYMENT
92104 : WinningsCategory . CONTEST_PAYMENT ;
93105 }
94106
107+ private getReviewerPaymentCategory (
108+ challenge : Challenge ,
109+ currency ?: PrizeType ,
110+ ) : WinningsCategory {
111+ if ( currency !== PrizeType . USD ) {
112+ return WinningsCategory . POINTS_AWARD ;
113+ }
114+
115+ return this . getMetadataPaymentCategory ( challenge ) ===
116+ WinningsCategory . TOPGEAR_PAYMENT
117+ ? WinningsCategory . TOPGEAR_PAYMENT
118+ : WinningsCategory . REVIEW_BOARD_PAYMENT ;
119+ }
120+
95121 async getChallenge ( challengeId : string ) {
96122 if ( ! isUUID ( challengeId ) ) {
97123 throw new BadRequestException (
@@ -378,10 +404,10 @@ export class ChallengesService {
378404
379405 const placementPrize = placementPrizes ?. [ 0 ] ;
380406 const currency = placementPrize ?. type ;
381- const winType =
382- currency === PrizeType . USD
383- ? WinningsCategory . REVIEW_BOARD_PAYMENT
384- : WinningsCategory . POINTS_AWARD ;
407+ const winType = this . getReviewerPaymentCategory (
408+ challenge ,
409+ currency ,
410+ ) ;
385411
386412 return {
387413 handle : reviewer . memberHandle ,
0 commit comments