@bitwild/rockets-auth
Version:
Rockets Auth - Complete authentication and authorization solution for NestJS with JWT, OAuth, OTP, role-based access control, and more
136 lines • 6.4 kB
JavaScript
;
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 RocketsAuthRoleAdminModule_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RocketsAuthRoleAdminModule = void 0;
const nestjs_crud_1 = require("@concepta/nestjs-crud");
const common_1 = require("@nestjs/common");
const swagger_1 = require("@nestjs/swagger");
const rockets_auth_role_update_dto_1 = require("../dto/rockets-auth-role-update.dto");
const rockets_auth_role_dto_1 = require("../dto/rockets-auth-role.dto");
const admin_guard_1 = require("../../../guards/admin.guard");
const rockets_auth_constants_1 = require("../../../shared/constants/rockets-auth.constants");
const class_transformer_1 = require("class-transformer");
const admin_user_roles_controller_1 = require("../controllers/admin-user-roles.controller");
const rockets_auth_role_create_dto_1 = require("../dto/rockets-auth-role-create.dto");
let RocketsAuthRoleAdminModule = RocketsAuthRoleAdminModule_1 = class RocketsAuthRoleAdminModule {
static register(admin) {
var _a, _b;
const ModelDto = admin.model || rockets_auth_role_dto_1.RocketsAuthRoleDto;
const UpdateDto = ((_a = admin.dto) === null || _a === void 0 ? void 0 : _a.updateOne) || rockets_auth_role_update_dto_1.RocketsAuthRoleUpdateDto;
const CreateDto = ((_b = admin.dto) === null || _b === void 0 ? void 0 : _b.createOne) || rockets_auth_role_create_dto_1.RocketsAuthRoleCreateDto;
let PaginatedDto = class PaginatedDto extends nestjs_crud_1.CrudResponsePaginatedDto {
constructor() {
super(...arguments);
this.data = [];
}
};
__decorate([
(0, class_transformer_1.Expose)(),
(0, swagger_1.ApiProperty)({
type: ModelDto,
isArray: true,
description: 'Array of Roles',
}),
(0, class_transformer_1.Type)(() => ModelDto),
__metadata("design:type", Array)
], PaginatedDto.prototype, "data", void 0);
PaginatedDto = __decorate([
(0, class_transformer_1.Exclude)()
], PaginatedDto);
const builder = new nestjs_crud_1.ConfigurableCrudBuilder({
service: {
adapter: admin.adapter,
injectionToken: rockets_auth_constants_1.ADMIN_ROLE_CRUD_SERVICE_TOKEN,
},
controller: {
path: admin.path || 'admin/roles',
model: {
type: ModelDto,
paginatedType: PaginatedDto,
},
extraDecorators: [
(0, swagger_1.ApiTags)('admin'),
(0, common_1.UseGuards)(admin_guard_1.AdminGuard),
(0, swagger_1.ApiBearerAuth)(),
],
},
getMany: {},
getOne: {},
createOne: {
dto: CreateDto,
},
updateOne: {
dto: UpdateDto,
},
deleteOne: {},
});
const { ConfigurableControllerClass, ConfigurableServiceClass, CrudUpdateOne, } = builder.build();
class AdminRoleCrudService extends ConfigurableServiceClass {
}
class AdminRoleCrudController extends ConfigurableControllerClass {
async updateOne(crudRequest, updateDto) {
const pipe = new common_1.ValidationPipe({
transform: true,
skipMissingProperties: true,
forbidUnknownValues: true,
});
await pipe.transform(updateDto, { type: 'body', metatype: UpdateDto });
return super.updateOne(crudRequest, updateDto);
}
}
__decorate([
CrudUpdateOne,
(0, swagger_1.ApiOperation)({
summary: 'Update role',
description: 'Updates role information',
}),
(0, swagger_1.ApiBody)({
type: UpdateDto,
description: 'Role information to update',
}),
(0, swagger_1.ApiOkResponse)({
description: 'Role updated successfully',
type: ModelDto,
}),
(0, swagger_1.ApiResponse)({
status: 400,
description: 'Bad request - Invalid input data',
}),
(0, swagger_1.ApiResponse)({
status: 401,
description: 'Unauthorized - User not authenticated',
}),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, void 0]),
__metadata("design:returntype", Promise)
], AdminRoleCrudController.prototype, "updateOne", null);
return {
module: RocketsAuthRoleAdminModule_1,
imports: [...(admin.imports || [])],
controllers: [AdminRoleCrudController, admin_user_roles_controller_1.AdminUserRolesController],
providers: [
admin.adapter,
AdminRoleCrudService,
{
provide: rockets_auth_constants_1.ADMIN_ROLE_CRUD_SERVICE_TOKEN,
useClass: AdminRoleCrudService,
},
],
exports: [AdminRoleCrudService, admin.adapter],
};
}
};
exports.RocketsAuthRoleAdminModule = RocketsAuthRoleAdminModule;
exports.RocketsAuthRoleAdminModule = RocketsAuthRoleAdminModule = RocketsAuthRoleAdminModule_1 = __decorate([
(0, common_1.Module)({})
], RocketsAuthRoleAdminModule);
//# sourceMappingURL=rockets-auth-role-admin.module.js.map