Gauntlet-Incept MCP

/** * Question API Routes * * This file defines the routes for the Question API endpoints: * - tagQuestion: Identifies subject, grade, standard, lesson, and difficulty of a given question * - gradeQuestion: Evaluates a tagged question against quality standards * - generateQuestion: Creates questions based on specified tags or example questions */ const express = require('express'); const router = express.Router(); // Import services const questionService = require('../services/questionService'); /** * @route POST /api/question/tag * @desc Tag a question with subject, grade, standard, lesson, and difficulty * @access Public */ router.post('/tag', async (req, res) => { try { const { question } = req.body; if (!question) { return res.status(400).json({ success: false, error: 'Question content is required' }); } const tags = await questionService.tagQuestion(question); return res.status(200).json({ success: true, data: tags }); } catch (error) { return res.status(500).json({ success: false, error: error.message }); } }); /** * @route POST /api/question/grade * @desc Grade a tagged question against quality standards * @access Public */ router.post('/grade', async (req, res) => { try { const { question, tags } = req.body; if (!question) { return res.status(400).json({ success: false, error: 'Question content is required' }); } if (!tags) { return res.status(400).json({ success: false, error: 'Question tags are required' }); } const gradeResult = await questionService.gradeQuestion(question, tags); return res.status(200).json({ success: true, data: gradeResult }); } catch (error) { return res.status(500).json({ success: false, error: error.message }); } }); /** * @route POST /api/question/generate * @desc Generate a question based on tags or an example question * @access Public */ router.post('/generate', async (req, res) => { try { const { tags, exampleQuestion } = req.body; if (!tags && !exampleQuestion) { return res.status(400).json({ success: false, error: 'Either tags or an example question is required' }); } const generatedQuestion = await questionService.generateQuestion(tags, exampleQuestion); return res.status(200).json({ success: true, data: generatedQuestion }); } catch (error) { return res.status(500).json({ success: false, error: error.message }); } }); module.exports = router;