-
Notifications
You must be signed in to change notification settings - Fork 30
Expand file tree
/
Copy pathusers.controller.ts
More file actions
65 lines (55 loc) · 2.63 KB
/
users.controller.ts
File metadata and controls
65 lines (55 loc) · 2.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import { Body, Controller, Delete, Get, Headers, Param, Patch, UseInterceptors } from '@nestjs/common';
import { LoggerService } from '@o2s/utils.logger';
import { Request } from './';
import { UserService } from './users.service';
import * as Auth from '@/modules/auth';
import { AppHeaders } from '@/utils/models/headers';
@Controller('/users')
@UseInterceptors(LoggerService)
export class UserController {
constructor(protected readonly userService: UserService) {}
@Get('/me')
@Auth.Roles({ roles: [Auth.Constants.Roles.USER, Auth.Constants.Roles.ADMIN] })
getCurrentUser(@Headers() headers: AppHeaders) {
return this.userService.getCurrentUser(headers.authorization);
}
@Get(':id')
@Auth.Roles({ roles: [Auth.Constants.Roles.USER, Auth.Constants.Roles.ADMIN] })
getUser(@Param() params: Request.GetUserParams, @Headers() headers: AppHeaders) {
return this.userService.getUser(params, headers.authorization);
}
@Patch('/me')
@Auth.Roles({ roles: [Auth.Constants.Roles.USER, Auth.Constants.Roles.ADMIN] })
updateCurrentUser(@Body() body: Request.PostUserBody, @Headers() headers: AppHeaders) {
return this.userService.updateCurrentUser(body, headers.authorization);
}
@Patch(':id')
@Auth.Roles({ roles: [Auth.Constants.Roles.USER, Auth.Constants.Roles.ADMIN] })
updateUser(
@Param() params: Request.GetUserParams,
@Body() body: Request.PostUserBody,
@Headers() headers: AppHeaders,
) {
return this.userService.updateUser(params, body, headers.authorization);
}
@Get('/me/customers')
@Auth.Roles({ roles: [Auth.Constants.Roles.USER, Auth.Constants.Roles.ADMIN] })
getCustomersForCurrentUser(@Headers() headers: AppHeaders) {
return this.userService.getCurrentUserCustomers(headers.authorization);
}
@Get('/me/customers/:id')
@Auth.Roles({ roles: [Auth.Constants.Roles.USER, Auth.Constants.Roles.ADMIN] })
getCustomerForCurrentUserById(@Param() params: Request.GetCustomerParams, @Headers() headers: AppHeaders) {
return this.userService.getCurrentUserCustomer(params, headers.authorization);
}
@Delete('/me')
@Auth.Roles({ roles: [Auth.Constants.Roles.USER, Auth.Constants.Roles.ADMIN] })
deleteCurrentUser(@Headers() headers: AppHeaders) {
return this.userService.deleteCurrentUser(headers.authorization);
}
@Delete(':id')
@Auth.Roles({ roles: [Auth.Constants.Roles.USER, Auth.Constants.Roles.ADMIN] })
deleteUser(@Param() params: Request.GetUserParams, @Headers() headers: AppHeaders) {
return this.userService.deleteUser(params, headers.authorization);
}
}