From 20f52746b56b3a57daae990bb6223fa32328dbc1 Mon Sep 17 00:00:00 2001 From: Filip Izydorczyk Date: Wed, 20 Jan 2021 15:38:42 +0100 Subject: [PATCH] schedule accepted --- .../mappers/AssignmentResponseMappers.java | 18 ++++---- .../responses/models/AssignmentResponse.java | 46 +++++++++++++++++++ .../models/GroupDefaultResponse.java | 20 ++++++++ .../models/GroupWithCapacityResponse.java | 2 +- 4 files changed, 77 insertions(+), 9 deletions(-) diff --git a/restservice/src/main/java/com/plannaplan/responses/mappers/AssignmentResponseMappers.java b/restservice/src/main/java/com/plannaplan/responses/mappers/AssignmentResponseMappers.java index 1434b65..1084ef8 100755 --- a/restservice/src/main/java/com/plannaplan/responses/mappers/AssignmentResponseMappers.java +++ b/restservice/src/main/java/com/plannaplan/responses/mappers/AssignmentResponseMappers.java @@ -36,19 +36,19 @@ public class AssignmentResponseMappers { public static final List mapToResponse(List assignments, HashMap ammounts) { List response = new ArrayList<>(); - HashMap> courses = new HashMap<>(); + HashMap> courses = new HashMap<>(); assignments.stream().forEach((Assignment assignment) -> { final Groups group = assignment.getGroup(); final Course course = group.getCourseId(); if (courses.get(course) == null) { courses.put(course, new ArrayList<>()); } - courses.get(course).add(group); + courses.get(course).add(assignment); }); - for (Map.Entry> entry : courses.entrySet()) { + for (Map.Entry> entry : courses.entrySet()) { final Course course = entry.getKey(); - final List courseGroups = entry.getValue(); + final List courseGroups = entry.getValue(); if (courseGroups.size() == 1) { if (ammounts != null) { response.add(new AssignmentResponse(course, courseGroups.get(0), ammounts)); @@ -57,10 +57,12 @@ public class AssignmentResponseMappers { } } if (courseGroups.size() == 2) { - final Groups lecture = courseGroups.stream() - .filter(o -> GroupType.isLectureOrClass(o.getType()) == GroupType.LECTURE).findFirst().get(); - final Groups classes = courseGroups.stream() - .filter(o -> GroupType.isLectureOrClass(o.getType()) == GroupType.CLASS).findFirst().get(); + final Assignment lecture = courseGroups.stream() + .filter(o -> GroupType.isLectureOrClass(o.getGroup().getType()) == GroupType.LECTURE) + .findFirst().get(); + final Assignment classes = courseGroups.stream() + .filter(o -> GroupType.isLectureOrClass(o.getGroup().getType()) == GroupType.CLASS).findFirst() + .get(); if (ammounts != null) { response.add(new AssignmentResponse(course, lecture, classes, ammounts)); diff --git a/restservice/src/main/java/com/plannaplan/responses/models/AssignmentResponse.java b/restservice/src/main/java/com/plannaplan/responses/models/AssignmentResponse.java index 04078da..b20e2a1 100755 --- a/restservice/src/main/java/com/plannaplan/responses/models/AssignmentResponse.java +++ b/restservice/src/main/java/com/plannaplan/responses/models/AssignmentResponse.java @@ -2,6 +2,7 @@ package com.plannaplan.responses.models; import java.util.HashMap; +import com.plannaplan.entities.Assignment; import com.plannaplan.entities.Course; import com.plannaplan.entities.Groups; import com.plannaplan.types.GroupType; @@ -65,6 +66,51 @@ public class AssignmentResponse { GroupType.isLectureOrClass(group.getType()) == GroupType.CLASS ? group : null, ammounts); } + /** + * @param course course entity + * @param group class/lecture entity + * @param ammounts map with ammounts key - group id, value - ammounts of taken + * places + */ + public AssignmentResponse(Course course, Assignment group, HashMap ammounts) { + this(course, GroupType.isLectureOrClass(group.getGroup().getType()) == GroupType.LECTURE ? group : null, + GroupType.isLectureOrClass(group.getGroup().getType()) == GroupType.CLASS ? group : null, ammounts); + } + + /** + * + * @param course course entity + * @param group class/lecture entity + */ + public AssignmentResponse(Course course, Assignment group) { + this(course, GroupType.isLectureOrClass(group.getGroup().getType()) == GroupType.LECTURE ? group : null, + GroupType.isLectureOrClass(group.getGroup().getType()) == GroupType.CLASS ? group : null); + } + + /** + * @param course course entity + * @param lecture lecture Groups entity + * @param classes class Groups entity + * @param ammounts map with ammounts key - group id, value - ammounts of taken + * places + */ + public AssignmentResponse(Course course, Assignment lecture, Assignment classes, HashMap ammounts) { + this.name = course.getName(); + this.classes = new GroupWithCapacityResponse(classes, ammounts.get(classes.getGroup().getId())); + this.lecture = new GroupWithCapacityResponse(lecture, ammounts.get(lecture.getGroup().getId())); + } + + /** + * @param course course entity + * @param lecture lecture Groups entity + * @param classes class Groups entity + */ + public AssignmentResponse(Course course, Assignment lecture, Assignment classes) { + this.name = course.getName(); + this.classes = new GroupWithCapacityResponse(classes); + this.lecture = new GroupWithCapacityResponse(lecture); + } + /** * @return Lecture in api response forms */ diff --git a/restservice/src/main/java/com/plannaplan/responses/models/GroupDefaultResponse.java b/restservice/src/main/java/com/plannaplan/responses/models/GroupDefaultResponse.java index 5dce6da..171a088 100755 --- a/restservice/src/main/java/com/plannaplan/responses/models/GroupDefaultResponse.java +++ b/restservice/src/main/java/com/plannaplan/responses/models/GroupDefaultResponse.java @@ -39,6 +39,9 @@ public class GroupDefaultResponse { @ApiModelProperty(value = "Value shows how many places is already taken by other students.") private Integer takenPlaces; + @ApiModelProperty(value = "Used only in resposnes realted to user assignments. For example in /api/v1/users/schedule.") + private Boolean isAccepted; + /** * creat new entity * @@ -54,6 +57,13 @@ public class GroupDefaultResponse { this.type = group.getType() != null ? GroupType.isLectureOrClass(group.getType()) : null; } + /** + * @return is group accepted if its related to assignmetn + */ + public Boolean getIsAccepted() { + return isAccepted; + } + /** * * @param group entity to map to api response @@ -73,6 +83,16 @@ public class GroupDefaultResponse { this(assignment.getGroup()); } + /** + * + * @param assignment entity to map to api response + * @param takenPlaces map with ammounts of taken places + */ + public GroupDefaultResponse(Assignment assignment, int takenPlaces) { + this(assignment.getGroup(), takenPlaces); + this.isAccepted = assignment.isAccepted(); + } + /** * @return what typew of group is this (lecture or class) */ diff --git a/restservice/src/main/java/com/plannaplan/responses/models/GroupWithCapacityResponse.java b/restservice/src/main/java/com/plannaplan/responses/models/GroupWithCapacityResponse.java index 881dcfe..acb2e77 100755 --- a/restservice/src/main/java/com/plannaplan/responses/models/GroupWithCapacityResponse.java +++ b/restservice/src/main/java/com/plannaplan/responses/models/GroupWithCapacityResponse.java @@ -49,7 +49,7 @@ public class GroupWithCapacityResponse extends GroupDefaultResponse { * @param takenPlaces group taken places */ public GroupWithCapacityResponse(Assignment assignment, int takenPlaces) { - this(assignment.getGroup(), takenPlaces); + super(assignment, takenPlaces); } /**