update Stories
All checks were successful
Deploy to Production / deploy (push) Successful in 20s

This commit is contained in:
silverpro89
2026-02-24 16:31:06 +07:00
parent d0f41920f7
commit 65820bb938
4 changed files with 207 additions and 16 deletions

View File

@@ -65,6 +65,13 @@ const { authenticateToken } = require('../middleware/auth');
* items:
* type: string
* example: ["Grade 1", "Grade 2"]
* grade_number:
* type: integer
* example: 10101
* description: "Numeric code GG UU LL (e.g. 10101 = grade 1, unit 1, lesson 1)"
* type:
* type: string
* example: "story"
* tag:
* type: array
* items:
@@ -107,10 +114,25 @@ router.post('/', storyController.createStory);
* type: string
* description: Search in story name
* - in: query
* name: type
* schema:
* type: string
* description: Filter by story type (exact match, e.g. "story", "poem")
* - in: query
* name: grade_start
* schema:
* type: integer
* description: "grade_number range start (GG UU LL). If equal to grade_end → exact match"
* - in: query
* name: grade_end
* schema:
* type: integer
* description: "grade_number range end. Returns stories where grade_number >= grade_start AND <= grade_end"
* - in: query
* name: grade_filter
* schema:
* type: string
* description: Filter by grade (e.g., "Grade 1")
* description: "Legacy: filter by grade JSON array value (e.g. \"Grade 1\")"
* - in: query
* name: tag_filter
* schema:
@@ -148,10 +170,19 @@ router.get('/', storyController.getAllStories);
* parameters:
* - in: query
* name: grade
* required: true
* schema:
* type: string
* description: Grade level (e.g., "Grade 1")
* description: "Legacy: grade level string (e.g. \"Grade 1\")"
* - in: query
* name: start
* schema:
* type: integer
* description: "grade_number range start (GG UU LL). If start == end → exact match"
* - in: query
* name: end
* schema:
* type: integer
* description: "grade_number range end. Returns stories where grade_number >= start AND <= end"
* responses:
* 200:
* description: List of stories for the specified grade
@@ -187,6 +218,31 @@ router.get('/grade', storyController.getStoriesByGrade);
*/
router.get('/tag', storyController.getStoriesByTag);
/**
* @swagger
* /api/stories/type:
* get:
* summary: Get stories by type
* tags: [Stories]
* security:
* - bearerAuth: []
* parameters:
* - in: query
* name: type
* required: true
* schema:
* type: string
* description: Story type (e.g. "story", "poem", "dialogue")
* responses:
* 200:
* description: List of stories with the specified type
* 400:
* description: Missing type parameter
* 500:
* description: Server error
*/
router.get('/type', storyController.getStoriesByType);
/**
* @swagger
* /api/stories/guide: