Max/Backend/CoursesEndpoints (#129)
All checks were successful
Build and test backend / Build-backend (push) Successful in 2m16s
Build and test backend / Test-backend (push) Successful in 1m24s
deploy to production / deploy-frontend (push) Successful in 26s
deploy to production / deploy-backend (push) Successful in 2m22s
Build and test FrontEnd / Build-frontend (push) Successful in 26s
All checks were successful
Build and test backend / Build-backend (push) Successful in 2m16s
Build and test backend / Test-backend (push) Successful in 1m24s
deploy to production / deploy-frontend (push) Successful in 26s
deploy to production / deploy-backend (push) Successful in 2m22s
Build and test FrontEnd / Build-frontend (push) Successful in 26s
PLZ FIX Reviewed-on: #129 Reviewed-by: Wal <karpinskiwal@gmail.com> Reviewed-by: Debucquoy Anthony <d.tonitch@gmail.com> Co-authored-by: Bartha Maxime <231026@umons.ac.be> Co-committed-by: Bartha Maxime <231026@umons.ac.be>
This commit is contained in:
@ -50,5 +50,18 @@ public class AuthenticatorService {
|
||||
return poster.getRole() != Role.Secretary || poster.getRole() != Role.Admin;
|
||||
}
|
||||
|
||||
public boolean IsNotIn(Role[] roles, String token){
|
||||
if (token == null)
|
||||
return true;
|
||||
|
||||
User poster = getUserFromToken(token);
|
||||
if (poster == null) return true;
|
||||
|
||||
for (Role r:roles){
|
||||
if (poster.getRole() == r)
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -3,6 +3,10 @@ package ovh.herisson.Clyde.Services;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ovh.herisson.Clyde.Repositories.CourseRepository;
|
||||
import ovh.herisson.Clyde.Tables.Course;
|
||||
import ovh.herisson.Clyde.Tables.Role;
|
||||
import ovh.herisson.Clyde.Tables.User;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
public class CourseService {
|
||||
@ -13,11 +17,39 @@ public class CourseService {
|
||||
this.courseRepo = courseRepo;
|
||||
}
|
||||
|
||||
public void save(Course course){
|
||||
courseRepo.save(course);
|
||||
public Course save(Course course){
|
||||
return courseRepo.save(course);
|
||||
}
|
||||
|
||||
public Course findById(long id){
|
||||
return courseRepo.findById(id);
|
||||
}
|
||||
|
||||
public Course modifyData(long id, Map<String, Object> updates, Role role) {
|
||||
Course target = courseRepo.findById(id);
|
||||
|
||||
if (role == Role.Teacher){
|
||||
for (Map.Entry<String, Object> entry : updates.entrySet()){
|
||||
if (entry.getKey().equals("title")){
|
||||
target.setTitle((String) entry.getValue());
|
||||
return courseRepo.save(target);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (Map.Entry<String ,Object> entry: updates.entrySet()){
|
||||
switch (entry.getKey()){
|
||||
case "title":
|
||||
target.setTitle((String) entry.getValue());
|
||||
break;
|
||||
case "credits":
|
||||
target.setCredits((Integer) entry.getValue());
|
||||
break;
|
||||
case "owner":
|
||||
target.setOwner((User) entry.getValue()); //todo check if is a teacher !
|
||||
break;
|
||||
}
|
||||
}
|
||||
return courseRepo.save(target);
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,39 @@
|
||||
package ovh.herisson.Clyde.Services;
|
||||
|
||||
import org.springframework.stereotype.Controller;
|
||||
import ovh.herisson.Clyde.Repositories.TeacherCourseRepository;
|
||||
import ovh.herisson.Clyde.Repositories.UserRepository;
|
||||
import ovh.herisson.Clyde.Tables.Course;
|
||||
import ovh.herisson.Clyde.Tables.TeacherCourse;
|
||||
import ovh.herisson.Clyde.Tables.User;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@Controller
|
||||
public class TeacherCourseService {
|
||||
private final TeacherCourseRepository teacherCourseRepo;
|
||||
|
||||
private final UserRepository userRepo;
|
||||
|
||||
public TeacherCourseService(TeacherCourseRepository teacherCourseRepo, UserRepository userRepo) {
|
||||
this.teacherCourseRepo = teacherCourseRepo;
|
||||
this.userRepo = userRepo;
|
||||
}
|
||||
|
||||
public boolean saveAll(Iterable<Long> teacherIds, Course course){
|
||||
|
||||
ArrayList<Long> addedIds = new ArrayList<>();
|
||||
for (Long teacherId : teacherIds){
|
||||
User teacher = userRepo.findById((long) teacherId);
|
||||
if ( teacher== null){
|
||||
return false;
|
||||
}
|
||||
if (!addedIds.contains(teacherId))
|
||||
{
|
||||
teacherCourseRepo.save(new TeacherCourse(teacher,course));
|
||||
addedIds.add(teacherId);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user