This commit is contained in:
Rayyan Syahbani Hermanto
2026-09-07 22:57:18 +07:00
parent fdbfb34842
commit 1bba2b518e
101 changed files with 2503 additions and 8 deletions
@@ -0,0 +1,150 @@
"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 find_user_handler_1 = require("../../application/handlers/find-user.handler");
const find_users_handler_1 = require("../../application/handlers/find-users.handler");
const create_user_handler_1 = require("../../application/handlers/create-user.handler");
const update_user_handler_1 = require("../../application/handlers/update-user.handler");
const delete_user_handler_1 = require("../../application/handlers/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,
find_user_handler_1.FindUserHandler,
find_users_handler_1.FindUsersHandler,
update_user_handler_1.UpdateUserHandler,
delete_user_handler_1.DeleteUserHandler])
], UsersController);
//# sourceMappingURL=users.controller.js.map