diff --git a/src/api/challenges/challenges.controller.ts b/src/api/challenges/challenges.controller.ts index ab77b08..90dd263 100644 --- a/src/api/challenges/challenges.controller.ts +++ b/src/api/challenges/challenges.controller.ts @@ -51,7 +51,10 @@ export class ChallengesController { ); result.status = ResponseStatusType.SUCCESS; } catch (e) { - result.error = e; + result.error = { + ...e, + message: e.message, + }; result.status = ResponseStatusType.ERROR; } diff --git a/src/api/challenges/challenges.service.ts b/src/api/challenges/challenges.service.ts index b08d372..caca869 100644 --- a/src/api/challenges/challenges.service.ts +++ b/src/api/challenges/challenges.service.ts @@ -411,6 +411,22 @@ export class ChallengesService { ); } + const paymentTypes = [ + ...new Set( + challenge.prizeSets + .map((set) => set.prizes.map((prize) => prize.type)) + .flat(), + ), + ]; + const isRewardsPayment = paymentTypes.some((type) => type !== 'USD'); + + if (isRewardsPayment) { + this.logger.log( + `Rewards system detected: ${paymentTypes.join(', ')}. Skipping payments generation for challenge ${challenge.name} (${challenge.id}).`, + ); + return; + } + const payments = await this.getChallengePayments(challenge); const totalAmount = payments.reduce( (sum, payment) => sum + payment.details[0].totalAmount,