masodik_gyak

This commit is contained in:
magdo
2026-02-18 21:02:39 +01:00
parent af57733506
commit 77f7eb2664
22 changed files with 905 additions and 0 deletions
@@ -0,0 +1,122 @@
const CreateUserCommand = require('../../application/user/command/CreateUserCommand');
const UpdateUserCommand = require('../../application/user/command/UpdateUserCommand');
const DeleteUserCommand = require('../../application/user/command/DeleteUserCommand');
const GetUserQuery = require('../../application/user/query/GetUserQuery');
const GetAllUsersQuery = require('../../application/user/query/GetAllUsersQuery');
const CreateUserHandler = require('../../application/user/command/CreateUserHandler');
const UpdateUserHandler = require('../../application/user/command/UpdateUserHandler');
const DeleteUserHandler = require('../../application/user/command/DeleteUserHandler');
const GetUserHandler = require('../../application/user/query/GetUserHandler');
const GetAllUsersHandler = require('../../application/user/query/GetAllUsersHandler');
class UserController {
constructor() {
this.createUserHandler = new CreateUserHandler();
this.updateUserHandler = new UpdateUserHandler();
this.deleteUserHandler = new DeleteUserHandler();
this.getUserHandler = new GetUserHandler();
this.getAllUsersHandler = new GetAllUsersHandler();
}
// GET /api/users - Összes user lekérése
async getAllUsers(req, res) {
try {
const query = new GetAllUsersQuery();
const users = await this.getAllUsersHandler.handle(query);
res.status(200).json({
success: true,
data: users
});
} catch (error) {
res.status(500).json({
success: false,
message: error.message
});
}
}
// GET /api/users/:id - Egy user lekérése ID alapján
async getUserById(req, res) {
try {
const query = new GetUserQuery(parseInt(req.params.id));
const user = await this.getUserHandler.handle(query);
res.status(200).json({
success: true,
data: user
});
} catch (error) {
res.status(404).json({
success: false,
message: error.message
});
}
}
// POST /api/users - Új user létrehozása
async createUser(req, res) {
try {
const { email, name, password, role } = req.body;
const command = new CreateUserCommand(email, name, password, role);
const user = await this.createUserHandler.handle(command);
res.status(201).json({
success: true,
message: 'User sikeresen létrehozva!',
data: user
});
} catch (error) {
res.status(400).json({
success: false,
message: error.message
});
}
}
// PUT /api/users/:id - User frissítése
async updateUser(req, res) {
try {
const { email, name, role } = req.body;
const command = new UpdateUserCommand(
parseInt(req.params.id),
email,
name,
role
);
const user = await this.updateUserHandler.handle(command);
res.status(200).json({
success: true,
message: 'User sikeresen frissítve!',
data: user
});
} catch (error) {
res.status(400).json({
success: false,
message: error.message
});
}
}
// DELETE /api/users/:id - User törlése
async deleteUser(req, res) {
try {
const command = new DeleteUserCommand(parseInt(req.params.id));
const result = await this.deleteUserHandler.handle(command);
res.status(200).json({
success: true,
message: result.message
});
} catch (error) {
res.status(404).json({
success: false,
message: error.message
});
}
}
}
module.exports = UserController;