2020-10-13 18:03:37 +02:00
|
|
|
package com.plannaplan.responses.mappers;
|
|
|
|
|
2020-10-20 19:02:18 +02:00
|
|
|
import java.util.ArrayList;
|
2020-11-30 12:07:18 +01:00
|
|
|
import java.util.HashMap;
|
2020-10-13 18:03:37 +02:00
|
|
|
import java.util.List;
|
|
|
|
import java.util.Objects;
|
2020-11-30 12:07:18 +01:00
|
|
|
import java.util.function.Function;
|
2020-10-13 18:03:37 +02:00
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
import com.plannaplan.entities.Groups;
|
2020-11-08 17:20:00 +01:00
|
|
|
import com.plannaplan.responses.models.GroupDefaultResponse;
|
|
|
|
import com.plannaplan.responses.models.CourseWithGroupsResponse;
|
|
|
|
import com.plannaplan.responses.models.GroupWithCapacityResponse;
|
2020-10-20 19:02:18 +02:00
|
|
|
import com.plannaplan.types.GroupType;
|
2020-10-13 18:03:37 +02:00
|
|
|
|
|
|
|
public class GroupsMappers {
|
2020-11-30 12:07:18 +01:00
|
|
|
public static List<GroupDefaultResponse> mapToDefaultResponse(List<Groups> groups, HashMap<Long, Integer> taken) {
|
|
|
|
return groups.stream().filter(Objects::nonNull).map(new Function<Groups, GroupDefaultResponse>() {
|
|
|
|
@Override
|
|
|
|
public GroupDefaultResponse apply(Groups p) {
|
|
|
|
if (taken != null) {
|
|
|
|
return new GroupDefaultResponse(p, taken.get(p.getId()));
|
|
|
|
} else {
|
|
|
|
return new GroupDefaultResponse(p);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}).collect(Collectors.toList());
|
|
|
|
}
|
|
|
|
|
2020-11-08 17:20:00 +01:00
|
|
|
public static List<GroupDefaultResponse> mapToDefaultResponse(List<Groups> groups) {
|
2020-11-30 12:07:18 +01:00
|
|
|
return GroupsMappers.mapToDefaultResponse(groups, null);
|
2020-10-13 18:03:37 +02:00
|
|
|
}
|
|
|
|
|
2020-11-30 12:35:35 +01:00
|
|
|
public static List<GroupWithCapacityResponse> mapToCapacityResponse(List<Groups> groups,
|
|
|
|
HashMap<Long, Integer> taken) {
|
|
|
|
// return
|
|
|
|
// groups.stream().filter(Objects::nonNull).map(GroupWithCapacityResponse::new)
|
|
|
|
// .collect(Collectors.toList());
|
|
|
|
return groups.stream().filter(Objects::nonNull).map(new Function<Groups, GroupWithCapacityResponse>() {
|
|
|
|
@Override
|
|
|
|
public GroupWithCapacityResponse apply(Groups p) {
|
|
|
|
if (taken != null) {
|
|
|
|
return new GroupWithCapacityResponse(p, taken.get(p.getId()));
|
|
|
|
} else {
|
|
|
|
return new GroupWithCapacityResponse(p);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}).collect(Collectors.toList());
|
|
|
|
}
|
|
|
|
|
2020-11-08 17:20:00 +01:00
|
|
|
public static List<GroupWithCapacityResponse> mapToCapacityResponse(List<Groups> groups) {
|
2020-11-30 12:35:35 +01:00
|
|
|
return GroupsMappers.mapToCapacityResponse(groups, null);
|
2020-10-13 18:03:37 +02:00
|
|
|
}
|
2020-11-22 03:51:24 +01:00
|
|
|
|
|
|
|
public static CourseWithGroupsResponse<GroupDefaultResponse> mapToGetCourseGroupsDefaultResponse(
|
|
|
|
List<Groups> groups) {
|
2020-10-20 19:02:18 +02:00
|
|
|
|
2020-11-08 17:20:00 +01:00
|
|
|
List<GroupDefaultResponse> lectures = new ArrayList<>();
|
|
|
|
List<GroupDefaultResponse> classes = new ArrayList<>();
|
2020-10-20 19:02:18 +02:00
|
|
|
|
|
|
|
groups.stream().forEach(group -> {
|
|
|
|
if (group.getType() == GroupType.CLASS) {
|
2020-11-08 17:20:00 +01:00
|
|
|
classes.add(new GroupDefaultResponse(group));
|
2020-10-20 19:02:18 +02:00
|
|
|
} else {
|
2020-11-08 17:20:00 +01:00
|
|
|
lectures.add(new GroupDefaultResponse(group));
|
2020-10-20 19:02:18 +02:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2020-11-08 17:20:00 +01:00
|
|
|
return new CourseWithGroupsResponse<>(classes, lectures);
|
2020-10-20 19:02:18 +02:00
|
|
|
}
|
|
|
|
|
2020-11-22 03:51:24 +01:00
|
|
|
public static CourseWithGroupsResponse<GroupWithCapacityResponse> mapToGetCourseGroupsWithCapacityResponse(
|
|
|
|
List<Groups> groups) {
|
2020-10-20 19:02:18 +02:00
|
|
|
|
2020-11-08 17:20:00 +01:00
|
|
|
List<GroupWithCapacityResponse> lectures = new ArrayList<>();
|
|
|
|
List<GroupWithCapacityResponse> classes = new ArrayList<>();
|
2020-10-20 19:02:18 +02:00
|
|
|
|
|
|
|
groups.stream().forEach(group -> {
|
|
|
|
if (group.getType() == GroupType.CLASS) {
|
2020-11-08 17:20:00 +01:00
|
|
|
classes.add(new GroupWithCapacityResponse(group));
|
2020-10-20 19:02:18 +02:00
|
|
|
} else {
|
2020-11-08 17:20:00 +01:00
|
|
|
lectures.add(new GroupWithCapacityResponse(group));
|
2020-10-20 19:02:18 +02:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2020-11-08 17:20:00 +01:00
|
|
|
return new CourseWithGroupsResponse<>(classes, lectures);
|
2020-10-20 19:02:18 +02:00
|
|
|
}
|
|
|
|
|
2020-10-13 18:03:37 +02:00
|
|
|
}
|