File size: 1,095 Bytes
093279d
f39e411
677259a
433085e
5a6eb7f
36d3d2c
22f0230
677259a
a6fbb8d
5a6eb7f
a6fbb8d
02fcdf7
ac9dbd5
22f0230
 
ac9dbd5
 
5a6eb7f
677259a
093279d
f39e411
5a6eb7f
 
 
22f0230
677259a
 
 
 
22f0230
5a6eb7f
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
import { userRegisterSchema } from "src/modules/common/users/validation/user-register.validation";
import { asyncHandler } from "../../../../helpers/async-handler";
import { JwtHelper } from "../../../../helpers/jwt.helper";
import { bodyValidator } from "../../../../helpers/validation.helper";
import { BaseController } from "../../../../lib/controllers/controller.base";
import { Prefix } from "../../../../lib/decorators/prefix.decorator";
import { UsersService } from "../services/users.service";
import { JsonResponse } from "src/lib/responses/json-response";

const allowedRoles = ["superAdmin", "admin"];

@Prefix("/console/users")
export class AdminUsersController extends BaseController {
  private usersService: UsersService = new UsersService();

  setRoutes() {
    this.router.post(
      "/create",
      JwtHelper.verifyToken(allowedRoles),
      bodyValidator(userRegisterSchema),
      asyncHandler(this.create)
    );
  }

  create = async (req, res) => {
    let user = await this.usersService.create(req.body);
    return new JsonResponse({
      data: user,
    });
  };
}