File

apps/recallassess/recallassess-api/src/api/client/reports/course-reports.controller.ts

Prefix

api/client/reports/course

Index

Methods

Methods

Async getPublishedCourseByIdForReports
getPublishedCourseByIdForReports(id: number)
Decorators :
@HttpCode(HttpStatus.OK)
@Public()
@Get(':id')
@ApiOperation({summary: 'Get a published course by ID (reports)'})
@ApiResponse({status: 200, description: 'Returns a single published course with enriched data', type: CLCourseDto})
@ApiResponse({status: 404, description: 'Course not found or not published'})

Get a single published course by ID for client reports GET /api/reports/client/course/:id

Parameters :
Name Type Optional
id number No
Async getPublishedCoursesForReports
getPublishedCoursesForReports()
Decorators :
@HttpCode(HttpStatus.OK)
@Public()
@Get()
@ApiOperation({summary: 'Get all published courses (reports)'})
@ApiResponse({status: 200, description: 'Returns array of published courses with enriched data', type: undefined})

Get all published courses for client reports GET /api/reports/client/course

import { Public } from "@bish-nest/core/auth/decorator/public.decorator";
import { Controller, Get, HttpCode, HttpStatus, NotFoundException, Param, ParseIntPipe } from "@nestjs/common";
import { ApiOperation, ApiResponse, ApiTags } from "@nestjs/swagger";
import { CLCourseService } from "../course/course.service";
import { CLCourseDto } from "../course/dto";

@ApiTags("Client - Reports - Courses")
@Controller("api/client/reports/course")
export class CLCourseReportsController {
  constructor(private courseService: CLCourseService) {}

  /**
   * Get all published courses for client reports
   * GET /api/reports/client/course
   */
  @HttpCode(HttpStatus.OK)
  @Public()
  @Get()
  @ApiOperation({ summary: "Get all published courses (reports)" })
  @ApiResponse({
    status: 200,
    description: "Returns array of published courses with enriched data",
    type: [CLCourseDto],
  })
  async getPublishedCoursesForReports(): Promise<CLCourseDto[]> {
    return this.courseService.getPublishedCourses();
  }

  /**
   * Get a single published course by ID for client reports
   * GET /api/reports/client/course/:id
   */
  @HttpCode(HttpStatus.OK)
  @Public()
  @Get(":id")
  @ApiOperation({ summary: "Get a published course by ID (reports)" })
  @ApiResponse({
    status: 200,
    description: "Returns a single published course with enriched data",
    type: CLCourseDto,
  })
  @ApiResponse({
    status: 404,
    description: "Course not found or not published",
  })
  async getPublishedCourseByIdForReports(@Param("id", ParseIntPipe) id: number): Promise<CLCourseDto> {
    const course = await this.courseService.getPublishedCourseById(id);

    if (!course) {
      throw new NotFoundException(`Course with ID ${id} not found or not published`);
    }

    return course;
  }
}

results matching ""

    No results matching ""