Bot
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
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 __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.CreateUserHandler = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const bcrypt = __importStar(require("bcrypt"));
|
||||
const user_entity_1 = require("../../domain/entities/user.entity");
|
||||
const user_repository_interface_1 = require("../../domain/repositories/user.repository.interface");
|
||||
let CreateUserHandler = class CreateUserHandler {
|
||||
userRepository;
|
||||
constructor(userRepository) {
|
||||
this.userRepository = userRepository;
|
||||
}
|
||||
async execute(dto) {
|
||||
const exists = await this.userRepository.existsByEmail(dto.email);
|
||||
if (exists) {
|
||||
throw new common_1.ConflictException('Email already exists.');
|
||||
}
|
||||
const saltRounds = parseInt(process.env.BCRYPT_SALT_ROUNDS ?? '10', 10);
|
||||
const hashedPassword = await bcrypt.hash(dto.password, saltRounds);
|
||||
const user = user_entity_1.User.create({
|
||||
name: dto.name,
|
||||
email: dto.email,
|
||||
password: hashedPassword,
|
||||
metadata: dto.metadata,
|
||||
});
|
||||
await this.userRepository.create(user);
|
||||
// TODO:
|
||||
// this.eventDispatcher.publish(new UserCreatedEvent(user));
|
||||
return user;
|
||||
}
|
||||
};
|
||||
exports.CreateUserHandler = CreateUserHandler;
|
||||
exports.CreateUserHandler = CreateUserHandler = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__metadata("design:paramtypes", [user_repository_interface_1.UserRepository])
|
||||
], CreateUserHandler);
|
||||
//# sourceMappingURL=create-user.handler.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"create-user.handler.js","sourceRoot":"","sources":["../../../../../src/modules/identity/application/handlers/create-user.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAGwB;AAExB,+CAAiC;AAEjC,mEAAyD;AACzD,mGAAqF;AAG9E,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAET;IADnB,YACmB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAC9C,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,GAAkB;QAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAElE,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,0BAAiB,CAAC,uBAAuB,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QACxE,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAEnE,MAAM,IAAI,GAAG,kBAAI,CAAC,MAAM,CAAC;YACvB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,QAAQ,EAAE,cAAc;YACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACvB,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEvC,QAAQ;QACR,4DAA4D;QAE5D,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AA7BY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAGwB,0CAAc;GAFtC,iBAAiB,CA6B7B"}
|
||||
@@ -0,0 +1,36 @@
|
||||
"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);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.DeleteUserHandler = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const user_repository_interface_1 = require("../../domain/repositories/user.repository.interface");
|
||||
let DeleteUserHandler = class DeleteUserHandler {
|
||||
userRepository;
|
||||
constructor(userRepository) {
|
||||
this.userRepository = userRepository;
|
||||
}
|
||||
async execute(id) {
|
||||
const user = await this.userRepository.findById(id);
|
||||
if (!user) {
|
||||
throw new common_1.NotFoundException('User not found.');
|
||||
}
|
||||
user.delete();
|
||||
await this.userRepository.update(user);
|
||||
// TODO:
|
||||
// Publish UserDeletedEvent
|
||||
}
|
||||
};
|
||||
exports.DeleteUserHandler = DeleteUserHandler;
|
||||
exports.DeleteUserHandler = DeleteUserHandler = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__metadata("design:paramtypes", [user_repository_interface_1.UserRepository])
|
||||
], DeleteUserHandler);
|
||||
//# sourceMappingURL=delete-user.handler.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"delete-user.handler.js","sourceRoot":"","sources":["../../../../../src/modules/identity/application/handlers/delete-user.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAGwB;AAExB,mGAAqF;AAG9E,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAET;IADnB,YACmB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAC9C,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEpD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,0BAAiB,CAAC,iBAAiB,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;QAEd,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEvC,QAAQ;QACR,2BAA2B;IAC7B,CAAC;CACF,CAAA;AAnBY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAGwB,0CAAc;GAFtC,iBAAiB,CAmB7B"}
|
||||
@@ -0,0 +1,33 @@
|
||||
"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);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.FindUserHandler = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const user_repository_interface_1 = require("../../domain/repositories/user.repository.interface");
|
||||
let FindUserHandler = class FindUserHandler {
|
||||
userRepository;
|
||||
constructor(userRepository) {
|
||||
this.userRepository = userRepository;
|
||||
}
|
||||
async execute(id) {
|
||||
const user = await this.userRepository.findById(id);
|
||||
if (!user) {
|
||||
throw new common_1.NotFoundException('User not found.');
|
||||
}
|
||||
return user;
|
||||
}
|
||||
};
|
||||
exports.FindUserHandler = FindUserHandler;
|
||||
exports.FindUserHandler = FindUserHandler = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__metadata("design:paramtypes", [user_repository_interface_1.UserRepository])
|
||||
], FindUserHandler);
|
||||
//# sourceMappingURL=find-user.handler.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"find-user.handler.js","sourceRoot":"","sources":["../../../../../src/modules/identity/application/handlers/find-user.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAGwB;AAExB,mGAAqF;AAI9E,IAAM,eAAe,GAArB,MAAM,eAAe;IAEP;IADnB,YACmB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAC9C,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEpD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,0BAAiB,CAAC,iBAAiB,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAdY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;qCAGwB,0CAAc;GAFtC,eAAe,CAc3B"}
|
||||
@@ -0,0 +1,29 @@
|
||||
"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);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.FindUsersHandler = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const user_repository_interface_1 = require("../../domain/repositories/user.repository.interface");
|
||||
let FindUsersHandler = class FindUsersHandler {
|
||||
userRepository;
|
||||
constructor(userRepository) {
|
||||
this.userRepository = userRepository;
|
||||
}
|
||||
async execute() {
|
||||
return await this.userRepository.findAll();
|
||||
}
|
||||
};
|
||||
exports.FindUsersHandler = FindUsersHandler;
|
||||
exports.FindUsersHandler = FindUsersHandler = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__metadata("design:paramtypes", [user_repository_interface_1.UserRepository])
|
||||
], FindUsersHandler);
|
||||
//# sourceMappingURL=find-users.handler.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"find-users.handler.js","sourceRoot":"","sources":["../../../../../src/modules/identity/application/handlers/find-users.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAE5C,mGAAqF;AAI9E,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAER;IADnB,YACmB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAC9C,CAAC;IAEJ,KAAK,CAAC,OAAO;QACX,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;IAC7C,CAAC;CACF,CAAA;AARY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAGwB,0CAAc;GAFtC,gBAAgB,CAQ5B"}
|
||||
@@ -0,0 +1,96 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
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 __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.LoginHandler = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const bcrypt = __importStar(require("bcrypt"));
|
||||
const jwt_1 = require("@nestjs/jwt");
|
||||
const user_repository_interface_1 = require("../../domain/repositories/user.repository.interface");
|
||||
let LoginHandler = class LoginHandler {
|
||||
userRepository;
|
||||
jwtService;
|
||||
constructor(userRepository, jwtService) {
|
||||
this.userRepository = userRepository;
|
||||
this.jwtService = jwtService;
|
||||
}
|
||||
async execute(dto) {
|
||||
const user = await this.userRepository.findByEmail(dto.email);
|
||||
// Generic error message for security
|
||||
const unauthorizedMsg = 'Invalid credentials.';
|
||||
if (!user) {
|
||||
throw new common_1.UnauthorizedException(unauthorizedMsg);
|
||||
}
|
||||
const isMatch = await bcrypt.compare(dto.password, user.password);
|
||||
if (!isMatch) {
|
||||
throw new common_1.UnauthorizedException(unauthorizedMsg);
|
||||
}
|
||||
// Build payload according to existing JwtPayload interface
|
||||
const metadata = user.metadata ?? {};
|
||||
const role = typeof metadata.role === 'string' ? metadata.role : 'USER';
|
||||
const permissions = Array.isArray(metadata.permissions) ? metadata.permissions : [];
|
||||
const payload = {
|
||||
sub: user.id,
|
||||
email: user.email,
|
||||
role,
|
||||
permissions,
|
||||
};
|
||||
const accessToken = await this.jwtService.signAsync(payload);
|
||||
return {
|
||||
access_token: accessToken,
|
||||
expires_in: '1d',
|
||||
user: {
|
||||
id: user.id,
|
||||
name: user.name,
|
||||
email: user.email,
|
||||
},
|
||||
};
|
||||
}
|
||||
};
|
||||
exports.LoginHandler = LoginHandler;
|
||||
exports.LoginHandler = LoginHandler = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__metadata("design:paramtypes", [user_repository_interface_1.UserRepository,
|
||||
jwt_1.JwtService])
|
||||
], LoginHandler);
|
||||
//# sourceMappingURL=login.handler.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"login.handler.js","sourceRoot":"","sources":["../../../../../src/modules/identity/application/handlers/login.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAmE;AACnE,+CAAiC;AACjC,qCAAyC;AAGzC,mGAAqF;AAG9E,IAAM,YAAY,GAAlB,MAAM,YAAY;IAEJ;IACA;IAFnB,YACmB,cAA8B,EAC9B,UAAsB;QADtB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,eAAU,GAAV,UAAU,CAAY;IACtC,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,GAAa;QACzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAE9D,qCAAqC;QACrC,MAAM,eAAe,GAAG,sBAAsB,CAAC;QAE/C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,8BAAqB,CAAC,eAAe,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAElE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,8BAAqB,CAAC,eAAe,CAAC,CAAC;QACnD,CAAC;QAED,2DAA2D;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;QAErC,MAAM,IAAI,GAAG,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QAExE,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QAEpF,MAAM,OAAO,GAAG;YACd,GAAG,EAAE,IAAI,CAAC,EAAE;YACZ,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI;YACJ,WAAW;SACZ,CAAC;QAEF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAE7D,OAAO;YACL,YAAY,EAAE,WAAW;YACzB,UAAU,EAAE,IAAI;YAChB,IAAI,EAAE;gBACJ,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAhDY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;qCAGwB,0CAAc;QAClB,gBAAU;GAH9B,YAAY,CAgDxB"}
|
||||
@@ -0,0 +1,103 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
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 __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.TokenHandler = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const bcrypt = __importStar(require("bcrypt"));
|
||||
const jwt_1 = require("@nestjs/jwt");
|
||||
const service_account_repository_interface_1 = require("../../domain/repositories/service-account.repository.interface");
|
||||
let TokenHandler = class TokenHandler {
|
||||
serviceAccountRepository;
|
||||
jwtService;
|
||||
constructor(serviceAccountRepository, jwtService) {
|
||||
this.serviceAccountRepository = serviceAccountRepository;
|
||||
this.jwtService = jwtService;
|
||||
}
|
||||
async execute(body) {
|
||||
const { client_id, client_secret, grant_type } = body;
|
||||
if (grant_type !== 'client_credentials') {
|
||||
throw new common_1.BadRequestException('Invalid grant_type.');
|
||||
}
|
||||
const unauthorizedMsg = 'Invalid client credentials.';
|
||||
if (!client_id || !client_secret) {
|
||||
throw new common_1.UnauthorizedException(unauthorizedMsg);
|
||||
}
|
||||
const serviceAccount = await this.serviceAccountRepository.findByClientId(client_id);
|
||||
if (!serviceAccount) {
|
||||
// generic error
|
||||
throw new common_1.UnauthorizedException(unauthorizedMsg);
|
||||
}
|
||||
// check status
|
||||
if (serviceAccount.status !== 'ACTIVE') {
|
||||
throw new common_1.UnauthorizedException(unauthorizedMsg);
|
||||
}
|
||||
const match = await bcrypt.compare(client_secret, serviceAccount.clientSecretHash);
|
||||
if (!match) {
|
||||
throw new common_1.UnauthorizedException(unauthorizedMsg);
|
||||
}
|
||||
const payload = {
|
||||
sub: serviceAccount.id,
|
||||
client_id: serviceAccount.clientId,
|
||||
// existing JwtPayload expects email; provide empty string to remain compatible
|
||||
email: '',
|
||||
role: serviceAccount.role,
|
||||
permissions: serviceAccount.permissions ?? [],
|
||||
};
|
||||
const accessToken = await this.jwtService.signAsync(payload, {
|
||||
expiresIn: '1h',
|
||||
});
|
||||
return {
|
||||
access_token: accessToken,
|
||||
token_type: 'Bearer',
|
||||
expires_in: 3600,
|
||||
};
|
||||
}
|
||||
};
|
||||
exports.TokenHandler = TokenHandler;
|
||||
exports.TokenHandler = TokenHandler = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__metadata("design:paramtypes", [service_account_repository_interface_1.ServiceAccountRepository,
|
||||
jwt_1.JwtService])
|
||||
], TokenHandler);
|
||||
//# sourceMappingURL=token.handler.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"token.handler.js","sourceRoot":"","sources":["../../../../../src/modules/identity/application/handlers/token.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAwF;AACxF,+CAAiC;AACjC,qCAAyC;AACzC,yHAA0G;AAGnG,IAAM,YAAY,GAAlB,MAAM,YAAY;IAEJ;IACA;IAFnB,YACmB,wBAAkD,EAClD,UAAsB;QADtB,6BAAwB,GAAxB,wBAAwB,CAA0B;QAClD,eAAU,GAAV,UAAU,CAAY;IACtC,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,IAAyE;QACrF,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAEtD,IAAI,UAAU,KAAK,oBAAoB,EAAE,CAAC;YACxC,MAAM,IAAI,4BAAmB,CAAC,qBAAqB,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,eAAe,GAAG,6BAA6B,CAAC;QAEtD,IAAI,CAAC,SAAS,IAAI,CAAC,aAAa,EAAE,CAAC;YACjC,MAAM,IAAI,8BAAqB,CAAC,eAAe,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAErF,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,gBAAgB;YAChB,MAAM,IAAI,8BAAqB,CAAC,eAAe,CAAC,CAAC;QACnD,CAAC;QAED,eAAe;QACf,IAAI,cAAc,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,IAAI,8BAAqB,CAAC,eAAe,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAC;QAEnF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,8BAAqB,CAAC,eAAe,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,OAAO,GAAQ;YACnB,GAAG,EAAE,cAAc,CAAC,EAAE;YACtB,SAAS,EAAE,cAAc,CAAC,QAAQ;YAClC,+EAA+E;YAC/E,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,WAAW,EAAE,cAAc,CAAC,WAAW,IAAI,EAAE;SAC9C,CAAC;QAEF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE;YAC3D,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,OAAO;YACL,YAAY,EAAE,WAAW;YACzB,UAAU,EAAE,QAAQ;YACpB,UAAU,EAAE,IAAI;SACjB,CAAC;IACJ,CAAC;CACF,CAAA;AAxDY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;qCAGkC,+DAAwB;QACtC,gBAAU;GAH9B,YAAY,CAwDxB"}
|
||||
@@ -0,0 +1,84 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
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 __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.UpdateUserHandler = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const bcrypt = __importStar(require("bcrypt"));
|
||||
const user_repository_interface_1 = require("../../domain/repositories/user.repository.interface");
|
||||
let UpdateUserHandler = class UpdateUserHandler {
|
||||
userRepository;
|
||||
constructor(userRepository) {
|
||||
this.userRepository = userRepository;
|
||||
}
|
||||
async execute(id, dto) {
|
||||
const user = await this.userRepository.findById(id);
|
||||
if (!user) {
|
||||
throw new common_1.NotFoundException('User not found.');
|
||||
}
|
||||
if (dto.email &&
|
||||
dto.email !== user.email) {
|
||||
const exists = await this.userRepository.existsByEmail(dto.email);
|
||||
if (exists) {
|
||||
throw new common_1.ConflictException('Email already exists.');
|
||||
}
|
||||
user.changeEmail(dto.email);
|
||||
}
|
||||
if (dto.name) {
|
||||
user.changeName(dto.name);
|
||||
}
|
||||
if (dto.password) {
|
||||
const saltRounds = parseInt(process.env.BCRYPT_SALT_ROUNDS ?? '10', 10);
|
||||
const hashedPassword = await bcrypt.hash(dto.password, saltRounds);
|
||||
user.changePassword(hashedPassword);
|
||||
}
|
||||
await this.userRepository.update(user);
|
||||
return user;
|
||||
}
|
||||
};
|
||||
exports.UpdateUserHandler = UpdateUserHandler;
|
||||
exports.UpdateUserHandler = UpdateUserHandler = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__metadata("design:paramtypes", [user_repository_interface_1.UserRepository])
|
||||
], UpdateUserHandler);
|
||||
//# sourceMappingURL=update-user.handler.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"update-user.handler.js","sourceRoot":"","sources":["../../../../../src/modules/identity/application/handlers/update-user.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAIwB;AAExB,+CAAiC;AAEjC,mGAAqF;AAI9E,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAET;IADnB,YACmB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAC9C,CAAC;IAEJ,KAAK,CAAC,OAAO,CACX,EAAU,EACV,GAAkB;QAElB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEpD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,0BAAiB,CAAC,iBAAiB,CAAC,CAAC;QACjD,CAAC;QAED,IACE,GAAG,CAAC,KAAK;YACT,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EACxB,CAAC;YACD,MAAM,MAAM,GACV,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAErD,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,0BAAiB,CACzB,uBAAuB,CACxB,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACb,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjB,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;YACxE,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACnE,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEvC,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AA7CY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAGwB,0CAAc;GAFtC,iBAAiB,CA6C7B"}
|
||||
@@ -0,0 +1,37 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.ServiceAccount = void 0;
|
||||
class ServiceAccount {
|
||||
id;
|
||||
clientId;
|
||||
clientSecretHash;
|
||||
name;
|
||||
role;
|
||||
permissions;
|
||||
status;
|
||||
metadata;
|
||||
constructor(id, clientId, clientSecretHash, name, role, permissions, status, metadata) {
|
||||
this.id = id;
|
||||
this.clientId = clientId;
|
||||
this.clientSecretHash = clientSecretHash;
|
||||
this.name = name;
|
||||
this.role = role;
|
||||
this.permissions = permissions;
|
||||
this.status = status;
|
||||
this.metadata = metadata;
|
||||
}
|
||||
static create(data) {
|
||||
return new ServiceAccount(crypto.randomUUID(), data.clientId, data.clientSecretHash, data.name, data.role, data.permissions, 'ACTIVE', data.metadata);
|
||||
}
|
||||
static restore(data) {
|
||||
return new ServiceAccount(data.id, data.clientId, data.clientSecretHash, data.name, data.role, data.permissions, data.status, data.metadata);
|
||||
}
|
||||
disable() {
|
||||
this.status = 'DISABLED';
|
||||
}
|
||||
enable() {
|
||||
this.status = 'ACTIVE';
|
||||
}
|
||||
}
|
||||
exports.ServiceAccount = ServiceAccount;
|
||||
//# sourceMappingURL=service-account.entity.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"service-account.entity.js","sourceRoot":"","sources":["../../../../../src/modules/identity/domain/entities/service-account.entity.ts"],"names":[],"mappings":";;;AAAA,MAAa,cAAc;IAEP;IACT;IACA;IACA;IACA;IACA;IACA;IACA;IART,YACkB,EAAU,EACnB,QAAgB,EAChB,gBAAwB,EACxB,IAAY,EACZ,IAAY,EACZ,WAAqB,EACrB,MAAc,EACd,QAA8B;QAPrB,OAAE,GAAF,EAAE,CAAQ;QACnB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,qBAAgB,GAAhB,gBAAgB,CAAQ;QACxB,SAAI,GAAJ,IAAI,CAAQ;QACZ,SAAI,GAAJ,IAAI,CAAQ;QACZ,gBAAW,GAAX,WAAW,CAAU;QACrB,WAAM,GAAN,MAAM,CAAQ;QACd,aAAQ,GAAR,QAAQ,CAAsB;IACpC,CAAC;IAEJ,MAAM,CAAC,MAAM,CAAC,IAOb;QACC,OAAO,IAAI,cAAc,CACvB,MAAM,CAAC,UAAU,EAAE,EACnB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,EAChB,QAAQ,EACR,IAAI,CAAC,QAAQ,CACd,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,IASd;QACC,OAAO,IAAI,cAAc,CACvB,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,CACd,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;IAC3B,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;IACzB,CAAC;CACF;AA7DD,wCA6DC"}
|
||||
@@ -0,0 +1,37 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.User = void 0;
|
||||
class User {
|
||||
id;
|
||||
name;
|
||||
email;
|
||||
password;
|
||||
metadata;
|
||||
constructor(id, name, email, password, metadata) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.email = email;
|
||||
this.password = password;
|
||||
this.metadata = metadata;
|
||||
}
|
||||
static create(data) {
|
||||
return new User(crypto.randomUUID(), data.name, data.email, data.password, data.metadata);
|
||||
}
|
||||
delete() {
|
||||
// Business Rule
|
||||
}
|
||||
changeEmail(email) {
|
||||
this.email = email;
|
||||
}
|
||||
changeName(name) {
|
||||
this.name = name;
|
||||
}
|
||||
changePassword(newPassword) {
|
||||
this.password = newPassword;
|
||||
}
|
||||
static restore(data) {
|
||||
return new User(data.id, data.name, data.email, data.password, data.metadata);
|
||||
}
|
||||
}
|
||||
exports.User = User;
|
||||
//# sourceMappingURL=user.entity.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"user.entity.js","sourceRoot":"","sources":["../../../../../src/modules/identity/domain/entities/user.entity.ts"],"names":[],"mappings":";;;AAAA,MAAa,IAAI;IAEG;IACT;IACA;IACA;IACA;IALT,YACkB,EAAU,EACnB,IAAY,EACZ,KAAa,EACb,QAAgB,EAChB,QAA8B;QAJrB,OAAE,GAAF,EAAE,CAAQ;QACnB,SAAI,GAAJ,IAAI,CAAQ;QACZ,UAAK,GAAL,KAAK,CAAQ;QACb,aAAQ,GAAR,QAAQ,CAAQ;QAChB,aAAQ,GAAR,QAAQ,CAAsB;IACpC,CAAC;IAEJ,MAAM,CAAC,MAAM,CAAC,IAKb;QACC,OAAO,IAAI,IAAI,CACb,MAAM,CAAC,UAAU,EAAE,EACnB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,QAAQ,CACd,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,gBAAgB;IAClB,CAAC;IAED,WAAW,CAAC,KAAa;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,cAAc,CAAC,WAAmB;QAChC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,IAMd;QACC,OAAO,IAAI,IAAI,CACb,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,QAAQ,CACd,CAAC;IACJ,CAAC;CACF;AAvDD,oBAuDC"}
|
||||
@@ -0,0 +1,14 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.UserCreatedEvent = void 0;
|
||||
class UserCreatedEvent {
|
||||
payload;
|
||||
occurredAt;
|
||||
name = 'UserCreated';
|
||||
constructor(payload, occurredAt = new Date()) {
|
||||
this.payload = payload;
|
||||
this.occurredAt = occurredAt;
|
||||
}
|
||||
}
|
||||
exports.UserCreatedEvent = UserCreatedEvent;
|
||||
//# sourceMappingURL=user-created.event.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"user-created.event.js","sourceRoot":"","sources":["../../../../../src/modules/identity/domain/events/user-created.event.ts"],"names":[],"mappings":";;;AAEA,MAAa,gBAAgB;IAEC;IAA8B;IADjD,IAAI,GAAG,aAAa,CAAC;IAC9B,YAA4B,OAAY,EAAkB,aAAmB,IAAI,IAAI,EAAE;QAA3D,YAAO,GAAP,OAAO,CAAK;QAAkB,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;CAC5F;AAHD,4CAGC"}
|
||||
@@ -0,0 +1,14 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.UserDeletedEvent = void 0;
|
||||
class UserDeletedEvent {
|
||||
payload;
|
||||
occurredAt;
|
||||
name = 'UserDeleted';
|
||||
constructor(payload, occurredAt = new Date()) {
|
||||
this.payload = payload;
|
||||
this.occurredAt = occurredAt;
|
||||
}
|
||||
}
|
||||
exports.UserDeletedEvent = UserDeletedEvent;
|
||||
//# sourceMappingURL=user-deleted.event.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"user-deleted.event.js","sourceRoot":"","sources":["../../../../../src/modules/identity/domain/events/user-deleted.event.ts"],"names":[],"mappings":";;;AAEA,MAAa,gBAAgB;IAEC;IAA8B;IADjD,IAAI,GAAG,aAAa,CAAC;IAC9B,YAA4B,OAAY,EAAkB,aAAmB,IAAI,IAAI,EAAE;QAA3D,YAAO,GAAP,OAAO,CAAK;QAAkB,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;CAC5F;AAHD,4CAGC"}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.ServiceAccountRepository = void 0;
|
||||
class ServiceAccountRepository {
|
||||
}
|
||||
exports.ServiceAccountRepository = ServiceAccountRepository;
|
||||
//# sourceMappingURL=service-account.repository.interface.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"service-account.repository.interface.js","sourceRoot":"","sources":["../../../../../src/modules/identity/domain/repositories/service-account.repository.interface.ts"],"names":[],"mappings":";;;AAEA,MAAsB,wBAAwB;CAQ7C;AARD,4DAQC"}
|
||||
@@ -0,0 +1,7 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.UserRepository = void 0;
|
||||
class UserRepository {
|
||||
}
|
||||
exports.UserRepository = UserRepository;
|
||||
//# sourceMappingURL=user.repository.interface.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"user.repository.interface.js","sourceRoot":"","sources":["../../../../../src/modules/identity/domain/repositories/user.repository.interface.ts"],"names":[],"mappings":";;;AAEA,MAAsB,cAAc;CAgBnC;AAhBD,wCAgBC"}
|
||||
+75
@@ -0,0 +1,75 @@
|
||||
"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;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.IdentityModule = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const users_controller_1 = require("./presentation/controllers/users.controller");
|
||||
const prisma_service_1 = require("../../shared/prisma.service");
|
||||
const prisma_user_repository_1 = require("./infrastructure/repositories/prisma-user.repository");
|
||||
const user_repository_interface_1 = require("./domain/repositories/user.repository.interface");
|
||||
const event_dispatcher_1 = require("../../core/events/event-dispatcher");
|
||||
const jwt_auth_guard_1 = require("../../core/auth/guards/jwt-auth.guard");
|
||||
const jwt_1 = require("@nestjs/jwt");
|
||||
const create_user_handler_1 = require("./application/handlers/create-user.handler");
|
||||
const find_user_handler_1 = require("./application/handlers/find-user.handler");
|
||||
const delete_user_handler_1 = require("./application/handlers/delete-user.handler");
|
||||
const find_users_handler_1 = require("./application/handlers/find-users.handler");
|
||||
const update_user_handler_1 = require("./application/handlers/update-user.handler");
|
||||
const permission_guard_1 = require("../authorization/presentation/guards/permission.guard");
|
||||
const core_1 = require("@nestjs/core");
|
||||
const login_handler_1 = require("./application/handlers/login.handler");
|
||||
const auth_controller_1 = require("./presentation/controllers/auth.controller");
|
||||
const token_handler_1 = require("./application/handlers/token.handler");
|
||||
const prisma_service_account_repository_1 = require("./infrastructure/repositories/prisma-service-account.repository");
|
||||
const service_account_repository_interface_1 = require("./domain/repositories/service-account.repository.interface");
|
||||
let IdentityModule = class IdentityModule {
|
||||
};
|
||||
exports.IdentityModule = IdentityModule;
|
||||
exports.IdentityModule = IdentityModule = __decorate([
|
||||
(0, common_1.Module)({
|
||||
imports: [
|
||||
jwt_1.JwtModule.register({
|
||||
secret: process.env.JWT_SECRET,
|
||||
signOptions: {
|
||||
expiresIn: '1d',
|
||||
},
|
||||
}),
|
||||
],
|
||||
controllers: [users_controller_1.UsersController, auth_controller_1.AuthController],
|
||||
providers: [
|
||||
//#region User
|
||||
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,
|
||||
login_handler_1.LoginHandler,
|
||||
token_handler_1.TokenHandler,
|
||||
//#endregion
|
||||
jwt_auth_guard_1.JwtAuthGuard,
|
||||
permission_guard_1.PermissionGuard,
|
||||
core_1.Reflector,
|
||||
prisma_service_1.PrismaService,
|
||||
prisma_user_repository_1.PrismaUserRepository,
|
||||
prisma_service_account_repository_1.PrismaServiceAccountRepository,
|
||||
{
|
||||
provide: user_repository_interface_1.UserRepository,
|
||||
useClass: prisma_user_repository_1.PrismaUserRepository,
|
||||
},
|
||||
{
|
||||
provide: service_account_repository_interface_1.ServiceAccountRepository,
|
||||
useClass: prisma_service_account_repository_1.PrismaServiceAccountRepository,
|
||||
},
|
||||
{
|
||||
provide: 'EVENT_DISPATCHER',
|
||||
useValue: new event_dispatcher_1.EventDispatcher(),
|
||||
},
|
||||
],
|
||||
})
|
||||
], IdentityModule);
|
||||
//# sourceMappingURL=identity.module.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"identity.module.js","sourceRoot":"","sources":["../../../src/modules/identity/identity.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,kFAA8E;AAC9E,gEAA4D;AAC5D,iGAA4F;AAC5F,+FAAiF;AACjF,yEAAqE;AACrE,0EAAqE;AACrE,qCAAwC;AACxC,oFAA+E;AAC/E,gFAA2E;AAC3E,oFAA+E;AAC/E,kFAA6E;AAC7E,oFAA+E;AAC/E,4FAAwF;AACxF,uCAAyC;AACzC,wEAAoE;AACpE,gFAA4E;AAC5E,wEAAoE;AACpE,uHAAiH;AACjH,qHAAsG;AA4C/F,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,wCAAc;yBAAd,cAAc;IAzC1B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,eAAS,CAAC,QAAQ,CAAC;gBACjB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;gBAC9B,WAAW,EAAE;oBACX,SAAS,EAAE,IAAI;iBAChB;aACF,CAAC;SACH;QACD,WAAW,EAAE,CAAC,kCAAe,EAAE,gCAAc,CAAC;QAC9C,SAAS,EAAE;YACT,eAAe;YACf,uCAAiB;YACjB,mCAAe;YACf,qCAAgB;YAChB,uCAAiB;YACjB,uCAAiB;YACjB,4BAAY;YACZ,4BAAY;YACZ,YAAY;YAEZ,6BAAY;YACZ,kCAAe;YACf,gBAAS;YACT,8BAAa;YACb,6CAAoB;YACpB,kEAA8B;YAC9B;gBACE,OAAO,EAAE,0CAAc;gBACvB,QAAQ,EAAE,6CAAoB;aAC/B;YACD;gBACE,OAAO,EAAE,+DAAwB;gBACjC,QAAQ,EAAE,kEAA8B;aACzC;YACD;gBACE,OAAO,EAAE,kBAAkB;gBAC3B,QAAQ,EAAE,IAAI,kCAAe,EAAE;aAChC;SACF;KACF,CAAC;GACW,cAAc,CAAG"}
|
||||
@@ -0,0 +1,29 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.PrismaUserMapper = void 0;
|
||||
const user_entity_1 = require("../../domain/entities/user.entity");
|
||||
class PrismaUserMapper {
|
||||
static toDomain(model) {
|
||||
if (!model) {
|
||||
return null;
|
||||
}
|
||||
return user_entity_1.User.restore({
|
||||
id: model.id,
|
||||
name: model.name,
|
||||
email: model.email,
|
||||
password: model.password,
|
||||
metadata: model.metadata,
|
||||
});
|
||||
}
|
||||
static toPersistence(user) {
|
||||
return {
|
||||
id: user.id,
|
||||
name: user.name,
|
||||
email: user.email,
|
||||
password: user.password,
|
||||
metadata: user.metadata ?? {},
|
||||
};
|
||||
}
|
||||
}
|
||||
exports.PrismaUserMapper = PrismaUserMapper;
|
||||
//# sourceMappingURL=prisma-user.mapper.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"prisma-user.mapper.js","sourceRoot":"","sources":["../../../../../src/modules/identity/infrastructure/mappers/prisma-user.mapper.ts"],"names":[],"mappings":";;;AAAA,mEAAyD;AAEzD,MAAa,gBAAgB;IAC3B,MAAM,CAAC,QAAQ,CAAC,KAAU;QACxB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,kBAAI,CAAC,OAAO,CAAC;YAClB,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,IAAU;QAC7B,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;SAC9B,CAAC;IACJ,CAAC;CACF;AAxBD,4CAwBC"}
|
||||
+109
@@ -0,0 +1,109 @@
|
||||
"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);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.PrismaServiceAccountRepository = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const prisma_service_1 = require("../../../../shared/prisma.service");
|
||||
const service_account_entity_1 = require("../../domain/entities/service-account.entity");
|
||||
let PrismaServiceAccountRepository = class PrismaServiceAccountRepository {
|
||||
prisma;
|
||||
constructor(prisma) {
|
||||
this.prisma = prisma;
|
||||
}
|
||||
async create(serviceAccount) {
|
||||
const created = await this.prisma.serviceAccount.create({
|
||||
data: {
|
||||
id: serviceAccount.id,
|
||||
client_id: serviceAccount.clientId,
|
||||
client_secret_hash: serviceAccount.clientSecretHash,
|
||||
name: serviceAccount.name,
|
||||
role: serviceAccount.role,
|
||||
permissions: serviceAccount.permissions,
|
||||
status: serviceAccount.status,
|
||||
metadata: serviceAccount.metadata ?? {},
|
||||
},
|
||||
});
|
||||
return service_account_entity_1.ServiceAccount.restore({
|
||||
id: created.id,
|
||||
clientId: created.client_id,
|
||||
clientSecretHash: created.client_secret_hash,
|
||||
name: created.name,
|
||||
role: created.role,
|
||||
permissions: created.permissions,
|
||||
status: created.status,
|
||||
metadata: (created.metadata ?? {}),
|
||||
});
|
||||
}
|
||||
async update(serviceAccount) {
|
||||
const updated = await this.prisma.serviceAccount.update({
|
||||
where: { id: serviceAccount.id },
|
||||
data: {
|
||||
client_id: serviceAccount.clientId,
|
||||
client_secret_hash: serviceAccount.clientSecretHash,
|
||||
name: serviceAccount.name,
|
||||
role: serviceAccount.role,
|
||||
permissions: serviceAccount.permissions,
|
||||
status: serviceAccount.status,
|
||||
metadata: serviceAccount.metadata ?? {},
|
||||
},
|
||||
});
|
||||
return service_account_entity_1.ServiceAccount.restore({
|
||||
id: updated.id,
|
||||
clientId: updated.client_id,
|
||||
clientSecretHash: updated.client_secret_hash,
|
||||
name: updated.name,
|
||||
role: updated.role,
|
||||
permissions: updated.permissions,
|
||||
status: updated.status,
|
||||
metadata: (updated.metadata ?? {}),
|
||||
});
|
||||
}
|
||||
async findById(id) {
|
||||
const model = await this.prisma.serviceAccount.findUnique({
|
||||
where: { id },
|
||||
});
|
||||
if (!model)
|
||||
return null;
|
||||
return service_account_entity_1.ServiceAccount.restore({
|
||||
id: model.id,
|
||||
clientId: model.client_id,
|
||||
clientSecretHash: model.client_secret_hash,
|
||||
name: model.name,
|
||||
role: model.role,
|
||||
permissions: model.permissions,
|
||||
status: model.status,
|
||||
metadata: (model.metadata ?? {}),
|
||||
});
|
||||
}
|
||||
async findByClientId(clientId) {
|
||||
const model = await this.prisma.serviceAccount.findUnique({
|
||||
where: { client_id: clientId },
|
||||
});
|
||||
if (!model)
|
||||
return null;
|
||||
return service_account_entity_1.ServiceAccount.restore({
|
||||
id: model.id,
|
||||
clientId: model.client_id,
|
||||
clientSecretHash: model.client_secret_hash,
|
||||
name: model.name,
|
||||
role: model.role,
|
||||
permissions: model.permissions,
|
||||
status: model.status,
|
||||
metadata: (model.metadata ?? {}),
|
||||
});
|
||||
}
|
||||
};
|
||||
exports.PrismaServiceAccountRepository = PrismaServiceAccountRepository;
|
||||
exports.PrismaServiceAccountRepository = PrismaServiceAccountRepository = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__metadata("design:paramtypes", [prisma_service_1.PrismaService])
|
||||
], PrismaServiceAccountRepository);
|
||||
//# sourceMappingURL=prisma-service-account.repository.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"prisma-service-account.repository.js","sourceRoot":"","sources":["../../../../../src/modules/identity/infrastructure/repositories/prisma-service-account.repository.ts"],"names":[],"mappings":"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"}
|
||||
@@ -0,0 +1,76 @@
|
||||
"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);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.PrismaUserRepository = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const prisma_service_1 = require("../../../../shared/prisma.service");
|
||||
const prisma_user_mapper_1 = require("../mappers/prisma-user.mapper");
|
||||
let PrismaUserRepository = class PrismaUserRepository {
|
||||
prisma;
|
||||
constructor(prisma) {
|
||||
this.prisma = prisma;
|
||||
}
|
||||
async findById(id) {
|
||||
const user = await this.prisma.user.findUnique({
|
||||
where: { id },
|
||||
});
|
||||
return prisma_user_mapper_1.PrismaUserMapper.toDomain(user);
|
||||
}
|
||||
async findByEmail(email) {
|
||||
const user = await this.prisma.user.findUnique({
|
||||
where: { email },
|
||||
});
|
||||
return prisma_user_mapper_1.PrismaUserMapper.toDomain(user);
|
||||
}
|
||||
async findAll() {
|
||||
const users = await this.prisma.user.findMany({
|
||||
where: { deleted_at: null },
|
||||
orderBy: { created_at: 'desc' },
|
||||
});
|
||||
return users.map(u => prisma_user_mapper_1.PrismaUserMapper.toDomain(u));
|
||||
}
|
||||
async create(user) {
|
||||
const created = await this.prisma.user.create({
|
||||
data: prisma_user_mapper_1.PrismaUserMapper.toPersistence(user),
|
||||
});
|
||||
return prisma_user_mapper_1.PrismaUserMapper.toDomain(created);
|
||||
}
|
||||
async update(user) {
|
||||
const updated = await this.prisma.user.update({
|
||||
where: {
|
||||
id: user.id,
|
||||
},
|
||||
data: prisma_user_mapper_1.PrismaUserMapper.toPersistence(user),
|
||||
});
|
||||
return prisma_user_mapper_1.PrismaUserMapper.toDomain(updated);
|
||||
}
|
||||
async delete(id) {
|
||||
const user = await this.prisma.user.update({
|
||||
where: { id },
|
||||
data: { deleted_at: new Date() },
|
||||
});
|
||||
return prisma_user_mapper_1.PrismaUserMapper.toDomain(user);
|
||||
}
|
||||
async existsByEmail(email, excludeId) {
|
||||
const where = { email };
|
||||
if (excludeId) {
|
||||
where.id = { not: excludeId };
|
||||
}
|
||||
const user = await this.prisma.user.findFirst({ where });
|
||||
return !!user;
|
||||
}
|
||||
};
|
||||
exports.PrismaUserRepository = PrismaUserRepository;
|
||||
exports.PrismaUserRepository = PrismaUserRepository = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__metadata("design:paramtypes", [prisma_service_1.PrismaService])
|
||||
], PrismaUserRepository);
|
||||
//# sourceMappingURL=prisma-user.repository.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"prisma-user.repository.js","sourceRoot":"","sources":["../../../../../src/modules/identity/infrastructure/repositories/prisma-user.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,sEAAkE;AAGlE,sEAAiE;AAG1D,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IACF;IAA7B,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAEtD,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC7C,KAAK,EAAE,EAAE,EAAE,EAAE;SACd,CAAC,CAAC;QAEH,OAAO,qCAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa;QAC7B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAC7C,KAAK,EAAE,EAAE,KAAK,EAAE;SACjB,CAAC,CAAC;QAEH,OAAO,qCAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC5C,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;YAC3B,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE;SAChC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,qCAAgB,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAU;QACrB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YAC5C,IAAI,EAAE,qCAAgB,CAAC,aAAa,CAAC,IAAI,CAAC;SAC3C,CAAC,CAAC;QAEH,OAAO,qCAAgB,CAAC,QAAQ,CAAC,OAAO,CAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAU;QACrB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YAC5C,KAAK,EAAE;gBACL,EAAE,EAAE,IAAI,CAAC,EAAE;aACZ;YACD,IAAI,EAAE,qCAAgB,CAAC,aAAa,CAAC,IAAI,CAAC;SAC3C,CAAC,CAAC;QAEH,OAAO,qCAAgB,CAAC,QAAQ,CAAC,OAAO,CAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YACzC,KAAK,EAAE,EAAE,EAAE,EAAE;YACb,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,EAAE;SACjC,CAAC,CAAC;QACH,OAAO,qCAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAa,EAAE,SAAyB;QAC1D,MAAM,KAAK,GAAQ,EAAE,KAAK,EAAE,CAAC;QAC7B,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;QAChC,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,CAAC,IAAI,CAAC;IAChB,CAAC;CACF,CAAA;AAhEY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;qCAE0B,8BAAa;GADvC,oBAAoB,CAgEhC"}
|
||||
@@ -0,0 +1,68 @@
|
||||
"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.AuthController = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const swagger_1 = require("@nestjs/swagger");
|
||||
const login_dto_1 = require("../dto/login.dto");
|
||||
const login_handler_1 = require("../../application/handlers/login.handler");
|
||||
const token_handler_1 = require("../../application/handlers/token.handler");
|
||||
let AuthController = class AuthController {
|
||||
loginHandler;
|
||||
tokenHandler;
|
||||
constructor(loginHandler, tokenHandler) {
|
||||
this.loginHandler = loginHandler;
|
||||
this.tokenHandler = tokenHandler;
|
||||
}
|
||||
async login(dto) {
|
||||
const data = await this.loginHandler.execute(dto);
|
||||
return {
|
||||
success: true,
|
||||
data,
|
||||
meta: {},
|
||||
};
|
||||
}
|
||||
async token(body) {
|
||||
const data = await this.tokenHandler.execute(body);
|
||||
return {
|
||||
success: true,
|
||||
data,
|
||||
meta: {},
|
||||
};
|
||||
}
|
||||
};
|
||||
exports.AuthController = AuthController;
|
||||
__decorate([
|
||||
(0, common_1.Post)('login'),
|
||||
(0, swagger_1.ApiOperation)({ summary: 'Login and obtain access token' }),
|
||||
__param(0, (0, common_1.Body)()),
|
||||
__metadata("design:type", Function),
|
||||
__metadata("design:paramtypes", [login_dto_1.LoginDto]),
|
||||
__metadata("design:returntype", Promise)
|
||||
], AuthController.prototype, "login", null);
|
||||
__decorate([
|
||||
(0, common_1.Post)('token'),
|
||||
(0, swagger_1.ApiOperation)({ summary: 'Obtain access token using client credentials' }),
|
||||
__param(0, (0, common_1.Body)()),
|
||||
__metadata("design:type", Function),
|
||||
__metadata("design:paramtypes", [Object]),
|
||||
__metadata("design:returntype", Promise)
|
||||
], AuthController.prototype, "token", null);
|
||||
exports.AuthController = AuthController = __decorate([
|
||||
(0, swagger_1.ApiTags)('Auth'),
|
||||
(0, common_1.Controller)('api/v1/auth'),
|
||||
__metadata("design:paramtypes", [login_handler_1.LoginHandler,
|
||||
token_handler_1.TokenHandler])
|
||||
], AuthController);
|
||||
//# sourceMappingURL=auth.controller.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../../../../src/modules/identity/presentation/controllers/auth.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwD;AACxD,6CAAwD;AAExD,gDAA4C;AAC5C,4EAAwE;AACxE,4EAAwE;AAIjE,IAAM,cAAc,GAApB,MAAM,cAAc;IAEN;IACA;IAFnB,YACmB,YAA0B,EAC1B,YAA0B;QAD1B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,iBAAY,GAAZ,YAAY,CAAc;IAC1C,CAAC;IAIE,AAAN,KAAK,CAAC,KAAK,CAAS,GAAa;QAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAElD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI;YACJ,IAAI,EAAE,EAAE;SACT,CAAC;IACJ,CAAC;IAIK,AAAN,KAAK,CAAC,KAAK,CAAS,IAAS;QAC3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEnD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI;YACJ,IAAI,EAAE,EAAE;SACT,CAAC;IACJ,CAAC;CACF,CAAA;AA7BY,wCAAc;AAQnB;IAFL,IAAA,aAAI,EAAC,OAAO,CAAC;IACb,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC;IAC9C,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,oBAAQ;;2CAQhC;AAIK;IAFL,IAAA,aAAI,EAAC,OAAO,CAAC;IACb,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC;IAC7D,WAAA,IAAA,aAAI,GAAE,CAAA;;;;2CAQlB;yBA5BU,cAAc;IAF1B,IAAA,iBAAO,EAAC,MAAM,CAAC;IACf,IAAA,mBAAU,EAAC,aAAa,CAAC;qCAGS,4BAAY;QACZ,4BAAY;GAHlC,cAAc,CA6B1B"}
|
||||
@@ -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
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"users.controller.js","sourceRoot":"","sources":["../../../../../src/modules/identity/presentation/controllers/users.controller.ts"],"names":[],"mappings":"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"}
|
||||
@@ -0,0 +1,43 @@
|
||||
"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);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.CreateUserDto = void 0;
|
||||
const class_validator_1 = require("class-validator");
|
||||
const swagger_1 = require("@nestjs/swagger");
|
||||
class CreateUserDto {
|
||||
name;
|
||||
email;
|
||||
password;
|
||||
metadata;
|
||||
}
|
||||
exports.CreateUserDto = CreateUserDto;
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({ example: 'John Doe' }),
|
||||
(0, class_validator_1.IsString)(),
|
||||
(0, class_validator_1.IsNotEmpty)(),
|
||||
__metadata("design:type", String)
|
||||
], CreateUserDto.prototype, "name", void 0);
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({ example: 'user@example.com' }),
|
||||
(0, class_validator_1.IsEmail)(),
|
||||
__metadata("design:type", String)
|
||||
], CreateUserDto.prototype, "email", void 0);
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({ example: 'strongpassword' }),
|
||||
(0, class_validator_1.IsString)(),
|
||||
(0, class_validator_1.Length)(8, 128),
|
||||
__metadata("design:type", String)
|
||||
], CreateUserDto.prototype, "password", void 0);
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({ required: false }),
|
||||
__metadata("design:type", Object)
|
||||
], CreateUserDto.prototype, "metadata", void 0);
|
||||
//# sourceMappingURL=create-user.dto.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"create-user.dto.js","sourceRoot":"","sources":["../../../../../src/modules/identity/presentation/dto/create-user.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAwE;AACxE,6CAA8C;AAE9C,MAAa,aAAa;IAIxB,IAAI,CAAU;IAId,KAAK,CAAU;IAKf,QAAQ,CAAU;IAGlB,QAAQ,CAAuB;CAChC;AAjBD,sCAiBC;AAbC;IAHC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IACpC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;2CACC;AAId;IAFC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC5C,IAAA,yBAAO,GAAE;;4CACK;AAKf;IAHC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC1C,IAAA,0BAAQ,GAAE;IACV,IAAA,wBAAM,EAAC,CAAC,EAAE,GAAG,CAAC;;+CACG;AAGlB;IADC,IAAA,qBAAW,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;+CACF"}
|
||||
@@ -0,0 +1,31 @@
|
||||
"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);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.LoginDto = void 0;
|
||||
const class_validator_1 = require("class-validator");
|
||||
const swagger_1 = require("@nestjs/swagger");
|
||||
class LoginDto {
|
||||
email;
|
||||
password;
|
||||
}
|
||||
exports.LoginDto = LoginDto;
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({ example: 'user@example.com' }),
|
||||
(0, class_validator_1.IsEmail)(),
|
||||
__metadata("design:type", String)
|
||||
], LoginDto.prototype, "email", void 0);
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({ example: 'strongpassword' }),
|
||||
(0, class_validator_1.IsString)(),
|
||||
(0, class_validator_1.Length)(8, 128),
|
||||
__metadata("design:type", String)
|
||||
], LoginDto.prototype, "password", void 0);
|
||||
//# sourceMappingURL=login.dto.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"login.dto.js","sourceRoot":"","sources":["../../../../../src/modules/identity/presentation/dto/login.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA4D;AAC5D,6CAA8C;AAE9C,MAAa,QAAQ;IAGnB,KAAK,CAAU;IAKf,QAAQ,CAAU;CACnB;AATD,4BASC;AANC;IAFC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC5C,IAAA,yBAAO,GAAE;;uCACK;AAKf;IAHC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC1C,IAAA,0BAAQ,GAAE;IACV,IAAA,wBAAM,EAAC,CAAC,EAAE,GAAG,CAAC;;0CACG"}
|
||||
@@ -0,0 +1,47 @@
|
||||
"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);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.UpdateUserDto = void 0;
|
||||
const mapped_types_1 = require("@nestjs/mapped-types");
|
||||
const create_user_dto_1 = require("./create-user.dto");
|
||||
const swagger_1 = require("@nestjs/swagger");
|
||||
const class_validator_1 = require("class-validator");
|
||||
class UpdateUserDto extends (0, mapped_types_1.PartialType)(create_user_dto_1.CreateUserDto) {
|
||||
name;
|
||||
email;
|
||||
password;
|
||||
metadata;
|
||||
}
|
||||
exports.UpdateUserDto = UpdateUserDto;
|
||||
__decorate([
|
||||
(0, swagger_1.ApiPropertyOptional)(),
|
||||
(0, class_validator_1.IsOptional)(),
|
||||
(0, class_validator_1.IsString)(),
|
||||
__metadata("design:type", String)
|
||||
], UpdateUserDto.prototype, "name", void 0);
|
||||
__decorate([
|
||||
(0, swagger_1.ApiPropertyOptional)(),
|
||||
(0, class_validator_1.IsOptional)(),
|
||||
(0, class_validator_1.IsEmail)(),
|
||||
__metadata("design:type", String)
|
||||
], UpdateUserDto.prototype, "email", void 0);
|
||||
__decorate([
|
||||
(0, swagger_1.ApiPropertyOptional)(),
|
||||
(0, class_validator_1.IsOptional)(),
|
||||
(0, class_validator_1.Length)(8, 128),
|
||||
__metadata("design:type", String)
|
||||
], UpdateUserDto.prototype, "password", void 0);
|
||||
__decorate([
|
||||
(0, swagger_1.ApiPropertyOptional)(),
|
||||
(0, class_validator_1.IsOptional)(),
|
||||
__metadata("design:type", Object)
|
||||
], UpdateUserDto.prototype, "metadata", void 0);
|
||||
//# sourceMappingURL=update-user.dto.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"update-user.dto.js","sourceRoot":"","sources":["../../../../../src/modules/identity/presentation/dto/update-user.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAAmD;AACnD,uDAAkD;AAClD,6CAAsD;AACtD,qDAAwE;AAExE,MAAa,aAAc,SAAQ,IAAA,0BAAW,EAAC,+BAAa,CAAC;IAI3D,IAAI,CAAU;IAKd,KAAK,CAAU;IAKf,QAAQ,CAAU;IAIlB,QAAQ,CAAuB;CAChC;AAnBD,sCAmBC;AAfC;IAHC,IAAA,6BAAmB,GAAE;IACrB,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;2CACG;AAKd;IAHC,IAAA,6BAAmB,GAAE;IACrB,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;;4CACK;AAKf;IAHC,IAAA,6BAAmB,GAAE;IACrB,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,EAAC,CAAC,EAAE,GAAG,CAAC;;+CACG;AAIlB;IAFC,IAAA,6BAAmB,GAAE;IACrB,IAAA,4BAAU,GAAE;;+CACkB"}
|
||||
Reference in New Issue
Block a user