diff --git a/src/main/java/com/booleanuk/cohorts/controllers/CohortController.java b/src/main/java/com/booleanuk/cohorts/controllers/CohortController.java index 3900a9a..2e02ac8 100644 --- a/src/main/java/com/booleanuk/cohorts/controllers/CohortController.java +++ b/src/main/java/com/booleanuk/cohorts/controllers/CohortController.java @@ -6,6 +6,7 @@ import com.booleanuk.cohorts.payload.request.ProfileRequest; import com.booleanuk.cohorts.payload.response.*; import org.springframework.beans.factory.annotation.Autowired; + import com.booleanuk.cohorts.repository.CohortRepository; import com.booleanuk.cohorts.repository.CourseRepository; import com.booleanuk.cohorts.repository.ProfileRepository; @@ -13,6 +14,9 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -77,7 +81,11 @@ public ResponseEntity addCohort(@RequestBody CohortRequest cohortRequest){ if (name.isBlank()) return new ResponseEntity<>("Name cannot be blank", HttpStatus.BAD_REQUEST); - Cohort cohort = new Cohort(cohortRequest.getName(), course); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy"); + LocalDate startDate = LocalDate.parse(cohortRequest.getStartDate().trim(), formatter); + LocalDate endDate = LocalDate.parse(cohortRequest.getEndDate().trim(), formatter); + + Cohort cohort = new Cohort(cohortRequest.getName(),startDate,endDate,course); return ResponseEntity.ok(cohortRepository.save(cohort)); } @@ -92,6 +100,11 @@ public ResponseEntity editCohortById(@PathVariable int id, @RequestBody Cohor String name = cohortRequest.getName(); if (name.isBlank()) return new ResponseEntity<>("Name cannot be blank", HttpStatus.BAD_REQUEST); + + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy"); + LocalDate startDate = LocalDate.parse(cohortRequest.getStartDate(),formatter); + LocalDate endDate = LocalDate.parse(cohortRequest.getEndDate(),formatter); + List profiles = profileRepository.findAll().stream().filter(it -> cohortRequest.getProfileIds().contains(it.getId())).collect(Collectors.toList()); @@ -108,6 +121,8 @@ public ResponseEntity editCohortById(@PathVariable int id, @RequestBody Cohor cohort.setProfiles(profiles); cohort.setCourse(course); cohort.setName(cohortRequest.getName()); + cohort.setStartDate(startDate); + cohort.setEndDate(endDate); return ResponseEntity.ok(cohortRepository.save(cohort)); } diff --git a/src/main/java/com/booleanuk/cohorts/models/Cohort.java b/src/main/java/com/booleanuk/cohorts/models/Cohort.java index e7f1712..2201c10 100644 --- a/src/main/java/com/booleanuk/cohorts/models/Cohort.java +++ b/src/main/java/com/booleanuk/cohorts/models/Cohort.java @@ -1,13 +1,14 @@ package com.booleanuk.cohorts.models; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; + + import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.time.LocalDate; import java.util.List; @@ -23,6 +24,12 @@ public class Cohort { @Column private String name; + + @Column + private LocalDate startDate; + + @Column + private LocalDate endDate; @ManyToOne @JoinColumn(name = "course_id") @@ -39,7 +46,8 @@ public Cohort(int id) { } - public Cohort(String name, List profiles, Course course){ + + public Cohort(String name, List profiles, LocalDate startDate, LocalDate endDate, Course course){ this.name = name; this.profiles = profiles; this.course = course; @@ -49,8 +57,10 @@ public Cohort(String name){ this.name = name; } - public Cohort(String name, Course course){ + public Cohort(String name,LocalDate startDate, LocalDate endDate ,Course course){ this.name = name; + this.startDate = startDate; + this.endDate = endDate; this.course = course; } @@ -61,6 +71,8 @@ public Cohort(int id, String name) { @Override public String toString(){ - return "Cohort Id: " + this.id; + return "Cohort Id: " + this.id + "\n" + + "Start date: " + this.startDate + + "End date: " + this.startDate; } } diff --git a/src/main/java/com/booleanuk/cohorts/payload/request/CohortRequest.java b/src/main/java/com/booleanuk/cohorts/payload/request/CohortRequest.java index f5864ce..919f410 100644 --- a/src/main/java/com/booleanuk/cohorts/payload/request/CohortRequest.java +++ b/src/main/java/com/booleanuk/cohorts/payload/request/CohortRequest.java @@ -9,5 +9,8 @@ public class CohortRequest { private String name; private int courseId; + private String startDate; + private String endDate; + public CohortRequest(){}} diff --git a/src/main/java/com/booleanuk/cohorts/payload/request/CohortRequestWithProfiles.java b/src/main/java/com/booleanuk/cohorts/payload/request/CohortRequestWithProfiles.java index fc6f540..0d5c954 100644 --- a/src/main/java/com/booleanuk/cohorts/payload/request/CohortRequestWithProfiles.java +++ b/src/main/java/com/booleanuk/cohorts/payload/request/CohortRequestWithProfiles.java @@ -1,7 +1,5 @@ package com.booleanuk.cohorts.payload.request; -import com.booleanuk.cohorts.models.Course; -import com.booleanuk.cohorts.models.Profile; import lombok.Getter; import lombok.Setter; @@ -12,6 +10,8 @@ public class CohortRequestWithProfiles { private String name; private int courseId; + private String startDate; + private String endDate; private List profileIds; public CohortRequestWithProfiles(){}}