Skip to content
Snippets Groups Projects

M2 course tests

Merged Ester Vilímková requested to merge M2-course-tests into M2
Files
6
@@ -2,6 +2,8 @@ package org.fuseri.modulelanguageschool.course;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import jakarta.validation.Valid;
import org.fuseri.model.dto.course.CourseCreateDto;
import org.fuseri.model.dto.course.CourseDto;
@@ -42,6 +44,10 @@ public class CourseController {
*/
@ApiOperation(value = "Create a new course")
@PostMapping
@ApiResponses({
@ApiResponse(code = 201, message = "Course created successfully"),
@ApiResponse(code = 400, message = "Invalid request body")
})
public ResponseEntity<CourseDto> create(@Valid @RequestBody CourseCreateDto dto) {
CourseDto courseDto = courseFacade.create(dto);
return ResponseEntity.status(HttpStatus.CREATED).body(courseDto);
@@ -55,10 +61,15 @@ public class CourseController {
*/
@ApiOperation(value = "Retrieve a course by ID")
@GetMapping("/find/{id}")
@ApiResponses({
@ApiResponse(code = 200, message = "Course found"),
@ApiResponse(code = 404, message = "Course not found")
})
public ResponseEntity<CourseDto> find(@PathVariable Long id) {
CourseDto courseDto = courseFacade.findById(id);
return ResponseEntity.ok(courseDto);
}
/**
* Retrieves a paginated list of courses
*
@@ -67,6 +78,10 @@ public class CourseController {
*/
@ApiOperation(value = "Retrieve a paginated list of courses")
@GetMapping("/findAll")
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Successfully retrieved courses"),
@ApiResponse(code = 404, message = "No courses found")
})
public ResponseEntity<Page<CourseDto>> findAll(@RequestParam int page) {
Page<CourseDto> courseDtoPage = courseFacade.findAll(PageRequest.of(page, 10, Sort.by(Sort.Direction.ASC, "name")));
return ResponseEntity.ok(courseDtoPage);
@@ -80,6 +95,10 @@ public class CourseController {
*/
@ApiOperation(value = "Retrieve a paginated list of courses of a given language")
@GetMapping("/findAllByLang")
@ApiResponses({
@ApiResponse(code = 200, message = "Courses found"),
@ApiResponse(code = 400, message = "Invalid request body")
})
public ResponseEntity<List<CourseDto>> findAll(@RequestParam LanguageTypeDto lang) {
List<CourseDto> courseDtos = courseFacade.findAll(lang);
return ResponseEntity.ok(courseDtos);
@@ -93,6 +112,10 @@ public class CourseController {
*/
@ApiOperation(value = "Retrieve a paginated list of courses of a given language and proficiency")
@GetMapping("/findAllByLangProf")
@ApiResponses({
@ApiResponse(code = 200, message = "Courses found"),
@ApiResponse(code = 400, message = "Invalid request body")
})
public ResponseEntity<List<CourseDto>> findAll(@RequestParam LanguageTypeDto lang,
@RequestParam ProficiencyLevelDto prof) {
List<CourseDto> courses = courseFacade.findAll(lang, prof);
@@ -108,6 +131,11 @@ public class CourseController {
*/
@ApiOperation(value = "Update an existing course")
@PutMapping("/update/{id}")
@ApiResponses({
@ApiResponse(code = 200, message = "Course updated successfully"),
@ApiResponse(code = 400, message = "Invalid request body"),
@ApiResponse(code = 404, message = "Course not found")
})
public ResponseEntity<CourseDto> update(@PathVariable Long id, @Valid @RequestBody CourseCreateDto dto) {
CourseDto updatedCourse = courseFacade.update(id, dto);
return ResponseEntity.ok(updatedCourse);
@@ -120,6 +148,10 @@ public class CourseController {
*/
@ApiOperation(value = "Delete a course by ID")
@DeleteMapping("/delete/{id}")
@ApiResponses({
@ApiResponse(code = 204, message = "Course deleted successfully"),
@ApiResponse(code = 404, message = "Course not found")
})
public ResponseEntity<Void> delete(@PathVariable Long id) {
courseFacade.delete(id);
return ResponseEntity.noContent().build();
@@ -134,6 +166,10 @@ public class CourseController {
*/
@ApiOperation(value = "Add student to the existing course")
@PatchMapping("/enrol/{id}")
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Successfully enrolled student in course"),
@ApiResponse(code = 404, message = "Course not found")
})
public ResponseEntity<CourseDto> enrol(@PathVariable Long id, @RequestBody UserDto student) {
CourseDto updatedCourse = courseFacade.enrol(id, student);
return ResponseEntity.ok(updatedCourse);
@@ -148,6 +184,10 @@ public class CourseController {
*/
@ApiOperation(value = "Remove student from the existing course")
@PatchMapping("/expel/{id}")
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Successfully expelled student from course"),
@ApiResponse(code = 404, message = "Course not found")
})
public ResponseEntity<CourseDto> expel(@PathVariable Long id, @RequestBody UserDto student) {
CourseDto updatedCourse = courseFacade.expel(id, student);
return ResponseEntity.ok(updatedCourse);
Loading