Added enpoint /getCoursesWithGroups

This commit is contained in:
Filip Izydorczyk 2020-08-24 12:02:44 +02:00
parent 20e2cc9ea0
commit 186cccdd95
2 changed files with 34 additions and 1 deletions

View File

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@ -16,7 +17,7 @@ public class Course {
private Long id;
private String name;
private String symbol;
@OneToMany(mappedBy = "id")
@OneToMany(mappedBy = "courseId", fetch = FetchType.EAGER)
private List<Groups> groups = new ArrayList<>();
public Course() {
@ -42,4 +43,8 @@ public class Course {
this.name = name;
}
public List<Groups> getGroups(){
return this.groups;
}
}

View File

@ -6,6 +6,7 @@ import java.util.Hashtable;
import java.util.List;
import com.plannaplan.entities.Course;
import com.plannaplan.entities.Groups;
import com.plannaplan.services.CourseService;
import org.springframework.beans.factory.annotation.Autowired;
@ -35,4 +36,31 @@ public class CoursesController {
return new ResponseEntity<>(response, HttpStatus.OK);
}
@GetMapping("/getCoursesWithGroups")
public ResponseEntity<List<Dictionary<String,Object>>> getCoursesWithGroups() {
List<Course> courses = this.courseService.getAllCourses();
List<Dictionary<String,Object>> response = new ArrayList<>();
for(Course c : courses){
Dictionary<String, Object> element = new Hashtable<>();
element.put("id", c.getId());
element.put("name",c.getName());
List<Dictionary<String,Object>> groups = new ArrayList<>();
for(Groups g : c.getGroups()){
Dictionary<String,Object> 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);
}
}