Skip to content

Commit 77a1d1d

Browse files
author
Hattinger04
committed
fixing 2.0
1 parent 4bf8975 commit 77a1d1d

File tree

3 files changed

+85
-46
lines changed

3 files changed

+85
-46
lines changed

src/main/java/io/github/Hattinger04/course/CourseController.java

Lines changed: 16 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import io.github.Hattinger04.course.model.course.Course;
2020
import io.github.Hattinger04.course.model.exercise.Exercise;
2121
import io.github.Hattinger04.course.model.student.Student;
22-
import io.github.Hattinger04.course.model.teacher.Teacher;
2322
import io.github.Hattinger04.user.model.User;
2423

2524
@RestController
@@ -100,8 +99,8 @@ public ResponseEntity<?> getCourseTeacher(@RequestBody String json) {
10099
@PutMapping("/createCourse")
101100
@ResponseBody
102101
public ResponseEntity<?> createCourse(@RequestBody String json) {
103-
courseService.createCourse((Course) restServices.deserialize(Course.class, json));
104-
return new ResponseEntity<>(HttpStatus.OK);
102+
return courseService.createCourse((Course) restServices.deserialize(Course.class, json)) != null ?
103+
new ResponseEntity<>(HttpStatus.OK) : new ResponseEntity<>("Could not create course!", HttpStatus.NOT_IMPLEMENTED);
105104
}
106105

107106
/**
@@ -115,8 +114,8 @@ public ResponseEntity<?> createCourse(@RequestBody String json) {
115114
@DeleteMapping("/deleteCourse")
116115
@ResponseBody
117116
public ResponseEntity<?> deleteCourse(@RequestBody String json) {
118-
courseService.deleteCourse((Course) restServices.deserialize(Course.class, json));
119-
return new ResponseEntity<>(HttpStatus.OK);
117+
return courseService.deleteCourse((Course) restServices.deserialize(Course.class, json)) ?
118+
new ResponseEntity<>(HttpStatus.OK) : new ResponseEntity<>("Could not delete course!", HttpStatus.NOT_MODIFIED);
120119
}
121120

122121
/**
@@ -130,11 +129,9 @@ public ResponseEntity<?> deleteCourse(@RequestBody String json) {
130129
@PostMapping("/addStudentCourse")
131130
@ResponseBody
132131
public ResponseEntity<?> addStudentCourse(@RequestBody String json) {
133-
// TODO: not sure if that will work - probably not
134-
Course course = (Course) restServices.deserialize(Course.class, json);
135-
Student student = (Student) restServices.deserialize(Student.class, json);
136-
courseService.addStudentToCourse(course, student);
137-
return new ResponseEntity<>(HttpStatus.OK);
132+
Object[] objects = restServices.deserializeMany(new Class[] {Course.class, Student.class}, json);
133+
return courseService.addStudentToCourse((Course) objects[0], (Student) objects[1]) ?
134+
new ResponseEntity<>(HttpStatus.OK) : new ResponseEntity<>("Could not add student to course!", HttpStatus.NOT_IMPLEMENTED);
138135
}
139136

140137
/**
@@ -148,11 +145,9 @@ public ResponseEntity<?> addStudentCourse(@RequestBody String json) {
148145
@DeleteMapping("/removeStudentCourse")
149146
@ResponseBody
150147
public ResponseEntity<?> removeStudentCourse(@RequestBody String json) {
151-
// TODO: not sure if that will work - probably not
152-
Course course = (Course) restServices.deserialize(Course.class, json);
153-
Student student = (Student) restServices.deserialize(Student.class, json);
154-
courseService.removeStudentFromCourse(course, student);
155-
return new ResponseEntity<>(HttpStatus.OK);
148+
Object[] objects = restServices.deserializeMany(new Class[] {Course.class, Student.class}, json);
149+
return courseService.removeStudentFromCourse((Course) objects[0], (Student) objects[1]) ?
150+
new ResponseEntity<>(HttpStatus.OK) : new ResponseEntity<>("Could not remove student from course!", HttpStatus.NOT_MODIFIED);
156151
}
157152

158153
/**
@@ -166,8 +161,8 @@ public ResponseEntity<?> removeStudentCourse(@RequestBody String json) {
166161
@PutMapping("/createExercise")
167162
@ResponseBody
168163
public ResponseEntity<?> createExercise(@RequestBody String json) {
169-
courseService.createExercise((Exercise) restServices.deserialize(Exercise.class, json));
170-
return new ResponseEntity<>(HttpStatus.OK);
164+
return courseService.createExercise((Exercise) restServices.deserialize(Exercise.class, json)) != null ?
165+
new ResponseEntity<>(HttpStatus.OK) : new ResponseEntity<>("Could not create exercise!", HttpStatus.NOT_IMPLEMENTED);
171166
}
172167

173168
/**
@@ -181,8 +176,8 @@ public ResponseEntity<?> createExercise(@RequestBody String json) {
181176
@PostMapping("/patchExercise")
182177
@ResponseBody
183178
public ResponseEntity<?> patchExercise(@RequestBody String json) {
184-
courseService.createExercise((Exercise) restServices.deserialize(Exercise.class, json));
185-
return new ResponseEntity<>(HttpStatus.OK);
179+
return courseService.createExercise((Exercise) restServices.deserialize(Exercise.class, json)) != null ?
180+
new ResponseEntity<>(HttpStatus.OK) : new ResponseEntity<>("Could not patch exercise!", HttpStatus.NOT_IMPLEMENTED);
186181
}
187182

188183
/**
@@ -196,8 +191,8 @@ public ResponseEntity<?> patchExercise(@RequestBody String json) {
196191
@PutMapping("/deleteExercise")
197192
@ResponseBody
198193
public ResponseEntity<?> deleteExercise(@RequestBody String json) {
199-
courseService.deleteExercise((Exercise) restServices.deserialize(Exercise.class, json));
200-
return new ResponseEntity<>(HttpStatus.OK);
194+
return courseService.deleteExercise((Exercise) restServices.deserialize(Exercise.class, json)) ?
195+
new ResponseEntity<>(HttpStatus.OK) : new ResponseEntity<>("Could not delete exercise!", HttpStatus.NOT_IMPLEMENTED);
201196
}
202197

203198
/**

src/main/java/io/github/Hattinger04/course/model/CourseService.java

Lines changed: 69 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,13 @@ public Course createCourse(Course course) {
4545
return courseRepository.save(course);
4646
}
4747

48-
public void deleteCourse(Course course) {
49-
courseRepository.delete(course);
48+
public boolean deleteCourse(Course course) {
49+
try {
50+
courseRepository.delete(course);
51+
return true;
52+
} catch (IllegalArgumentException e) {
53+
return false;
54+
}
5055
}
5156

5257
public Course getCourseByID(int id) {
@@ -77,38 +82,68 @@ public User getCourseTeacher(Course course) {
7782
return courseRepository.getCourseTeacher(course.getId());
7883
}
7984

80-
public void setCourseTeacher(Course course, Teacher teacher) {
81-
teacherRepository.save(teacher);
82-
courseRepository.addUserToCourse(teacher.getId(), course.getId());
85+
public boolean setCourseTeacher(Course course, Teacher teacher) {
86+
try {
87+
teacherRepository.save(teacher);
88+
courseRepository.addUserToCourse(teacher.getId(), course.getId());
89+
return true;
90+
} catch (IllegalArgumentException e) {
91+
return false;
92+
}
8393
}
8494

85-
public void deleteCourseTeacher(Course course, Teacher teacher) {
86-
teacherRepository.delete(teacher);
87-
courseRepository.removeUserFromCourse(teacher.getId(), course.getId());
95+
public boolean deleteCourseTeacher(Course course, Teacher teacher) {
96+
try {
97+
teacherRepository.delete(teacher);
98+
courseRepository.removeUserFromCourse(teacher.getId(), course.getId());
99+
return true;
100+
} catch (IllegalArgumentException e) {
101+
return false;
102+
}
88103
}
89104

90105
// TODO: working with student / teacher table
91-
public void addStudentToCourse(Course course, Student student) {
92-
studentRepository.save(student);
93-
courseRepository.addUserToCourse(student.getId(), course.getId());
94-
}
95-
96-
public void addStudentsToCourse(Course course, Set<Student> students) {
97-
for (Student student : students) {
106+
public boolean addStudentToCourse(Course course, Student student) {
107+
try {
98108
studentRepository.save(student);
99109
courseRepository.addUserToCourse(student.getId(), course.getId());
110+
return true;
111+
} catch (IllegalArgumentException e) {
112+
return false;
100113
}
101114
}
102115

103-
public void removeStudentFromCourse(Course course, Student student) {
104-
studentRepository.delete(student);
105-
courseRepository.removeUserFromCourse(student.getId(), student.getId());
116+
public boolean addStudentsToCourse(Course course, Set<Student> students) {
117+
try {
118+
for (Student student : students) {
119+
studentRepository.save(student);
120+
courseRepository.addUserToCourse(student.getId(), course.getId());
121+
}
122+
return true;
123+
} catch (IllegalArgumentException e) {
124+
return false;
125+
}
106126
}
107127

108-
public void removeStudentsFromCourse(Course course, Set<Student> students) {
109-
for (Student student : students) {
128+
public boolean removeStudentFromCourse(Course course, Student student) {
129+
try {
110130
studentRepository.delete(student);
111131
courseRepository.removeUserFromCourse(student.getId(), student.getId());
132+
return true;
133+
} catch (IllegalArgumentException e) {
134+
return false;
135+
}
136+
}
137+
138+
public boolean removeStudentsFromCourse(Course course, Set<Student> students) {
139+
try {
140+
for (Student student : students) {
141+
studentRepository.delete(student);
142+
courseRepository.removeUserFromCourse(student.getId(), student.getId());
143+
}
144+
return true;
145+
} catch (IllegalArgumentException e) {
146+
return false;
112147
}
113148
}
114149

@@ -129,8 +164,13 @@ public Exercise createExercise(Exercise exercise) {
129164
return exerciseRepository.save(exercise);
130165
}
131166

132-
public void deleteExercise(Exercise exercise) {
133-
exerciseRepository.delete(exercise);
167+
public boolean deleteExercise(Exercise exercise) {
168+
try {
169+
exerciseRepository.delete(exercise);
170+
return true;
171+
} catch (IllegalArgumentException e) {
172+
return false;
173+
}
134174
}
135175

136176
public Exercise getExerciseByID(int id) {
@@ -152,8 +192,13 @@ public Solution createSolution(Solution solution) {
152192
return solutionRepository.save(solution);
153193
}
154194

155-
public void deleteSolution(Solution solution) {
156-
solutionRepository.delete(solution);
195+
public boolean deleteSolution(Solution solution) {
196+
try {
197+
solutionRepository.delete(solution);
198+
return true;
199+
} catch (IllegalArgumentException e) {
200+
return false;
201+
}
157202
}
158203

159204
public Solution getSolutionByID(int id) {

src/main/java/io/github/Hattinger04/course/model/solution/Solution.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package io.github.Hattinger04.course.model.solution;
22

3-
43
import javax.persistence.Column;
54
import javax.persistence.Entity;
65
import javax.persistence.GeneratedValue;

0 commit comments

Comments
 (0)