1
0
forked from PGL/Clyde

Request and changes

This commit is contained in:
2024-04-19 21:29:45 +02:00
parent a2be04bfb3
commit bd1c236635
22 changed files with 967 additions and 68 deletions

View File

@ -0,0 +1,93 @@
package ovh.herisson.Clyde.Services;
import org.springframework.stereotype.Service;
import ovh.herisson.Clyde.Repositories.*;
import ovh.herisson.Clyde.Tables.*;
import java.sql.SQLOutput;
import java.util.Map;
@Service
public class LessonRequestService {
private final LessonChangesRequestRepository lessonChangesRepo;
private final UserRepository userRepo;
private final LessonRepository lessonRepo;
private final LessonService lessonServ;
private final ScheduleLessonRepository scheduleLessonRepo;
private final ScheduleRepository scheduleRepository;
private final ScheduleLessonService scheduleLessonService;
private final CourseRepository courseRepository;
public LessonRequestService(LessonChangesRequestRepository lessonChangesRepo,
UserRepository userRepo, LessonRepository lessonRepo,
LessonService lessonServ, ScheduleLessonRepository scheduleLessonRepo, ScheduleRepository scheduleRepository, ScheduleLessonService scheduleLessonService, CourseRepository courseRepository) {
this.lessonChangesRepo = lessonChangesRepo;
this.userRepo = userRepo;
this.lessonRepo = lessonRepo;
this.lessonServ = lessonServ;
this.scheduleLessonRepo = scheduleLessonRepo;
this.scheduleRepository = scheduleRepository;
this.scheduleLessonService = scheduleLessonService;
this.courseRepository = courseRepository;
}
public Iterable<LessonChangesRequest> findOwnRequests(User user){
return lessonChangesRepo.findOwnRequests(user);
}
public LessonChangesRequest save(LessonChangesRequest lessonRequest){
return lessonChangesRepo.save(lessonRequest);
}
public LessonChangesRequest findById(long id){
return lessonChangesRepo.findById(id);
}
public Iterable<LessonChangesRequest> getAll(){return lessonChangesRepo.findAll();}
public boolean modifyCreateRequestState(LessonChangesRequest lessonRequest, RequestState state, String local ){
if(lessonRequest == null || state == lessonRequest.getState() || state == null){
return false;}
if (state == RequestState.Accepted){
Course course = courseRepository.findById(lessonRequest.getCourse().getCourseID());
if(courseRepository.findById(lessonRequest.getCourse().getCourseID())==null|| local == null){
return false;}
Lesson lesson = new Lesson(
course,
lessonRequest.getLessonStart(),
lessonRequest.getLessonEnd(),
lessonRequest.getColor(),
local,
lessonRequest.getLessonType());
lesson = lessonRepo.save(lesson);
scheduleLessonService.saveToAllSchedule(lesson);
}
lessonRequest.setState(state);
save(lessonRequest);
return true;
}
public boolean modifyChangeRequestState(Map<String, Object> updates, long lessonId,RequestState state){
if(state == RequestState.Accepted){
System.out.println(updates.toString());
Lesson lesson = lessonServ.findById(lessonId);
return lessonServ.modifyData(lesson.getLessonID(),updates);
}
return true;
}
public void modifyDeleleRequest(LessonChangesRequest lessonChangesRequest, RequestState state){
if(state == RequestState.Accepted){
lessonServ.delete(lessonServ.findById(lessonChangesRequest.getLesson()));
lessonChangesRequest.setState(state);}
}
public void delete (LessonChangesRequest toDelete) {
lessonChangesRepo.delete(toDelete);
}
}

View File

@ -68,17 +68,11 @@ public class LessonService {
public boolean modifyData(long id, Map<String ,Object> updates){
Lesson target = lessonRepo.findById(id);
System.out.println(target);
if(target == null)
return false;
System.out.println("test");
System.out.println(updates.entrySet());
for (Map.Entry<String , Object> entry: updates.entrySet()){
System.out.println(entry);
switch (entry.getKey()){
case "lessonStart":
target.setLessonStart((String) entry.getValue());

View File

@ -1,9 +1,6 @@
package ovh.herisson.Clyde.Services;
import ovh.herisson.Clyde.Tables.Course;
import ovh.herisson.Clyde.Tables.InscriptionRequest;
import ovh.herisson.Clyde.Tables.Lesson;
import ovh.herisson.Clyde.Tables.User;
import ovh.herisson.Clyde.Tables.*;
import java.util.ArrayList;
import java.util.HashMap;
@ -119,6 +116,32 @@ public class ProtectionService {
return toReturn;
}
public static Map<String, Object> lessonRequestWithoutPassword(LessonChangesRequest lessonRequest){
if (lessonRequest == null)
return null;
Map<String, Object> toReturn = new HashMap<>();
toReturn.put("id", lessonRequest.getId());
toReturn.put("lessonStart", lessonRequest.getLessonStart());
toReturn.put("lessonEnd", lessonRequest.getLessonEnd());
toReturn.put("lessonType",lessonRequest.getLessonType());
toReturn.put("course", courseWithoutPassword(lessonRequest.getCourse()));
toReturn.put("user", userWithoutPassword(lessonRequest.getUser()));
toReturn.put("requestType", lessonRequest.getRequestType());
toReturn.put("state", lessonRequest.getState());
toReturn.put("lessonId",lessonRequest.getLesson());
return toReturn;
}
public static Iterable<Map<String, Object>> lessonRequestsWithoutPassword(Iterable<LessonChangesRequest> lessonChangesRequests){
ArrayList<Map<String,Object>> toReturn = new ArrayList<>();
for(LessonChangesRequest lessonChangeRequest: lessonChangesRequests){
toReturn.add(lessonRequestWithoutPassword(lessonChangeRequest));
}
return toReturn;
}
public static Iterable<Map<String ,Object>> requestsWithoutPasswords(Iterable<InscriptionRequest> inscriptionRequests){
ArrayList<Map<String,Object>> toReturn = new ArrayList<>();

View File

@ -9,6 +9,7 @@ import ovh.herisson.Clyde.Tables.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
@Service
public class ScheduleLessonService {
@ -30,6 +31,16 @@ public class ScheduleLessonService {
return true;
}
public boolean saveToAllSchedule(Lesson lesson){
Iterable<Schedule> schedules = scheduleRepo.findAllLessonSchedule(lesson.getCourse());
if(schedules == null)
return false;
for (Schedule schedule : schedules){
save(new ScheduleLesson(schedule, lesson));
}
return true;
}
public boolean delete(long lessonId){
if(lessonId == 0)
return false;

View File

@ -14,7 +14,7 @@ public class ScheduleService {
return scheduleRepo.save(schedule);
}
public Schedule findById(long id){
return scheduleRepo.findById(id);
return scheduleRepo.getById(id);
}
public void delete(Schedule schedule){
scheduleRepo.delete(schedule);