diff --git a/back-skeleton/pom.xml b/back-skeleton/pom.xml index c868e94a94be6eb962ba2b516681dc1acc08d135..25449a5bcee91cdca0e6a0142404c2be2e7e23cb 100644 --- a/back-skeleton/pom.xml +++ b/back-skeleton/pom.xml @@ -15,7 +15,6 @@ <description>Skeleton of an API project</description> <properties> <java.version>17</java.version> - <lombok.version>1.18.34</lombok.version> <springdoc.version>2.2.0</springdoc.version> </properties> <dependencies> @@ -38,12 +37,6 @@ <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> - <dependency> - <groupId>org.projectlombok</groupId> - <artifactId>lombok</artifactId> - <version>${lombok.version}</version> - <scope>provided</scope> - </dependency> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/DTO/StudentDto.java b/back-skeleton/src/main/java/com/takima/backskeleton/DTO/StudentDto.java index f0a938e4e71220209be8dac51139331a4cdb4d3d..1c5c92b6f57fd963eaaedf6296423b603d7a2e61 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/DTO/StudentDto.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/DTO/StudentDto.java @@ -2,19 +2,83 @@ package com.takima.backskeleton.DTO; import com.takima.backskeleton.models.Course; import com.takima.backskeleton.models.Major; -import com.takima.backskeleton.models.Student; -import lombok.Builder; -import lombok.Getter; -import org.springframework.web.multipart.MultipartFile; import java.time.Instant; import java.util.List; -@Builder -@Getter public class StudentDto { private String firstName; private String lastName; private Instant birthdate; private List<Course> courses; private Major major; + + public String getFirstName() { + return firstName; + } + + public String getLastName() { + return lastName; + } + + public Instant getBirthdate() { + return birthdate; + } + + public List<Course> getCourses() { + return courses; + } + + public Major getMajor() { + return major; + } + + public static final class StudentDtoBuilder { + private String firstName; + private String lastName; + private Instant birthdate; + private List<Course> courses; + private Major major; + + public StudentDtoBuilder() { + } + + public static StudentDtoBuilder aStudentDto() { + return new StudentDtoBuilder(); + } + + public StudentDtoBuilder firstName(String firstName) { + this.firstName = firstName; + return this; + } + + public StudentDtoBuilder lastName(String lastName) { + this.lastName = lastName; + return this; + } + + public StudentDtoBuilder birthdate(Instant birthdate) { + this.birthdate = birthdate; + return this; + } + + public StudentDtoBuilder courses(List<Course> courses) { + this.courses = courses; + return this; + } + + public StudentDtoBuilder major(Major major) { + this.major = major; + return this; + } + + public StudentDto build() { + StudentDto studentDto = new StudentDto(); + studentDto.lastName = this.lastName; + studentDto.major = this.major; + studentDto.firstName = this.firstName; + studentDto.birthdate = this.birthdate; + studentDto.courses = this.courses; + return studentDto; + } + } } diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/DTO/StudentMapper.java b/back-skeleton/src/main/java/com/takima/backskeleton/DTO/StudentMapper.java index 17a583bdab7c46bb0ec5ce602ff7bcdd87fe8ff9..23dc20374fa0b013e296452a6550a5cc3e25155b 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/DTO/StudentMapper.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/DTO/StudentMapper.java @@ -17,7 +17,7 @@ public class StudentMapper { } public static StudentDto toDto (Student student){ - return StudentDto.builder() + return new StudentDto.StudentDtoBuilder() .firstName(student.getFirstName()) .lastName(student.getLastName()) .birthdate(student.getBirthdate()) diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/controllers/CourseController.java b/back-skeleton/src/main/java/com/takima/backskeleton/controllers/CourseController.java index b7425bf7a017facb226767951d6f47b29089e1b2..f59acc31947bcd2ba69315eda3de58914ecb0c86 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/controllers/CourseController.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/controllers/CourseController.java @@ -2,7 +2,6 @@ package com.takima.backskeleton.controllers; import com.takima.backskeleton.models.Course; import com.takima.backskeleton.services.CourseService; -import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -13,10 +12,13 @@ import java.util.List; @CrossOrigin @RequestMapping("courses") @RestController -@RequiredArgsConstructor public class CourseController { private final CourseService courseService; + public CourseController(CourseService courseService) { + this.courseService = courseService; + } + @GetMapping("") public List<Course> getAllCourses() { return courseService.findAll(); diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/controllers/MajorController.java b/back-skeleton/src/main/java/com/takima/backskeleton/controllers/MajorController.java index b5315436e961bf04170d34178c6838011e7e669d..67d121dddf0628831fe916a5bf666e8fe4127920 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/controllers/MajorController.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/controllers/MajorController.java @@ -3,18 +3,24 @@ package com.takima.backskeleton.controllers; import com.takima.backskeleton.models.Major; import com.takima.backskeleton.models.Student; import com.takima.backskeleton.services.MajorService; -import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import java.util.List; @CrossOrigin @RequestMapping("majors") @RestController -@RequiredArgsConstructor public class MajorController { private final MajorService majorService; + public MajorController(MajorService majorService) { + this.majorService = majorService; + } + @GetMapping("") public List<Major> findAll() { return majorService.findAll(); diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/controllers/StudentController.java b/back-skeleton/src/main/java/com/takima/backskeleton/controllers/StudentController.java index 4508fa5334c0b32c39e9232cbdcb9d822fc5aec3..d12708e3997cc7b8bbf4e57158f1acc992380198 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/controllers/StudentController.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/controllers/StudentController.java @@ -3,18 +3,28 @@ package com.takima.backskeleton.controllers; import com.takima.backskeleton.DTO.StudentDto; import com.takima.backskeleton.models.Student; import com.takima.backskeleton.services.StudentService; -import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; import java.util.List; @CrossOrigin @RequestMapping("students") @RestController -@RequiredArgsConstructor public class StudentController { private final StudentService studentService; + + public StudentController(StudentService studentService) { + this.studentService = studentService; + } + @GetMapping("") public List<Student> listStudents(@RequestParam(required = false) Integer majorId, @RequestParam(required = false) Integer courseId) { if (majorId != null && courseId !=null) { diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/models/Course.java b/back-skeleton/src/main/java/com/takima/backskeleton/models/Course.java index bf8cd46b1fa43c7fe8e85422032affb74d252b8e..242e968893969a0981fc4af8b49469ce350b1c75 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/models/Course.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/models/Course.java @@ -1,16 +1,17 @@ package com.takima.backskeleton.models; import com.fasterxml.jackson.annotation.JsonIgnore; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.NoArgsConstructor; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.ManyToMany; +import jakarta.persistence.Table; import java.util.List; @Entity @Table(name = "courses") -@NoArgsConstructor -@Getter public class Course { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -20,4 +21,23 @@ public class Course { @ManyToMany(mappedBy = "courses") @JsonIgnore List<Student> students; + + public Course() { + } + + public Long getId() { + return id; + } + + public String getName() { + return name; + } + + public Integer getHours() { + return hours; + } + + public List<Student> getStudents() { + return students; + } } diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/models/Major.java b/back-skeleton/src/main/java/com/takima/backskeleton/models/Major.java index 4746c4c0c82ccde04c18d5ff016b360056a11438..d42153d3719d223cba635b27527c817d46a50e38 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/models/Major.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/models/Major.java @@ -1,16 +1,17 @@ package com.takima.backskeleton.models; import com.fasterxml.jackson.annotation.JsonIgnore; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.NoArgsConstructor; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; import java.util.List; @Entity @Table(name = "majors") -@Getter -@NoArgsConstructor public class Major { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -21,5 +22,23 @@ public class Major { @JsonIgnore private List<Student> students; + public Major() { + } + + public Long getId() { + return id; + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + public List<Student> getStudents() { + return students; + } } diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/models/Student.java b/back-skeleton/src/main/java/com/takima/backskeleton/models/Student.java index 59e05c03efb417b06549999a0f82e2e14e6f7e98..3b16f32866fbcdf8745d40900594fe5b63bd3bd2 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/models/Student.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/models/Student.java @@ -1,14 +1,22 @@ package com.takima.backskeleton.models; -import jakarta.persistence.*; -import lombok.Getter; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.JoinTable; +import jakarta.persistence.ManyToMany; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import java.time.Instant; import java.util.List; @Entity @Table(name = "students") -@Getter public class Student { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -39,6 +47,30 @@ public class Student { public Student() { } + public Long getId() { + return id; + } + + public String getFirstName() { + return firstName; + } + + public String getLastName() { + return lastName; + } + + public Instant getBirthdate() { + return birthdate; + } + + public List<Course> getCourses() { + return courses; + } + + public Major getMajor() { + return major; + } + public static class Builder { private Long id; private String firstName; diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/services/CourseService.java b/back-skeleton/src/main/java/com/takima/backskeleton/services/CourseService.java index 68a553c6e7b69b8a648caa22515ec22cc1598be9..91374e36b084b51f9322cde26b86b4c807c8aa7b 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/services/CourseService.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/services/CourseService.java @@ -2,18 +2,18 @@ package com.takima.backskeleton.services; import com.takima.backskeleton.DAO.CourseDao; import com.takima.backskeleton.models.Course; -import com.takima.backskeleton.models.Major; -import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; -import java.util.ArrayList; import java.util.List; @Component -@RequiredArgsConstructor public class CourseService { private final CourseDao courseDao; + public CourseService(CourseDao courseDao) { + this.courseDao = courseDao; + } + public List<Course> findAll() { return courseDao.findAll(); } diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/services/MajorService.java b/back-skeleton/src/main/java/com/takima/backskeleton/services/MajorService.java index 03feb0f83a1796d353faf3d891e4afcd2da83f5d..c2a92142683395c04bfff46b588bd07cbc1b86a8 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/services/MajorService.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/services/MajorService.java @@ -3,16 +3,19 @@ package com.takima.backskeleton.services; import com.takima.backskeleton.DAO.MajorDao; import com.takima.backskeleton.models.Major; import com.takima.backskeleton.models.Student; -import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.List; @Component -@RequiredArgsConstructor public class MajorService { private final MajorDao majorDao; + + public MajorService(MajorDao majorDao) { + this.majorDao = majorDao; + } + public List<Major> findAll() { Iterable<Major> it = majorDao.findAll(); List <Major> majors = new ArrayList<>(); diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/services/StudentService.java b/back-skeleton/src/main/java/com/takima/backskeleton/services/StudentService.java index cc1e205bb02d50f5582d630d017db84fd1e7f5d4..be60038c11a350edf8cf515e446fe16f0b8251c4 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/services/StudentService.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/services/StudentService.java @@ -4,8 +4,6 @@ import com.takima.backskeleton.DAO.StudentDao; import com.takima.backskeleton.DTO.StudentDto; import com.takima.backskeleton.DTO.StudentMapper; import com.takima.backskeleton.models.Student; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -15,10 +13,13 @@ import java.util.List; import java.util.NoSuchElementException; @Service -@RequiredArgsConstructor public class StudentService { private final StudentDao studentDao; + public StudentService(StudentDao studentDao) { + this.studentDao = studentDao; + } + public List<Student> findAll() { Iterable<Student> it = studentDao.findAll(); List <Student> users = new ArrayList<>();