backend feladat
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
import { UserRepository } from '../../Infrastructure/userRepository.js';
|
||||
import { GetAllUsersQuery } from '../../Application/users/query/getAllUsersQuery.js';
|
||||
import { GetAllUsersQueryHandler } from '../../Application/users/query/getAllUsersQueryHandler.js';
|
||||
import { GetUserByIdQuery } from '../../Application/users/query/getUserByIdQuery.js';
|
||||
import { GetUserByIdQueryHandler } from '../../Application/users/query/getUserByIdQueryHandler.js';
|
||||
import { CreateUserCommand } from '../../Application/users/command/createUserCommand.js';
|
||||
import { CreateUserCommandHandler } from '../../Application/users/command/createUserCommandHandler.js';
|
||||
import { UpdateUserCommand } from '../../Application/users/command/updateUserCommand.js';
|
||||
import { UpdateUserCommandHandler } from '../../Application/users/command/updateUserCommandHandler.js';
|
||||
import { DeleteUserCommand } from '../../Application/users/command/deleteUserCommand.js';
|
||||
import { DeleteUserCommandHandler } from '../../Application/users/command/deleteUserCommandHandler.js';
|
||||
|
||||
const userRepository = new UserRepository();
|
||||
const getAllUsersQueryHandler = new GetAllUsersQueryHandler(userRepository);
|
||||
const getUserByIdQueryHandler = new GetUserByIdQueryHandler(userRepository);
|
||||
const createUserCommandHandler = new CreateUserCommandHandler(userRepository);
|
||||
const updateUserCommandHandler = new UpdateUserCommandHandler(userRepository);
|
||||
const deleteUserCommandHandler = new DeleteUserCommandHandler(userRepository);
|
||||
|
||||
export class UserController {
|
||||
async getAll(req, res) {
|
||||
try {
|
||||
const query = new GetAllUsersQuery();
|
||||
const users = await getAllUsersQueryHandler.handle(query);
|
||||
res.json(users);
|
||||
} catch (error) {
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
}
|
||||
|
||||
async getById(req, res) {
|
||||
try {
|
||||
const query = new GetUserByIdQuery(req.params.id);
|
||||
const user = await getUserByIdQueryHandler.handle(query);
|
||||
res.json(user);
|
||||
} catch (error) {
|
||||
res.status(404).json({ error: error.message });
|
||||
}
|
||||
}
|
||||
|
||||
async create(req, res) {
|
||||
try {
|
||||
const command = new CreateUserCommand(
|
||||
req.body.name,
|
||||
req.body.email,
|
||||
req.body.age
|
||||
);
|
||||
const user = await createUserCommandHandler.handle(command);
|
||||
res.status(201).json(user);
|
||||
} catch (error) {
|
||||
res.status(400).json({ error: error.message });
|
||||
}
|
||||
}
|
||||
|
||||
async update(req, res) {
|
||||
try {
|
||||
const command = new UpdateUserCommand(
|
||||
req.params.id,
|
||||
req.body.name,
|
||||
req.body.email,
|
||||
req.body.age
|
||||
);
|
||||
const user = await updateUserCommandHandler.handle(command);
|
||||
res.json(user);
|
||||
} catch (error) {
|
||||
res.status(404).json({ error: error.message });
|
||||
}
|
||||
}
|
||||
|
||||
async delete(req, res) {
|
||||
try {
|
||||
const command = new DeleteUserCommand(req.params.id);
|
||||
await deleteUserCommandHandler.handle(command);
|
||||
res.status(204).send();
|
||||
} catch (error) {
|
||||
res.status(404).json({ error: error.message });
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user