package com.plannaplan.controllers; import java.util.ArrayList; import java.util.Dictionary; import java.util.Hashtable; import java.util.List; import com.plannaplan.App; import com.plannaplan.entities.Course; import com.plannaplan.entities.Groups; import com.plannaplan.responses.mappers.CoursesResponseMappers; import com.plannaplan.responses.models.GetCoursesResponse; 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 org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @RestController @CrossOrigin @RequestMapping("/api/" + App.API_VERSION + "/courses") public class CoursesController { @Autowired private CourseService courseService; @GetMapping("/getCourses") public ResponseEntity> getMethodName() { List courses = this.courseService.getAllCourses(); List response = CoursesResponseMappers.mapCoursesListToCoursesResponseList(courses); return new ResponseEntity<>(response, HttpStatus.OK); } @GetMapping("/getCoursesWithGroups") public ResponseEntity>> getCoursesWithGroups() { List courses = this.courseService.getAllCourses(); List> response = new ArrayList<>(); for (Course c : courses) { Dictionary element = new Hashtable<>(); element.put("id", c.getId()); element.put("name", c.getName()); List> groups = new ArrayList<>(); for (Groups g : c.getGroups()) { Dictionary group = new Hashtable<>(); group.put("id", g.getId()); group.put("day", g.getDay().label); group.put("time", g.getTimeString()); group.put("lecturer", g.getLecturer().toString()); group.put("room", g.getRoom()); group.put("type", g.getType()); groups.add(group); } element.put("groups", groups); response.add(element); } return new ResponseEntity<>(response, HttpStatus.OK); } }