Files
SerpentRace/SerpentRace_Backend/dist/Application/User/queries/GetUserByIdQueryHandler.js
T

33 lines
1.3 KiB
JavaScript

"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