Skip to content

Commit 6093732

Browse files
Change way of checking if user is active or not
1 parent 0776277 commit 6093732

14 files changed

Lines changed: 47 additions & 56 deletions

File tree

src/Application/HumanResource/User/Query/GetUserAdministrativeByIdQueryHandler.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ export class GetUserAdministrativeByIdQueryHandler {
4848
user.getEmail(),
4949
user.getRole(),
5050
user.isAdministrativeEditable(),
51+
user.isActive(),
5152
userAdministrativeView
5253
);
5354
}

src/Application/HumanResource/User/Query/GetUserByIdQueryHandler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export class GetUserByIdQueryHandler {
2424
user.getLastName(),
2525
user.getEmail(),
2626
user.getRole(),
27-
user.isAdministrativeEditable()
27+
user.isAdministrativeEditable(),
2828
);
2929
}
3030
}

src/Application/HumanResource/User/Query/GetUsersQuery.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,5 @@ import { IQuery } from 'src/Application/IQuery';
33
export class GetUsersQuery implements IQuery {
44
constructor(
55
public readonly withAccountant: boolean = false,
6-
public readonly activeOnly: boolean = false,
7-
public readonly inactiveOnly: boolean = false
86
) {}
97
}

src/Application/HumanResource/User/Query/GetUsersQueryHandler.spec.ts

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ describe('GetUsersQueryHandler', () => {
2525
when(user2.getRole()).thenReturn(UserRole.COOPERATOR);
2626
when(user2.isAdministrativeEditable()).thenReturn(true);
2727

28-
when(userRepository.findUsers(true, false, false)).thenResolve([
28+
when(userRepository.findUsers(true)).thenResolve([
2929
instance(user1),
3030
instance(user2)
3131
]);
@@ -38,6 +38,7 @@ describe('GetUsersQueryHandler', () => {
3838
'MARCHOIS',
3939
'mathieu@fairness.coop',
4040
UserRole.COOPERATOR,
41+
true,
4142
true
4243
),
4344
new UserView(
@@ -46,54 +47,55 @@ describe('GetUsersQueryHandler', () => {
4647
'MARCHOIS',
4748
'helene@fairness.coop',
4849
UserRole.COOPERATOR,
49-
true
50+
true,
51+
false
5052
)
5153
];
5254

53-
expect(await handler.execute(new GetUsersQuery(true, false))).toMatchObject(
55+
expect(await handler.execute(new GetUsersQuery(true))).toMatchObject(
5456
expectedResult
5557
);
56-
verify(userRepository.findUsers(true, false, false)).once();
58+
verify(userRepository.findUsers(true)).once();
5759
});
5860

5961
it('testGetEmptyUsers', async () => {
6062
const userRepository = mock(UserRepository);
6163

62-
when(userRepository.findUsers(false, false, false)).thenResolve([]);
64+
when(userRepository.findUsers(false)).thenResolve([]);
6365

6466
const handler = new GetUsersQueryHandler(instance(userRepository));
6567

6668
expect(
67-
await handler.execute(new GetUsersQuery(false, false))
69+
await handler.execute(new GetUsersQuery(false))
6870
).toMatchObject([]);
69-
verify(userRepository.findUsers(false, false, false)).once();
71+
verify(userRepository.findUsers(false)).once();
7072
});
7173

7274
it('testGetActiveUsers', async () => {
7375
const userRepository = mock(UserRepository);
7476

75-
when(userRepository.findUsers(true, true, false)).thenResolve([]);
77+
when(userRepository.findUsers(true)).thenResolve([]);
7678

7779
const handler = new GetUsersQueryHandler(instance(userRepository));
7880
const expectedResult = [];
7981

80-
expect(await handler.execute(new GetUsersQuery(true, true))).toMatchObject(
82+
expect(await handler.execute(new GetUsersQuery(true))).toMatchObject(
8183
expectedResult
8284
);
83-
verify(userRepository.findUsers(true, true, false)).once();
85+
verify(userRepository.findUsers(true)).once();
8486
});
8587

8688
it('testGetInactiveUsers', async () => {
8789
const userRepository = mock(UserRepository);
8890

89-
when(userRepository.findUsers(true, false, true)).thenResolve([]);
91+
when(userRepository.findUsers(true)).thenResolve([]);
9092

9193
const handler = new GetUsersQueryHandler(instance(userRepository));
9294
const expectedResult = [];
9395

9496
expect(
95-
await handler.execute(new GetUsersQuery(true, false, true))
97+
await handler.execute(new GetUsersQuery(true))
9698
).toMatchObject(expectedResult);
97-
verify(userRepository.findUsers(true, false, true)).once();
99+
verify(userRepository.findUsers(true)).once();
98100
});
99101
});

src/Application/HumanResource/User/Query/GetUsersQueryHandler.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,8 @@ export class GetUsersQueryHandler {
1212
) {}
1313

1414
public async execute(query: GetUsersQuery): Promise<UserView[]> {
15-
const noLeavingDate = query.activeOnly;
16-
const withLeavingDate = query.inactiveOnly;
17-
1815
const users = await this.userRepository.findUsers(
1916
query.withAccountant,
20-
noLeavingDate,
21-
withLeavingDate
2217
);
2318
const userViews: UserView[] = [];
2419

@@ -30,7 +25,8 @@ export class GetUsersQueryHandler {
3025
user.getLastName(),
3126
user.getEmail(),
3227
user.getRole(),
33-
user.isAdministrativeEditable()
28+
user.isAdministrativeEditable(),
29+
user.isActive(),
3430
)
3531
);
3632
}

src/Application/HumanResource/User/View/UserView.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export class UserView {
99
public readonly email: string,
1010
public readonly role: UserRole,
1111
public readonly isAdministrativeEditable: boolean,
12+
public readonly isActive: boolean = null,
1213
public readonly administrativeView: UserAdministrativeView = null
1314
) {}
1415
}

src/Domain/HumanResource/User/Repository/IUserRepository.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,6 @@ export interface IUserRepository {
55
findOneByEmail(email: string): Promise<User | undefined>;
66
findOneById(id: string): Promise<User | undefined>;
77
save(user: User): Promise<User>;
8-
findUsers(
9-
withAccountant: boolean,
10-
noLeavingDate: boolean,
11-
withLeavingDate: boolean
12-
): Promise<User[]>;
8+
findUsers(withAccountant: boolean): Promise<User[]>;
139
findUsersWithPayslipInfo(): Promise<User[]>;
1410
}

src/Domain/HumanResource/User/User.entity.spec.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ describe('User.entity', () => {
2323
expect(user.getPassword()).toBe('hashPassword');
2424
expect(user.getApiToken()).toBe('hashToken');
2525
expect(user.getRole()).toBe(UserRole.COOPERATOR);
26+
expect(user.isActive()).toBe(true);
2627
expect(user.getUserAdministrative()).toBe(instance(admin));
2728
expect(user.isAdministrativeEditable()).toBe(true);
2829
});

src/Domain/HumanResource/User/User.entity.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,10 @@ export class User {
9999
return this.role !== UserRole.ACCOUNTANT;
100100
}
101101

102+
public isActive(): boolean {
103+
return this.userAdministrative.getLeavingDate() === null;
104+
}
105+
102106
public getFullName(): string {
103107
return `${this.firstName} ${this.lastName}`;
104108
}

src/Infrastructure/HumanResource/Leave/Controller/ListLeaveRequestsController.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ import { LoggedUser } from '../../User/Decorator/LoggedUser';
1717
import { LeaveRequestTableFactory } from '../Table/LeaveRequestTableFactory';
1818
import { LeaveRequestsOverviewTableFactory } from '../Table/LeaveRequestOverviewTableFactory';
1919
import { GetLeaveRequestsOverviewQuery } from 'src/Application/HumanResource/Leave/Query/GetLeaveRequestsOverviewQuery';
20-
import { UserView } from 'src/Application/HumanResource/User/View/UserView';
21-
import { GetUsersQuery } from 'src/Application/HumanResource/User/Query/GetUsersQuery';
2220
import { ListLeaveRequestsControllerDTO } from '../DTO/ListLeaveRequestsControllerDTO';
2321

2422
@Controller('app/people/leave_requests')

0 commit comments

Comments
 (0)