Total Complexity | 2 |
Complexity/F | 2 |
Lines of Code | 37 |
Function Count | 1 |
Duplicated Lines | 0 |
Ratio | 0 % |
Changes | 0 |
1 | import { QueryHandler } from '@nestjs/cqrs'; |
||
2 | import { Inject } from '@nestjs/common'; |
||
3 | import { GetUsersSavingsRecordsBalanceQuery } from './GetUsersSavingsRecordsBalanceQuery'; |
||
4 | import { IUserSavingsRecordRepository } from 'src/Domain/HumanResource/Savings/Repository/IUserSavingsRecordRepository'; |
||
5 | import { UserSavingsRecordsBalanceView } from '../View/UserSavingsRecordsBalanceView'; |
||
6 | import { GetUserSavingsRecordBalance } from 'src/Domain/HumanResource/Savings/GetUserSavingsRecordBalance'; |
||
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 | } |
||
36 | } |
||
37 |