Total Complexity | 2 |
Total Lines | 28 |
Duplicated Lines | 0 % |
Changes | 0 |
1 | import { QueryHandler } from '@nestjs/cqrs'; |
||
7 | |||
8 | @QueryHandler(GetUsersSavingsRecordsBalanceQuery) |
||
9 | export class GetUsersSavingsRecordsBalanceQueryHandler { |
||
10 | constructor( |
||
11 | @Inject('IUserSavingsRecordRepository') |
||
12 | private readonly userSavingsRecordRepository: IUserSavingsRecordRepository, |
||
13 | private readonly getUserSavingsRecordBalance: GetUserSavingsRecordBalance, |
||
14 | ) {} |
||
15 | |||
16 | public async execute( |
||
17 | query: GetUsersSavingsRecordsBalanceQuery |
||
18 | ): Promise<UserSavingsRecordsBalanceView[]> { |
||
19 | const userSavingsRecords = await this.userSavingsRecordRepository.findUsersSavingsRecords(); |
||
20 | const userSavingsRecordsBalances: UserSavingsRecordsBalanceView[] = []; |
||
21 | const usersBalances = this.getUserSavingsRecordBalance.get(userSavingsRecords); |
||
22 | |||
23 | for (const [userId, {firstName, lastName, balance}] of Object.entries(usersBalances)) { |
||
24 | userSavingsRecordsBalances.push( |
||
25 | new UserSavingsRecordsBalanceView( |
||
26 | userId, |
||
27 | firstName, |
||
28 | lastName, |
||
29 | balance / 100, |
||
30 | ) |
||
31 | ); |
||
32 | }; |
||
33 | |||
34 | return userSavingsRecordsBalances; |
||
35 | } |
||
37 |