Class CourseController

java.lang.Object
com.nicholasalfonso.lato.controller.CourseController

@RestController @RequestMapping("/api/courses") public class CourseController extends Object
REST controller for user course management. Provides endpoints for listing, retrieving, and updating user courses.
  • Constructor Details

    • CourseController

      public CourseController(CourseService courseService, CurrentUserService currentUserService, CourseMapper courseMapper)
      Creates the course controller with required services and mappers.
      Parameters:
      courseService - service for course operations
      currentUserService - service to resolve the current authenticated user
      courseMapper - mapper for course response DTOs
  • Method Details

    • handleGetAllCoursesRequest

      @GetMapping public List<CourseResponse> handleGetAllCoursesRequest()
      Retrieves all courses for the authenticated user.
      Returns:
      list of course responses
    • handleGetCourseDetailsRequest

      @GetMapping("/{id}") public CourseResponse handleGetCourseDetailsRequest(@PathVariable Long id)
      Retrieves details for a specific course.
      Parameters:
      id - the course ID
      Returns:
      course response
    • handleCourseUpdateRequest

      @PutMapping("/{id}") public CourseResponse handleCourseUpdateRequest(@PathVariable Long id, @RequestBody UpdateCourseRequest request)
      Updates editable course details.
      Parameters:
      id - the course ID
      request - update details
      Returns:
      updated course response
    • handleGetCourseProgressRequest

      @GetMapping("/{id}/progress") public CourseProgressResponse handleGetCourseProgressRequest(@PathVariable Long id)
      Calculates the completion progress for a course.
      Parameters:
      id - the course ID
      Returns:
      course progress with completion statistics
    • handleGetCourseAssignmentsRequest

      @GetMapping("/{id}/assignments") public List<AssignmentResponse> handleGetCourseAssignmentsRequest(@PathVariable Long id)
      Retrieves all assignments for a specific course.
      Parameters:
      id - the course ID
      Returns:
      list of assignment responses for the course