UNPKG

bug-test-api

Version:

Express.js API project: bug-test-api

149 lines (130 loc) 3.79 kB
const questionOptionsService = require('../services/questionOptionsService'); const { validateQuestionOptions } = require('../validators/questionOptionsValidator'); class QuestionOptionsController { async getAll(req, res) { try { const { page = 1, limit = 10, search, sort, order, ...filters } = req.query; const result = await questionOptionsService.findAll({ page: parseInt(page), limit: parseInt(limit), filters: { search, sort, order, ...filters } }); res.json({ success: true, data: result.data, pagination: { page: result.page, limit: result.limit, total: result.total, pages: Math.ceil(result.total / result.limit) } }); } catch (error) { res.status(500).json({ success: false, message: 'Error fetching questionoptions', error: error.message }); } } async getById(req, res) { try { const { id } = req.params; const questionOptions = await questionOptionsService.findById(id); if (!questionOptions) { return res.status(404).json({ success: false, message: 'QuestionOptions not found' }); } res.json({ success: true, data: questionOptions }); } catch (error) { res.status(500).json({ success: false, message: 'Error fetching questionoptions', error: error.message }); } } async create(req, res) { try { const { error, value } = validateQuestionOptions(req.body); if (error) { return res.status(400).json({ success: false, message: 'Validation error', errors: error.details.map(detail => detail.message) }); } const questionOptions = await questionOptionsService.create(value); res.status(201).json({ success: true, message: 'QuestionOptions created successfully', data: questionOptions }); } catch (error) { res.status(500).json({ success: false, message: 'Error creating questionoptions', error: error.message }); } } async update(req, res) { try { const { id } = req.params; const { error, value } = validateQuestionOptions(req.body); if (error) { return res.status(400).json({ success: false, message: 'Validation error', errors: error.details.map(detail => detail.message) }); } const questionOptions = await questionOptionsService.update(id, value); if (!questionOptions) { return res.status(404).json({ success: false, message: 'QuestionOptions not found' }); } res.json({ success: true, message: 'QuestionOptions updated successfully', data: questionOptions }); } catch (error) { res.status(500).json({ success: false, message: 'Error updating questionoptions', error: error.message }); } } async delete(req, res) { try { const { id } = req.params; const deleted = await questionOptionsService.delete(id); if (!deleted) { return res.status(404).json({ success: false, message: 'QuestionOptions not found' }); } res.json({ success: true, message: 'QuestionOptions deleted successfully' }); } catch (error) { res.status(500).json({ success: false, message: 'Error deleting questionoptions', error: error.message }); } } } module.exports = new QuestionOptionsController();