File tree Expand file tree Collapse file tree 5 files changed +26
-5
lines changed
Projects/BooksLibrary/src
database/sql/sequelize/repositories Expand file tree Collapse file tree 5 files changed +26
-5
lines changed Original file line number Diff line number Diff line change @@ -27,6 +27,7 @@ export class UserValidator {
2727 LastName : request . body . LastName ,
2828 Email : request . body . Email ,
2929 Password : request . body . Password ,
30+ RoleId : request . body . RoleId ?? null ,
3031 } ;
3132
3233 return createUserDomainModel ;
Original file line number Diff line number Diff line change @@ -13,7 +13,7 @@ export class UserRepo implements IUserRepo {
1313 LastName : userDetails . LastName ,
1414 Email : userDetails . Email ,
1515 Password : userDetails . Password ,
16- RoleId : '' ,
16+ RoleId : userDetails . RoleId ,
1717 } ;
1818
1919 const user : User = await User . create ( entity ) ;
Original file line number Diff line number Diff line change @@ -2,6 +2,8 @@ import { ApiError } from 'common/api.error';
22import { Logger } from 'common/logger' ;
33import { IRoleRepo } from 'database/repository.interfaces/user.role.repo.interface' ;
44import { RoleDto } from 'domain.types/role/role.dto' ;
5+ import { Roles } from 'domain.types/role/role.types' ;
6+ import { Op } from 'sequelize/types' ;
57import { RoleMapper } from '../mapper/user.role.mapper' ;
68import Role from '../models/role.model' ;
79
@@ -24,7 +26,19 @@ export class UserRoleRepo implements IRoleRepo {
2426 throw new Error ( 'Method not implemented.' ) ;
2527 }
2628
27- getByName ( name : string ) : Promise < RoleDto > {
28- throw new Error ( 'Method not implemented.' ) ;
29- }
29+ getByName = async ( name : Roles ) : Promise < RoleDto > => {
30+ try {
31+ // select * from Role where RoleName='User' limit 1;
32+ const role = await Role . findOne ( {
33+ where : {
34+ RoleName : name ,
35+ } ,
36+ } ) ;
37+ const dto = RoleMapper . toDto ( role ) ;
38+ return dto ;
39+ } catch ( error ) {
40+ Logger . instance ( ) . log ( error . message ) ;
41+ throw new ApiError ( 500 , error . message ) ;
42+ }
43+ } ;
3044}
Original file line number Diff line number Diff line change @@ -5,4 +5,5 @@ export interface UserDomainModel {
55 LastName : string ;
66 Email : string ;
77 Password : string ;
8+ RoleId : string ;
89}
Original file line number Diff line number Diff line change 1+ import { IRoleRepo } from 'database/repository.interfaces/user.role.repo.interface' ;
2+ import { RoleDto } from 'domain.types/role/role.dto' ;
3+ import { Roles } from 'domain.types/role/role.types' ;
14import { UserDomainModel } from 'domain.types/user/user.domain.model' ;
25import { UserDetailsDto } from 'domain.types/user/user.dto' ;
36import { inject , injectable } from 'tsyringe' ;
47import { IUserRepo } from '../database/repository.interfaces/user.repo.intrerface' ;
58
69@injectable ( )
710export class UserService {
8- constructor ( @inject ( 'IUserRepo' ) private _userRepo : IUserRepo ) { }
11+ constructor ( @inject ( 'IUserRepo' ) private _userRepo : IUserRepo , @ inject ( 'IRoleRepo' ) private _roleRepo : IRoleRepo ) { }
912
1013 create = async ( userDetails : UserDomainModel ) : Promise < UserDetailsDto > => {
14+ const userRole : RoleDto = await this . _roleRepo . getByName ( Roles . User ) ;
15+ userDetails . RoleId = userRole . id ;
1116 const userDetailsDto : UserDetailsDto = await this . _userRepo . createUser ( userDetails ) ;
1217
1318 return userDetailsDto ;
You can’t perform that action at this time.
0 commit comments