negyedik gyakorlat + megoldasok
This commit is contained in:
@@ -0,0 +1,114 @@
|
||||
import { BlogRepository } from '../../infrastructure/repositories/BlogRepository.js';
|
||||
|
||||
export class BlogController {
|
||||
constructor() {
|
||||
this.blogRepository = new BlogRepository();
|
||||
}
|
||||
|
||||
async getAll(req, res) {
|
||||
try {
|
||||
const blogs = await this.blogRepository.findAll();
|
||||
res.json({
|
||||
success: true,
|
||||
data: blogs
|
||||
});
|
||||
} catch (error) {
|
||||
res.status(500).json({
|
||||
success: false,
|
||||
error: error.message
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
async getById(req, res) {
|
||||
try {
|
||||
const blog = await this.blogRepository.findById(req.params.id);
|
||||
if (!blog) {
|
||||
return res.status(404).json({
|
||||
success: false,
|
||||
error: 'Blog not found'
|
||||
});
|
||||
}
|
||||
res.json({
|
||||
success: true,
|
||||
data: blog
|
||||
});
|
||||
} catch (error) {
|
||||
res.status(500).json({
|
||||
success: false,
|
||||
error: error.message
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
async create(req, res) {
|
||||
try {
|
||||
const { title, content, published } = req.body;
|
||||
|
||||
if (!title || !content) {
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
error: 'Title and content are required'
|
||||
});
|
||||
}
|
||||
|
||||
const blog = await this.blogRepository.create({
|
||||
title,
|
||||
content,
|
||||
published: published || false,
|
||||
authorId: req.user.id
|
||||
});
|
||||
|
||||
res.status(201).json({
|
||||
success: true,
|
||||
data: blog,
|
||||
message: 'Blog created successfully'
|
||||
});
|
||||
} catch (error) {
|
||||
res.status(500).json({
|
||||
success: false,
|
||||
error: error.message
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
async update(req, res) {
|
||||
try {
|
||||
const { title, content, published } = req.body;
|
||||
|
||||
const updateData = {};
|
||||
if (title) updateData.title = title;
|
||||
if (content) updateData.content = content;
|
||||
if (typeof published !== 'undefined') updateData.published = published;
|
||||
|
||||
const blog = await this.blogRepository.update(req.params.id, updateData);
|
||||
|
||||
res.json({
|
||||
success: true,
|
||||
data: blog,
|
||||
message: 'Blog updated successfully'
|
||||
});
|
||||
} catch (error) {
|
||||
res.status(500).json({
|
||||
success: false,
|
||||
error: error.message
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
async delete(req, res) {
|
||||
try {
|
||||
await this.blogRepository.delete(req.params.id);
|
||||
|
||||
res.json({
|
||||
success: true,
|
||||
message: 'Blog deleted successfully'
|
||||
});
|
||||
} catch (error) {
|
||||
res.status(500).json({
|
||||
success: false,
|
||||
error: error.message
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user