@@ -3,6 +3,7 @@ import { injectable, inject, named } from 'inversify';
33import { Repository } from '../../constants/Targets' ;
44import { Types } from '../../constants/Types' ;
55import { Log } from '../../core/log' ;
6+ import { Validate , Request } from '../../core/api/Validate' ;
67import { NotFoundException } from '../exceptions/NotFoundException' ;
78import { UserCreateRequest } from '../requests/UserCreateRequest' ;
89import { UserUpdateRequest } from '../requests/UserUpdateRequest' ;
@@ -72,11 +73,8 @@ export class UserService {
7273 * @param {* } data is the json body of the request
7374 * @returns {Promise<User> }
7475 */
75- public async create ( data : any ) : Promise < User > {
76- // Validate request payload
77- const request = new UserCreateRequest ( data ) ;
78- await request . validate ( ) ;
79-
76+ @Validate
77+ public async create ( @Request ( UserCreateRequest ) data : any ) : Promise < User > {
8078 // If the request body was valid we will create the user
8179 const user = await this . userRepo . create ( data ) ;
8280 return user ;
@@ -90,21 +88,17 @@ export class UserService {
9088 * @param {* } newUser is the json body of the request
9189 * @returns {Promise<User> }
9290 */
93- public async update ( id : number , newUser : any ) : Promise < User > {
94- const oldUserModel = await this . findOne ( id ) ;
95- const oldUser = oldUserModel . toJSON ( ) ;
96- const request = new UserUpdateRequest ( oldUser ) ;
97-
98- request . setFirstName ( newUser . firstName ) ;
99- request . setLastName ( newUser . lastName ) ;
100- request . setEmail ( newUser . email ) ;
101-
102- // Validate request payload
103- await request . validate ( ) ;
104-
105- // If the request body was valid we will create the user
106- const user = await this . userRepo . update ( id , request . toJSON ( ) ) ;
107- return user ;
91+ @Validate
92+ public async update ( id : number , @Request ( UserUpdateRequest ) newUser : any ) : Promise < User > {
93+ // Find or fail
94+ const user = await this . findOne ( id ) ;
95+ // Set new values
96+ user . FirstName = newUser . firstName ;
97+ user . LastName = newUser . lastName ;
98+ user . Email = newUser . email ;
99+ // Update user record
100+ const updatedUser = await this . userRepo . update ( id , user . toJSON ( ) ) ;
101+ return updatedUser ;
108102 }
109103
110104 /**
0 commit comments