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

    Function createProgressRoutes

    • Creates and configures an Express router with progress tracking and gamification routes.

      This factory function initializes a complete Express router configuration for progress-related operations, including user progress tracking, lesson completion monitoring, gamification features, and administrative analytics. The function instantiates the complete dependency chain (Repository → Service → Controller) and configures all routes with appropriate middleware for authentication, authorization, and error handling.

      The returned router includes comprehensive progress management capabilities supporting individual user progress tracking, lesson completion monitoring, experience points and gamification, offline synchronization, and administrative oversight. All routes require authentication, with additional role-based access control for administrative functions.

      Parameters

      • prisma: PrismaClient

        Prisma database client instance for repository initialization and database operations

      Returns Router

      Configured Express router with all progress tracking and gamification endpoints

      When PrismaClient initialization fails or database connection is unavailable

      // Basic usage in main application
      import { createProgressRoutes } from '@/modules/progress/routes/progressRoutes';
      import { prisma } from '@/shared/database/connection';

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

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

      const progressRouter = createProgressRoutes(customPrisma);
      app.use('/api/v1', progressRouter);