1
|
|
|
import {InjectRepository} from '@nestjs/typeorm'; |
2
|
|
|
import {Injectable} from '@nestjs/common'; |
3
|
|
|
import {Repository} from 'typeorm'; |
4
|
|
|
import {UserAdministrative} from 'src/Domain/HumanResource/User/UserAdministrative.entity'; |
5
|
|
|
import {IUserAdministrativeRepository} from 'src/Domain/HumanResource/User/Repository/IUserAdministrativeRepository'; |
6
|
|
|
|
7
|
|
|
@Injectable() |
8
|
|
|
export class UserAdministrativeRepository |
9
|
|
|
implements IUserAdministrativeRepository { |
10
|
|
|
constructor( |
11
|
|
|
@InjectRepository(UserAdministrative) |
12
|
|
|
private readonly repository: Repository<UserAdministrative> |
13
|
|
|
) {} |
14
|
|
|
|
15
|
|
|
public findOneByUserId(userId: string): Promise<UserAdministrative | undefined> { |
16
|
|
|
return this.repository |
17
|
|
|
.createQueryBuilder('userAdministrative') |
18
|
|
|
.select([ |
19
|
|
|
'userAdministrative.id', |
20
|
|
|
'userAdministrative.joiningDate', |
21
|
|
|
'userAdministrative.leavingDate', |
22
|
|
|
'userAdministrative.annualEarnings', |
23
|
|
|
'userAdministrative.transportFee', |
24
|
|
|
'userAdministrative.healthInsurance', |
25
|
|
|
'userAdministrative.executivePosition', |
26
|
|
|
'userAdministrative.contract', |
27
|
|
|
]) |
28
|
|
|
.innerJoin('userAdministrative.user', 'user') |
29
|
|
|
.where('user.id = :userId', {userId}) |
30
|
|
|
.getOne(); |
31
|
|
|
} |
32
|
|
|
|
33
|
|
|
public save( |
34
|
|
|
userAdministrative: UserAdministrative |
35
|
|
|
): Promise<UserAdministrative> { |
36
|
|
|
return this.repository.save(userAdministrative); |
37
|
|
|
} |
38
|
|
|
} |
39
|
|
|
|