feat: implement course listing and retrieval API with dedicated controller, service, and types.
This commit is contained in:
parent
4b335b6b49
commit
1aa3190ca4
3 changed files with 91 additions and 0 deletions
25
Backend/src/controllers/CoursesController.ts
Normal file
25
Backend/src/controllers/CoursesController.ts
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
import { Get, Body, Post, Route, Tags, SuccessResponse, Response, Delete, Controller, Security, Request, Put, Path } from 'tsoa';
|
||||
import { ValidationError } from '../middleware/errorHandler';
|
||||
import { createCourse, createCourseResponse, listCourseResponse } from '../types/courses.types';
|
||||
import { CoursesService } from '../services/courses.service';
|
||||
import { get } from 'http';
|
||||
|
||||
@Route('api/courses')
|
||||
@Tags('Courses')
|
||||
export class CoursesController extends Controller {
|
||||
private coursesService = new CoursesService();
|
||||
|
||||
@Get()
|
||||
@SuccessResponse('200', 'Courses fetched successfully')
|
||||
@Response('401', 'Invalid or expired token')
|
||||
public async listCourses(): Promise<listCourseResponse> {
|
||||
return await this.coursesService.ListCourses();
|
||||
}
|
||||
|
||||
@Get('{id}')
|
||||
@SuccessResponse('200', 'Course fetched successfully')
|
||||
@Response('401', 'Invalid or expired token')
|
||||
public async getCourseById(@Path() id: number): Promise<listCourseResponse> {
|
||||
return await this.coursesService.ListCourses();
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue