package com.plannaplan.controllers; import java.util.List; import com.plannaplan.App; import com.plannaplan.entities.Course; import com.plannaplan.responses.mappers.CoursesResponseMappers; import com.plannaplan.responses.models.GetCoursesResponse; import com.plannaplan.responses.models.GetCoursesWithGroupsResponse; import com.plannaplan.services.CourseService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RestController; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import com.plannaplan.responses.models.abstracts.CoursesResponse; @RestController @CrossOrigin @RequestMapping("/api/" + App.API_VERSION + "/courses") @Api(tags = { "Course" }, value = "Course", description = "Endpoints to deal with courses. All courses can have classes, lectures or both.") public class CoursesController { @Autowired private CourseService courseService; @GetMapping("/all") @ApiOperation(value = "Return all courses") public ResponseEntity> getMethodName( @RequestParam(name = "groups", defaultValue = "false") @ApiParam(value = "Boolean if you want to have resopnse with associated groups or without") Boolean groups) { List courses = this.courseService.getAllCourses(); if (groups) { final List response = CoursesResponseMappers .mapToGetCoursesWithGroupsResponse(courses); return new ResponseEntity<>(response, HttpStatus.OK); } final List response = CoursesResponseMappers.mapToGetCoursesResponse(courses); return new ResponseEntity<>(response, HttpStatus.OK); } }