https://project.mdnd-it.cc/work_packages/94
This commit is contained in:
2025-08-23 04:25:28 +02:00
parent 725516ad6c
commit 19cfa031d0
25823 changed files with 1095587 additions and 2801760 deletions
@@ -0,0 +1,4 @@
export interface GetUserByIdQuery {
id: string;
}
//# sourceMappingURL=GetUserByIdQuery.d.ts.map
@@ -0,0 +1 @@
{"version":3,"file":"GetUserByIdQuery.d.ts","sourceRoot":"","sources":["../../../../src/Application/User/queries/GetUserByIdQuery.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;CACZ"}
@@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=GetUserByIdQuery.js.map
@@ -0,0 +1 @@
{"version":3,"file":"GetUserByIdQuery.js","sourceRoot":"","sources":["../../../../src/Application/User/queries/GetUserByIdQuery.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
import { IUserRepository } from '../../../Domain/IRepository/IUserRepository';
import { GetUserByIdQuery } from './GetUserByIdQuery';
import { ShortUserDto } from '../../DTOs/UserDto';
export declare class GetUserByIdQueryHandler {
private readonly userRepo;
constructor(userRepo: IUserRepository);
execute(query: GetUserByIdQuery): Promise<ShortUserDto | null>;
}
//# sourceMappingURL=GetUserByIdQueryHandler.d.ts.map
@@ -0,0 +1 @@
{"version":3,"file":"GetUserByIdQueryHandler.d.ts","sourceRoot":"","sources":["../../../../src/Application/User/queries/GetUserByIdQueryHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,qBAAa,uBAAuB;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,eAAe;IAEhD,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;CAsBrE"}
@@ -0,0 +1,33 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GetUserByIdQueryHandler = void 0;
const UserMapper_1 = require("../../DTOs/Mappers/UserMapper");
const Logger_1 = require("../../Services/Logger");
class GetUserByIdQueryHandler {
constructor(userRepo) {
this.userRepo = userRepo;
}
async execute(query) {
try {
const user = await this.userRepo.findById(query.id);
if (!user)
return null;
return UserMapper_1.UserMapper.toShortDto(user);
}
catch (error) {
(0, Logger_1.logError)('GetUserByIdQueryHandler error', error instanceof Error ? error : new Error(String(error)));
// Handle invalid ID format
if (error instanceof Error && error.message.includes('invalid') && error.message.includes('uuid')) {
return null; // Treat invalid UUID as not found
}
// Handle database errors
if (error instanceof Error && error.message.includes('database')) {
throw new Error('Database connection error');
}
// Generic error for other cases
throw new Error('Failed to retrieve user');
}
}
}
exports.GetUserByIdQueryHandler = GetUserByIdQueryHandler;
//# sourceMappingURL=GetUserByIdQueryHandler.js.map
@@ -0,0 +1 @@
{"version":3,"file":"GetUserByIdQueryHandler.js","sourceRoot":"","sources":["../../../../src/Application/User/queries/GetUserByIdQueryHandler.ts"],"names":[],"mappings":";;;AAGA,8DAA2D;AAC3D,kDAAiD;AAEjD,MAAa,uBAAuB;IAClC,YAA6B,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAAG,CAAC;IAE1D,KAAK,CAAC,OAAO,CAAC,KAAuB;QACnC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACpD,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YACvB,OAAO,uBAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,iBAAQ,EAAC,+BAA+B,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAErG,2BAA2B;YAC3B,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClG,OAAO,IAAI,CAAC,CAAC,kCAAkC;YACjD,CAAC;YAED,yBAAyB;YACzB,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACjE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC/C,CAAC;YAED,gCAAgC;YAChC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;CACF;AAzBD,0DAyBC"}
@@ -0,0 +1,6 @@
export interface GetUsersByPageQuery {
from: number;
to: number;
includeDeleted?: boolean;
}
//# sourceMappingURL=GetUsersByPageQuery.d.ts.map
@@ -0,0 +1 @@
{"version":3,"file":"GetUsersByPageQuery.d.ts","sourceRoot":"","sources":["../../../../src/Application/User/queries/GetUsersByPageQuery.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B"}
@@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=GetUsersByPageQuery.js.map
@@ -0,0 +1 @@
{"version":3,"file":"GetUsersByPageQuery.js","sourceRoot":"","sources":["../../../../src/Application/User/queries/GetUsersByPageQuery.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
import { IUserRepository } from '../../../Domain/IRepository/IUserRepository';
import { GetUsersByPageQuery } from './GetUsersByPageQuery';
import { ShortUserDto } from '../../DTOs/UserDto';
export declare class GetUsersByPageQueryHandler {
private readonly userRepo;
constructor(userRepo: IUserRepository);
execute(query: GetUsersByPageQuery): Promise<{
users: ShortUserDto[];
totalCount: number;
}>;
}
//# sourceMappingURL=GetUsersByPageQueryHandler.d.ts.map
@@ -0,0 +1 @@
{"version":3,"file":"GetUsersByPageQueryHandler.d.ts","sourceRoot":"","sources":["../../../../src/Application/User/queries/GetUsersByPageQueryHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,qBAAa,0BAA0B;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,eAAe;IAEhD,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,YAAY,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CAkDlG"}
@@ -0,0 +1,55 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GetUsersByPageQueryHandler = void 0;
const UserMapper_1 = require("../../DTOs/Mappers/UserMapper");
const Logger_1 = require("../../Services/Logger");
class GetUsersByPageQueryHandler {
constructor(userRepo) {
this.userRepo = userRepo;
}
async execute(query) {
try {
// Validate pagination parameters
if (query.from < 0 || query.to < query.from) {
throw new Error('Invalid pagination parameters');
}
const limit = query.to - query.from + 1;
if (limit > 100) {
throw new Error('Page size too large. Maximum 100 records per request');
}
(0, Logger_1.logRequest)('Get users by page query started', undefined, undefined, {
from: query.from,
to: query.to,
includeDeleted: query.includeDeleted || false
});
const result = query.includeDeleted
? await this.userRepo.findByPageIncludingDeleted(query.from, query.to)
: await this.userRepo.findByPage(query.from, query.to);
(0, Logger_1.logRequest)('Get users by page query completed', undefined, undefined, {
from: query.from,
to: query.to,
returned: result.users.length,
totalCount: result.totalCount,
includeDeleted: query.includeDeleted || false
});
return {
users: UserMapper_1.UserMapper.toShortDtoList(result.users),
totalCount: result.totalCount
};
}
catch (error) {
(0, Logger_1.logError)('GetUsersByPageQueryHandler error', error instanceof Error ? error : new Error(String(error)));
// Handle database errors
if (error instanceof Error && error.message.includes('database')) {
throw new Error('Database connection error');
}
// Re-throw validation errors as-is
if (error instanceof Error && (error.message.includes('Invalid pagination') || error.message.includes('Page size'))) {
throw error;
}
throw new Error('Failed to retrieve users');
}
}
}
exports.GetUsersByPageQueryHandler = GetUsersByPageQueryHandler;
//# sourceMappingURL=GetUsersByPageQueryHandler.js.map
@@ -0,0 +1 @@
{"version":3,"file":"GetUsersByPageQueryHandler.js","sourceRoot":"","sources":["../../../../src/Application/User/queries/GetUsersByPageQueryHandler.ts"],"names":[],"mappings":";;;AAGA,8DAA2D;AAC3D,kDAA6D;AAE7D,MAAa,0BAA0B;IACrC,YAA6B,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAAG,CAAC;IAE1D,KAAK,CAAC,OAAO,CAAC,KAA0B;QACtC,IAAI,CAAC;YACH,iCAAiC;YACjC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC5C,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC;YAED,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;YACxC,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;YAC1E,CAAC;YAED,IAAA,mBAAU,EAAC,iCAAiC,EAAE,SAAS,EAAE,SAAS,EAAE;gBAClE,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,KAAK;aAC9C,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc;gBACjC,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;gBACtE,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAEzD,IAAA,mBAAU,EAAC,mCAAmC,EAAE,SAAS,EAAE,SAAS,EAAE;gBACpE,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;gBAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,KAAK;aAC9C,CAAC,CAAC;YAEH,OAAO;gBACL,KAAK,EAAE,uBAAU,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC9C,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,iBAAQ,EAAC,kCAAkC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAExG,yBAAyB;YACzB,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACjE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC/C,CAAC;YAED,mCAAmC;YACnC,IAAI,KAAK,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;gBACpH,MAAM,KAAK,CAAC;YACd,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;CACF;AArDD,gEAqDC"}