From e7a1978d54db65949a5758320a72b3254443ec93 Mon Sep 17 00:00:00 2001 From: evilimkova <evilimkova@onpointserv.com> Date: Sun, 30 Apr 2023 11:23:59 +0200 Subject: [PATCH] Adding CourseCertificateDto - do not pass students --- .../dto/certificate/CertificateCreateDto.java | 6 +-- .../dto/course/CourseCertificateDto.java | 46 +++++++++++++++++++ .../CertificateControllerTests.java | 4 +- .../CertificateFacadeTests.java | 4 +- .../CertificateMapperTests.java | 4 +- 5 files changed, 55 insertions(+), 9 deletions(-) create mode 100644 application/model/src/main/java/org/fuseri/model/dto/course/CourseCertificateDto.java diff --git a/application/model/src/main/java/org/fuseri/model/dto/certificate/CertificateCreateDto.java b/application/model/src/main/java/org/fuseri/model/dto/certificate/CertificateCreateDto.java index cf2c9c98..e85e72ae 100644 --- a/application/model/src/main/java/org/fuseri/model/dto/certificate/CertificateCreateDto.java +++ b/application/model/src/main/java/org/fuseri/model/dto/certificate/CertificateCreateDto.java @@ -4,7 +4,7 @@ import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; import lombok.Getter; import lombok.Setter; -import org.fuseri.model.dto.course.CourseDto; +import org.fuseri.model.dto.course.CourseCertificateDto; import org.fuseri.model.dto.user.UserDto; @@ -20,9 +20,9 @@ public class CertificateCreateDto { private UserDto user; @NotNull @Valid - private CourseDto course; + private CourseCertificateDto course; - public CertificateCreateDto(UserDto user, CourseDto course) { + public CertificateCreateDto(UserDto user, CourseCertificateDto course) { this.user = user; this.course = course; } diff --git a/application/model/src/main/java/org/fuseri/model/dto/course/CourseCertificateDto.java b/application/model/src/main/java/org/fuseri/model/dto/course/CourseCertificateDto.java new file mode 100644 index 00000000..d3266456 --- /dev/null +++ b/application/model/src/main/java/org/fuseri/model/dto/course/CourseCertificateDto.java @@ -0,0 +1,46 @@ +package org.fuseri.model.dto.course; + +import jakarta.validation.Valid; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; +import org.fuseri.model.dto.common.DomainObjectDto; + +/** + * This class represents a Data Transfer Object (DTO) for Course entities. + * It is used for passing Course data to Certificate module. + * It extends the DomainObjectDto class and includes additional Course-specific fields. + */ +@Getter +@Setter +@EqualsAndHashCode(callSuper = false) +public class CourseCertificateDto extends DomainObjectDto { + + @NotBlank(message = "Course name is required") + @Size(max = 63, message = "Course name must not exceed {max} characters") + private String name; + + @NotNull(message = "Lecture capacity cannot be null") + @Min(value = 1, message = "Lecture capacity must be at least 1") + private Integer capacity; + + @NotNull(message = "Language type is required") + @Valid + private LanguageTypeDto language; + + @NotNull(message = "Proficiency level is required") + @Valid + private ProficiencyLevelDto proficiency; + + public CourseCertificateDto(String name, Integer capacity, LanguageTypeDto languageTypeDto, ProficiencyLevelDto proficiencyLevelDto) { + this.name = name; + this.capacity = capacity; + this.language = languageTypeDto; + this.proficiency = proficiencyLevelDto; + } + +} diff --git a/application/module-certificate/src/test/java/org/fuseri/modulecertificate/CertificateControllerTests.java b/application/module-certificate/src/test/java/org/fuseri/modulecertificate/CertificateControllerTests.java index 7f9d7ba7..6733239b 100644 --- a/application/module-certificate/src/test/java/org/fuseri/modulecertificate/CertificateControllerTests.java +++ b/application/module-certificate/src/test/java/org/fuseri/modulecertificate/CertificateControllerTests.java @@ -3,7 +3,7 @@ package org.fuseri.modulecertificate; import com.fasterxml.jackson.databind.ObjectMapper; import org.fuseri.model.dto.certificate.CertificateCreateDto; import org.fuseri.model.dto.certificate.CertificateSimpleDto; -import org.fuseri.model.dto.course.CourseDto; +import org.fuseri.model.dto.course.CourseCertificateDto; import org.fuseri.model.dto.course.LanguageTypeDto; import org.fuseri.model.dto.course.ProficiencyLevelDto; import org.fuseri.model.dto.user.AddressDto; @@ -36,7 +36,7 @@ class CertificateControllerTests { private final UserDto USER = new UserDto("novakovat", "novakova@gamil.com", "Tereza", "Nováková", new AddressDto(), UserType.STUDENT); - private final CourseDto COURSE = new CourseDto("AJ1", 10, + private final CourseCertificateDto COURSE = new CourseCertificateDto("AJ1", 10, LanguageTypeDto.ENGLISH, ProficiencyLevelDto.A1); private final CertificateCreateDto certificateCreateDto = new CertificateCreateDto(USER, COURSE); private final CertificateSimpleDto certificateDto = new CertificateSimpleDto(0L, USER.getId(), diff --git a/application/module-certificate/src/test/java/org/fuseri/modulecertificate/CertificateFacadeTests.java b/application/module-certificate/src/test/java/org/fuseri/modulecertificate/CertificateFacadeTests.java index 7ef75612..99784c04 100644 --- a/application/module-certificate/src/test/java/org/fuseri/modulecertificate/CertificateFacadeTests.java +++ b/application/module-certificate/src/test/java/org/fuseri/modulecertificate/CertificateFacadeTests.java @@ -2,7 +2,7 @@ package org.fuseri.modulecertificate; import org.fuseri.model.dto.certificate.CertificateCreateDto; import org.fuseri.model.dto.certificate.CertificateSimpleDto; -import org.fuseri.model.dto.course.CourseDto; +import org.fuseri.model.dto.course.CourseCertificateDto; import org.fuseri.model.dto.course.LanguageTypeDto; import org.fuseri.model.dto.course.ProficiencyLevelDto; import org.fuseri.model.dto.user.AddressDto; @@ -35,7 +35,7 @@ import static org.mockito.Mockito.when; final class CertificateFacadeTests { private final UserDto USER = new UserDto("novakovat", "novakova@gamil.com", "Tereza", "Nováková", new AddressDto(), UserType.STUDENT); - private final CourseDto COURSE = new CourseDto("AJ1", 10, + private final CourseCertificateDto COURSE = new CourseCertificateDto("AJ1", 10, LanguageTypeDto.ENGLISH, ProficiencyLevelDto.A1); private final CertificateCreateDto certificateCreateDto = new CertificateCreateDto(USER, COURSE); private final CertificateSimpleDto certificateDto = new CertificateSimpleDto(0L, USER.getId(), diff --git a/application/module-certificate/src/test/java/org/fuseri/modulecertificate/CertificateMapperTests.java b/application/module-certificate/src/test/java/org/fuseri/modulecertificate/CertificateMapperTests.java index b683de8a..7f66f907 100644 --- a/application/module-certificate/src/test/java/org/fuseri/modulecertificate/CertificateMapperTests.java +++ b/application/module-certificate/src/test/java/org/fuseri/modulecertificate/CertificateMapperTests.java @@ -2,7 +2,7 @@ package org.fuseri.modulecertificate; import org.fuseri.model.dto.certificate.CertificateCreateDto; import org.fuseri.model.dto.certificate.CertificateSimpleDto; -import org.fuseri.model.dto.course.CourseDto; +import org.fuseri.model.dto.course.CourseCertificateDto; import org.fuseri.model.dto.course.LanguageTypeDto; import org.fuseri.model.dto.course.ProficiencyLevelDto; import org.fuseri.model.dto.user.AddressDto; @@ -27,7 +27,7 @@ final class CertificateMapperTests { private final UserDto USER = new UserDto("novakovat", "novakova@gamil.com", "Tereza", "Nováková", new AddressDto(), UserType.STUDENT); - private final CourseDto COURSE = new CourseDto("AJ1", 10, + private final CourseCertificateDto COURSE = new CourseCertificateDto("AJ1", 10, LanguageTypeDto.ENGLISH, ProficiencyLevelDto.A1); private final Instant instant = Instant.now(); private final String fileName = "fileName"; -- GitLab