Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
@RestController
@RequestMapping(value = "/groups")
public class GroupController {

private final GroupService groupService;

@GetMapping
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
@RestController
@RequestMapping(value = "/students")
public class StudentController {

private final StudentService studentService;

@GetMapping
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
@RestController
@RequestMapping(value = "/subjects")
public class SubjectController {

private final SubjectService subjectService;

@GetMapping
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/mate/academy/mapstruct/mapper/GroupMapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
import mate.academy.mapstruct.dto.group.CreateGroupRequestDto;
import mate.academy.mapstruct.dto.group.GroupDto;
import mate.academy.mapstruct.model.Group;
import org.mapstruct.Mapper;

@Mapper(componentModel = "spring")
public interface GroupMapper {
GroupDto toDto(Group group);

Expand Down
38 changes: 38 additions & 0 deletions src/main/java/mate/academy/mapstruct/mapper/StudentMapper.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,52 @@
package mate.academy.mapstruct.mapper;

import java.util.List;
import java.util.stream.Collectors;
import mate.academy.mapstruct.dto.student.CreateStudentRequestDto;
import mate.academy.mapstruct.dto.student.StudentDto;
import mate.academy.mapstruct.dto.student.StudentWithoutSubjectsDto;
import mate.academy.mapstruct.model.Group;
import mate.academy.mapstruct.model.Student;
import mate.academy.mapstruct.model.Subject;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;

@Mapper(componentModel = "spring")
public interface StudentMapper {
@Mapping(target = "groupId", source = "group.id")
@Mapping(target = "subjectIds", source = "subjects")
StudentDto toDto(Student student);

@Mapping(target = "groupId", source = "group.id")
StudentWithoutSubjectsDto toStudentWithoutSubjectsDto(Student student);

@Mapping(target = "id", ignore = true)
@Mapping(target = "group", source = "groupId")
@Mapping(target = "subjects", source = "subjects")
@Mapping(target = "socialSecurityNumber", ignore = true)
Student toModel(CreateStudentRequestDto requestDto);

default Long map(Group group) {
return group == null ? null : group.getId();
}

default Group map(Long groupId) {
return groupId == null ? null : new Group(groupId);
}

default List<Subject> map(List<Long> subjectIds) {
return subjectIds == null
? null
: subjectIds.stream()
.map(Subject::new)
.collect(Collectors.toList());
}

default List<Long> mapSubjectsToIds(List<Subject> subjects) {
return subjects == null
? null
: subjects.stream()
.map(Subject::getId)
.collect(Collectors.toList());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,11 @@
import mate.academy.mapstruct.dto.subject.CreateSubjectRequestDto;
import mate.academy.mapstruct.dto.subject.SubjectDto;
import mate.academy.mapstruct.model.Subject;
import org.mapstruct.Mapper;

@Mapper(componentModel = "spring")
public interface SubjectMapper {

SubjectDto toDto(Subject subject);

Subject toModel(CreateSubjectRequestDto requestDto);
Expand Down
16 changes: 16 additions & 0 deletions src/main/java/mate/academy/mapstruct/model/Group.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,20 @@ public class Group {
public Group(Long id) {
this.id = id;
}

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}
48 changes: 48 additions & 0 deletions src/main/java/mate/academy/mapstruct/model/Student.java
Original file line number Diff line number Diff line change
Expand Up @@ -46,4 +46,52 @@ public class Student {
inverseJoinColumns = @JoinColumn(name = "subject_id")
)
private List<Subject> subjects;

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public String getSocialSecurityNumber() {
return socialSecurityNumber;
}

public void setSocialSecurityNumber(String socialSecurityNumber) {
this.socialSecurityNumber = socialSecurityNumber;
}

public Group getGroup() {
return group;
}

public void setGroup(Group group) {
this.group = group;
}

public List<Subject> getSubjects() {
return subjects;
}

public void setSubjects(List<Subject> subjects) {
this.subjects = subjects;
}
}
16 changes: 16 additions & 0 deletions src/main/java/mate/academy/mapstruct/model/Subject.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,20 @@ public class Subject {
public Subject(Long id) {
this.id = id;
}

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}