@defikitdotnet/education-module-ai
Version:
AI Education Module using Agent Framework
43 lines (42 loc) • 2.68 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createAiContentRoutes = createAiContentRoutes;
var express_1 = require("express");
var AiContentController_1 = require("../controllers/AiContentController");
var AiContentService_1 = require("../services/AiContentService");
var CourseService_1 = require("../services/CourseService");
var CourseRepository_1 = require("../repositories/CourseRepository");
var SectionRepository_1 = require("../repositories/SectionRepository");
var LectureRepository_1 = require("../repositories/LectureRepository");
var QuizRepository_1 = require("../repositories/QuizRepository");
var QuizQuestionRepository_1 = require("../repositories/QuizQuestionRepository");
var EnrollmentRepository_1 = require("../repositories/EnrollmentRepository");
var CategoryRepository_1 = require("../repositories/CategoryRepository");
/**
* Create and configure AI content routes
*/
function createAiContentRoutes(dbAdapter) {
var router = (0, express_1.Router)();
// Create repositories
var courseRepository = new CourseRepository_1.CourseRepository(dbAdapter);
var sectionRepository = new SectionRepository_1.SectionRepository(dbAdapter);
var lectureRepository = new LectureRepository_1.LectureRepository(dbAdapter);
var quizRepository = new QuizRepository_1.QuizRepository(dbAdapter);
var quizQuestionRepository = new QuizQuestionRepository_1.QuizQuestionRepository(dbAdapter);
var categoryRepository = new CategoryRepository_1.CategoryRepository(dbAdapter);
var enrollmentRepository = new EnrollmentRepository_1.EnrollmentRepository(dbAdapter);
// Create services
var courseService = new CourseService_1.CourseService(courseRepository, sectionRepository, lectureRepository, quizRepository, quizQuestionRepository, categoryRepository, enrollmentRepository, dbAdapter);
var aiContentService = new AiContentService_1.AiContentService();
// Create controller
var aiContentController = new AiContentController_1.AiContentController(aiContentService, courseService, sectionRepository, lectureRepository, quizRepository, quizQuestionRepository);
// Temporarily remove authentication
// router.use(authenticateTeacher);
// Generate course structure only (doesn't save to DB)
router.post("/generate-course", aiContentController.generateCourse);
// Generate section structure only (doesn't save to DB)
router.post("/generate-section/:courseId", aiContentController.generateSection);
// Generate and save a complete course to the database
router.post("/generate-and-save-course", aiContentController.generateAndSaveCourse);
return router;
}