Skip to content
Merged
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 @@ -6,13 +6,17 @@
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;
import com.booleanuk.cohorts.repository.UserRepository;
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;
Expand Down Expand Up @@ -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));
}

Expand All @@ -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<Profile> profiles = profileRepository.findAll().stream().filter(it -> cohortRequest.getProfileIds().contains(it.getId())).collect(Collectors.toList());
Expand All @@ -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));
}
Expand Down
22 changes: 17 additions & 5 deletions src/main/java/com/booleanuk/cohorts/models/Cohort.java
Original file line number Diff line number Diff line change
@@ -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;


Expand All @@ -23,6 +24,12 @@ public class Cohort {

@Column
private String name;

@Column
private LocalDate startDate;

@Column
private LocalDate endDate;

@ManyToOne
@JoinColumn(name = "course_id")
Expand All @@ -39,7 +46,8 @@ public Cohort(int id) {
}


public Cohort(String name, List<Profile> profiles, Course course){

public Cohort(String name, List<Profile> profiles, LocalDate startDate, LocalDate endDate, Course course){
this.name = name;
this.profiles = profiles;
this.course = course;
Expand All @@ -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;
}

Expand All @@ -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;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,8 @@
public class CohortRequest {
private String name;
private int courseId;
private String startDate;
private String endDate;


public CohortRequest(){}}
Original file line number Diff line number Diff line change
@@ -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;

Expand All @@ -12,6 +10,8 @@
public class CohortRequestWithProfiles {
private String name;
private int courseId;
private String startDate;
private String endDate;
private List<Integer> profileIds;

public CohortRequestWithProfiles(){}}
Expand Down
Loading