import VideoService from '../services/VideoService.js'; import {validationResult} from 'express-validator'; import ApiError from './ErrorController.js'; class VideoController { async create(req, res, next) { try { const errors = validationResult(req); if(!errors.isEmpty()) { return next(ApiError.BadRequest('Ошибка при валидации', errors.array())); } const { name, playlist, artist } = req.body; const { videoHQ, videoLQ } = req.files; const video = await VideoService.create({name, playlist, artist, videoHQ, videoLQ}); return res.json(video); } catch (e) { next(e); } } async getAll(req, res, next) { try { const {page, search} = req.query; const videos = await VideoService.getAll({page, search}); res.set('Access-Control-Expose-Headers', 'X-total-count'); res.set('X-total-count', videos.count); return res.json({videos: videos.videos}); } catch (e) { next(e); } } async getOne(req, res, next) { try { const video = await VideoService.getOne(); return res.json(video); } catch (e) { next(e); } } async edit(req, res, next) { try { const { id } = req.params; const { name, playlist, artist } = req.body; const video = await VideoService.edit({id, name, playlist, artist}); return res.json(video); } catch (e) { next(e); } } async delete(req, res, next) { try { const { id } = req.params; const video = await VideoService.delete({id}); return res.json(video); } catch (e) { next(e); } } } export default new VideoController();