WayrApp Backend & Ecosystem Documentation - v1.0.0
    Preparing search index...

    Function createLessonRoutes

    • Creates and configures an Express router with lesson management and lesson-exercise assignment routes.

      This factory function initializes a complete Express router configuration for lesson-related operations, including full CRUD operations for lessons within modules and specialized endpoints for managing the many-to-many relationship between lessons and exercises. The function instantiates a LessonController with the provided PrismaClient and configures all routes with appropriate middleware for authentication, authorization, validation, and error handling.

      The returned router includes two main categories of endpoints: lesson management routes (nested under modules) for creating, reading, updating, and deleting lessons, and lesson-exercise assignment routes for managing exercise assignments, ordering, and reordering within lessons. All routes implement comprehensive input validation using Zod schemas and role-based access control.

      Parameters

      • prisma: PrismaClient

        Prisma database client instance for controller initialization and database operations

      Returns Router

      Configured Express router with all lesson management and exercise assignment endpoints

      When PrismaClient initialization fails or database connection is unavailable

      // Basic usage in main application
      import { createLessonRoutes } from '@/modules/content/routes/lessonRoutes';
      import { prisma } from '@/shared/database/connection';

      const lessonRouter = createLessonRoutes(prisma);
      app.use('/api/v1', lessonRouter);
      // Usage with custom Prisma client
      import { PrismaClient } from '@prisma/client';

      const customPrisma = new PrismaClient({
      datasources: { db: { url: process.env.CUSTOM_DATABASE_URL } }
      });

      const lessonRouter = createLessonRoutes(customPrisma);
      app.use('/api/v1', lessonRouter);