150 lines
6.3 KiB
JavaScript
150 lines
6.3 KiB
JavaScript
"use strict";
|
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
};
|
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.UsersController = void 0;
|
|
const common_1 = require("@nestjs/common");
|
|
const swagger_1 = require("@nestjs/swagger");
|
|
const jwt_auth_guard_1 = require("../../../../core/auth/guards/jwt-auth.guard");
|
|
const permission_guard_1 = require("../../../authorization/presentation/guards/permission.guard");
|
|
const permission_decorator_1 = require("../../../authorization/presentation/decorators/permission.decorator");
|
|
const get_user_handler_1 = require("../../application/handlers/user/get-user.handler");
|
|
const get_users_handler_1 = require("../../application/handlers/user/get-users.handler");
|
|
const create_user_handler_1 = require("../../application/handlers/user/create-user.handler");
|
|
const update_user_handler_1 = require("../../application/handlers/user/update-user.handler");
|
|
const delete_user_handler_1 = require("../../application/handlers/user/delete-user.handler");
|
|
const create_user_dto_1 = require("../dto/create-user.dto");
|
|
const update_user_dto_1 = require("../dto/update-user.dto");
|
|
let UsersController = class UsersController {
|
|
createUserHandler;
|
|
findUserHandler;
|
|
findUsersHandler;
|
|
updateUserHandler;
|
|
deleteUserHandler;
|
|
constructor(createUserHandler, findUserHandler, findUsersHandler, updateUserHandler, deleteUserHandler) {
|
|
this.createUserHandler = createUserHandler;
|
|
this.findUserHandler = findUserHandler;
|
|
this.findUsersHandler = findUsersHandler;
|
|
this.updateUserHandler = updateUserHandler;
|
|
this.deleteUserHandler = deleteUserHandler;
|
|
}
|
|
sanitizeUser(user) {
|
|
if (!user)
|
|
return user;
|
|
if (Array.isArray(user)) {
|
|
return user.map(u => {
|
|
const { password, ...rest } = u;
|
|
return rest;
|
|
});
|
|
}
|
|
const { password, ...rest } = user;
|
|
return rest;
|
|
}
|
|
async create(dto) {
|
|
const data = await this.createUserHandler.execute(dto);
|
|
return {
|
|
success: true,
|
|
data: this.sanitizeUser(data),
|
|
meta: {},
|
|
};
|
|
}
|
|
async getById(id) {
|
|
const data = await this.findUserHandler.execute(id);
|
|
return {
|
|
success: true,
|
|
data: this.sanitizeUser(data),
|
|
meta: {},
|
|
};
|
|
}
|
|
async getAll() {
|
|
const data = await this.findUsersHandler.execute({});
|
|
return {
|
|
success: true,
|
|
data: this.sanitizeUser(data),
|
|
meta: {},
|
|
};
|
|
}
|
|
async update(id, dto) {
|
|
const data = await this.updateUserHandler.execute(id, dto);
|
|
return {
|
|
success: true,
|
|
data: this.sanitizeUser(data),
|
|
meta: {},
|
|
};
|
|
}
|
|
async delete(id) {
|
|
await this.deleteUserHandler.execute(id);
|
|
return {
|
|
success: true,
|
|
data: null,
|
|
meta: {},
|
|
};
|
|
}
|
|
};
|
|
exports.UsersController = UsersController;
|
|
__decorate([
|
|
(0, common_1.Post)(),
|
|
(0, permission_decorator_1.Permissions)('USER_CREATE'),
|
|
(0, swagger_1.ApiOperation)({ summary: 'Create user' }),
|
|
__param(0, (0, common_1.Body)()),
|
|
__metadata("design:type", Function),
|
|
__metadata("design:paramtypes", [create_user_dto_1.CreateUserDto]),
|
|
__metadata("design:returntype", Promise)
|
|
], UsersController.prototype, "create", null);
|
|
__decorate([
|
|
(0, common_1.Get)(':id'),
|
|
(0, permission_decorator_1.Permissions)('USER_READ'),
|
|
(0, swagger_1.ApiOperation)({ summary: 'Get user by id' }),
|
|
__param(0, (0, common_1.Param)('id')),
|
|
__metadata("design:type", Function),
|
|
__metadata("design:paramtypes", [String]),
|
|
__metadata("design:returntype", Promise)
|
|
], UsersController.prototype, "getById", null);
|
|
__decorate([
|
|
(0, common_1.Get)(),
|
|
(0, permission_decorator_1.Permissions)('USER_READ_ADMIN'),
|
|
(0, swagger_1.ApiOperation)({ summary: 'Get All User' }),
|
|
__metadata("design:type", Function),
|
|
__metadata("design:paramtypes", []),
|
|
__metadata("design:returntype", Promise)
|
|
], UsersController.prototype, "getAll", null);
|
|
__decorate([
|
|
(0, common_1.Patch)(':id'),
|
|
(0, permission_decorator_1.Permissions)('USER_UPDATE'),
|
|
(0, swagger_1.ApiOperation)({ summary: 'Update User' }),
|
|
__param(0, (0, common_1.Param)('id')),
|
|
__param(1, (0, common_1.Body)()),
|
|
__metadata("design:type", Function),
|
|
__metadata("design:paramtypes", [String, update_user_dto_1.UpdateUserDto]),
|
|
__metadata("design:returntype", Promise)
|
|
], UsersController.prototype, "update", null);
|
|
__decorate([
|
|
(0, common_1.Delete)(':id'),
|
|
(0, permission_decorator_1.Permissions)('USER_DELETE'),
|
|
(0, swagger_1.ApiOperation)({ summary: 'Delete user by id' }),
|
|
__param(0, (0, common_1.Param)('id')),
|
|
__metadata("design:type", Function),
|
|
__metadata("design:paramtypes", [String]),
|
|
__metadata("design:returntype", Promise)
|
|
], UsersController.prototype, "delete", null);
|
|
exports.UsersController = UsersController = __decorate([
|
|
(0, swagger_1.ApiTags)('Users'),
|
|
(0, common_1.Controller)('api/v1/users'),
|
|
(0, common_1.UseGuards)(jwt_auth_guard_1.JwtAuthGuard, permission_guard_1.PermissionGuard),
|
|
__metadata("design:paramtypes", [create_user_handler_1.CreateUserHandler,
|
|
get_user_handler_1.GetUserHandler,
|
|
get_users_handler_1.GetUsersHandler,
|
|
update_user_handler_1.UpdateUserHandler,
|
|
delete_user_handler_1.DeleteUserHandler])
|
|
], UsersController);
|
|
//# sourceMappingURL=users.controller.js.map
|