Skip to content

Commit ae4d48c

Browse files
authored
Merge pull request #17 from topcoder-platform/PM-921_qa-fixes
PM-921 qa fixes
2 parents 7310e72 + 4745fdb commit ae4d48c

File tree

5 files changed

+35
-22
lines changed

5 files changed

+35
-22
lines changed

src/api/admin-winning/adminWinning.service.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ export class AdminWinningService {
107107
details: item.payment?.map((paymentItem) => ({
108108
id: paymentItem.payment_id,
109109
netAmount: Number(paymentItem.net_amount),
110-
grossAmount: (paymentItem.gross_amount),
110+
grossAmount: Number(paymentItem.gross_amount),
111111
totalAmount: Number(paymentItem.total_amount),
112112
installmentNumber: paymentItem.installment_number,
113113
datePaid: paymentItem.date_paid ?? undefined,

src/api/repository/paymentMethod.repo.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,13 @@ export class PaymentMethodRepository {
3636
* @returns payment methods
3737
*/
3838
private async findPaymentMethodByUserId(userId: string, tx?) {
39-
const query = `
39+
const db = tx || this.prisma;
40+
const ret = await db.$queryRaw`
4041
SELECT pm.payment_method_id, pm.payment_method_type, pm.name, pm.description, upm.status, upm.id
4142
FROM payment_method pm
4243
JOIN user_payment_methods upm ON pm.payment_method_id = upm.payment_method_id
43-
WHERE upm.user_id = '${userId}'
44+
WHERE upm.user_id=${userId}
4445
`;
45-
const db = tx || this.prisma;
46-
const ret = await db.$queryRawUnsafe(query);
4746
return (ret || []) as PaymentMethodQueryResult[];
4847
}
4948
}

src/api/repository/taxForm.repo.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,14 @@ export class TaxFormRepository {
3434
userId: string,
3535
tx?,
3636
): Promise<TaxFormQueryResult[]> {
37-
const query = `
37+
const db = tx || this.prisma;
38+
39+
const ret = await db.$queryRaw`
3840
SELECT u.id, u.user_id, t.tax_form_id, t.name, t.text, t.description, u.date_filed, u.withholding_amount, u.withholding_percentage, u.status_id::text, u.use_percentage
3941
FROM user_tax_form_associations AS u
4042
JOIN tax_forms AS t ON u.tax_form_id = t.tax_form_id
41-
WHERE u.user_id = '${userId}'
43+
WHERE u.user_id=${userId}
4244
`;
43-
const db = tx || this.prisma;
44-
45-
const ret = await db.$queryRawUnsafe(query);
4645
return (ret || []) as TaxFormQueryResult[];
4746
}
4847
}

src/api/wallet/wallet.service.ts

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import {
88
PaymentStatus,
99
} from 'src/dto/adminWinning.dto';
1010
import { WalletDetailDto } from 'src/dto/wallet.dto';
11+
import { TaxFormRepository } from '../repository/taxForm.repo';
12+
import { PaymentMethodRepository } from '../repository/paymentMethod.repo';
1113

1214
/**
1315
* The winning service.
@@ -18,7 +20,11 @@ export class WalletService {
1820
* Constructs the admin winning service with the given dependencies.
1921
* @param prisma the prisma service.
2022
*/
21-
constructor(private readonly prisma: PrismaService) {}
23+
constructor(
24+
private readonly prisma: PrismaService,
25+
private readonly taxFormRepo: TaxFormRepository,
26+
private readonly paymentMethodRepo: PaymentMethodRepository,
27+
) {}
2228

2329
/**
2430
* Get wallet detail.
@@ -63,6 +69,7 @@ export class WalletService {
6369

6470
// count PAYMENT and REWARD totals
6571
let paymentTotal = 0;
72+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
6673
let rewardTotal = 0;
6774
winnings.forEach((item) => {
6875
if (item.type === WinningsType.PAYMENT) {
@@ -90,6 +97,10 @@ export class WalletService {
9097
}
9198
});
9299

100+
const hasActiveTaxForm = await this.taxFormRepo.hasActiveTaxForm(userId);
101+
const hasVerifiedPaymentMethod =
102+
await this.paymentMethodRepo.hasVerifiedPaymentMethod(userId);
103+
93104
const winningTotals: WalletDetailDto = {
94105
account: {
95106
balances: [
@@ -98,18 +109,19 @@ export class WalletService {
98109
amount: paymentTotal,
99110
unit: 'currency',
100111
},
101-
{
102-
type: WinningsType.REWARD,
103-
amount: rewardTotal,
104-
unit: 'points',
105-
},
112+
// hide rewards for now
113+
// {
114+
// type: WinningsType.REWARD,
115+
// amount: rewardTotal,
116+
// unit: 'points',
117+
// },
106118
],
107119
},
108120
withdrawalMethod: {
109-
isSetupComplete: true,
121+
isSetupComplete: hasVerifiedPaymentMethod,
110122
},
111123
taxForm: {
112-
isSetupComplete: true,
124+
isSetupComplete: hasActiveTaxForm,
113125
},
114126
};
115127

src/api/winning/winning.controller.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ import {
1414
ResponseStatusType,
1515
ResponseDto,
1616
WinningRequestDto,
17-
SearchWinningResult,
1817
WinningCreateRequestDto,
18+
WinningDto,
1919
} from 'src/dto/adminWinning.dto';
2020

2121
import { AdminWinningService } from '../admin-winning/adminWinning.service';
@@ -78,18 +78,21 @@ export class WinningController {
7878
@ApiResponse({
7979
status: 200,
8080
description: 'Search winnings successfully.',
81-
type: ResponseDto<SearchWinningResult>,
81+
type: ResponseDto<WinningDto[]>,
8282
})
8383
@HttpCode(HttpStatus.OK)
8484
async searchWinnings(
8585
@Body() body: WinningRequestDto,
86-
): Promise<ResponseDto<SearchWinningResult>> {
86+
): Promise<ResponseDto<WinningDto[]>> {
8787
const result = await this.adminWinningService.searchWinnings(body);
8888

8989
result.status = result.error
9090
? ResponseStatusType.ERROR
9191
: ResponseStatusType.SUCCESS;
9292

93-
return result;
93+
return {
94+
...result,
95+
data: result.data.winnings,
96+
};
9497
}
9598
}

0 commit comments

Comments
 (0)