/
ruscreator
/
Webed
Обзор
Документация
Войти
/
ruscreator
/
Webed
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
backend/src/controllers/courseController.js
102 строки
3 KB
Алексей Слепов
Initial commit
17 фев 2025, 15:15
17 фев 2025, 15:15
63a31d6
Код
Авторство
О чём код?
const { Course, Tag, User } = require('../models'); const courseController = { async getAll(req, res) { try { const courses = await Course.findAll({ include: [ { model: Tag, through: { attributes: [] }, as: 'tags' }, { model: User, as: 'author', attributes: ['id', 'username', 'email'] } ] }); res.json(courses); } catch (error) { console.error('Ошибка при получении курсов:', error); res.status(500).json({ message: 'Ошибка при получении курсов' }); } }, async getById(req, res) { try { const course = await Course.findByPk(req.params.id, { include: [{ model: User, as: 'author', attributes: ['id', 'username', 'email'] }] }); if (!course) { return res.status(404).json({ message: 'Курс не найден' }); } res.json(course); } catch (error) { console.error('Error getting course:', error); res.status(500).json({ message: 'Ошибка при получении курса' }); } }, async create(req, res) { try { const { title, description, price } = req.body; const course = await Course.create({ title, description, price, authorId: req.user.id }); if (req.body.tags) { await course.setTags(req.body.tags); } res.status(201).json(course); } catch (error) { console.error('Error creating course:', error); res.status(500).json({ message: 'Ошибка при создании курса' }); } }, async update(req, res) { try { const { title, description, price } = req.body; const course = await Course.findByPk(req.params.id); if (!course) { return res.status(404).json({ message: 'Курс не найден' }); } await course.update({ title, description, price }); res.json(course); } catch (error) { console.error('Error updating course:', error); res.status(500).json({ message: 'Ошибка при обновлении курса' }); } }, async delete(req, res) { try { const course = await Course.findByPk(req.params.id); if (!course) { return res.status(404).json({ message: 'Курс не найден' }); } await course.destroy(); res.json({ message: 'Курс успешно удален' }); } catch (error) { console.error('Error deleting course:', error); res.status(500).json({ message: 'Ошибка при удалении курса' }); } } }; module.exports = courseController;