Skip to content
Snippets Groups Projects
Commit 2e39b5a6 authored by Dominika Zemanovičová's avatar Dominika Zemanovičová Committed by Martin Gargalovič
Browse files

Add Question validation

parent e8723940
No related branches found
No related tags found
3 merge requests!31M2,!28M2 user,!27Draft: M2 user
package org.fuseri.model.dto.exercise;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor;
import lombok.Getter;
......@@ -8,7 +10,13 @@ import java.util.List;
@AllArgsConstructor
@Getter
public class QuestionCreateDto {
@NotBlank
private String text;
@NotBlank
private String exerciseId;
@Valid
private List<AnswerInQuestionCreateDto> answers;
}
package org.fuseri.model.dto.exercise;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import lombok.Getter;
import lombok.Setter;
import org.fuseri.model.dto.common.DomainObjectDto;
......@@ -9,7 +11,13 @@ import java.util.List;
@Getter
@Setter
public class QuestionDto extends DomainObjectDto {
@NotBlank
private String text;
@NotBlank
private String exerciseId;
@Valid
private List<AnswerDto> answers;
}
package org.fuseri.model.dto.exercise;
import jakarta.validation.constraints.NotBlank;
import lombok.Builder;
import lombok.Getter;
@Getter
@Builder
public class QuestionUpdateDto {
@NotBlank
private String text;
@NotBlank
private String exerciseId;
}
package org.fuseri.moduleexercise.question;
import jakarta.persistence.EntityNotFoundException;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.PositiveOrZero;
import org.fuseri.model.dto.common.Result;
import org.fuseri.model.dto.exercise.QuestionCreateDto;
import org.fuseri.model.dto.exercise.QuestionDto;
......@@ -37,7 +40,7 @@ public class QuestionController {
* @return a QuestionDto object representing the found question
*/
@GetMapping("/{id}")
public QuestionDto find(@PathVariable String id) {
public QuestionDto find(@NotBlank @PathVariable String id) {
return questionFacade.find(id);
}
......@@ -48,8 +51,9 @@ public class QuestionController {
* @param page the page number of the questions to retrieve
* @return a Result object containing a list of QuestionDto objects and pagination information
*/
@GetMapping("/exercise/{exerciseId}")
public Result<QuestionDto> findByExerciseId(@PathVariable String exerciseId, @RequestParam int page) {
@GetMapping("/exercise/{exercise-id}")
public Result<QuestionDto> findByExerciseId(@NotBlank @PathVariable("exercise-id") String exerciseId,
@PositiveOrZero @RequestParam int page) {
return questionFacade.findByExerciseId(exerciseId, page);
}
......@@ -61,7 +65,7 @@ public class QuestionController {
* @throws ResponseStatusException if the exercise with exerciseId from QuestionCreateDto does not exist
*/
@PostMapping
public QuestionDto addQuestion(@RequestBody QuestionCreateDto dto) {
public QuestionDto addQuestion(@Valid @RequestBody QuestionCreateDto dto) {
try {
return questionFacade.create(dto);
} catch (EntityNotFoundException e) {
......@@ -78,7 +82,7 @@ public class QuestionController {
* @throws ResponseStatusException if the question with id doesn't exist or its exercise doesn't exist
*/
@PutMapping("/{id}")
public QuestionDto updateQuestion(@PathVariable String id, @RequestBody QuestionUpdateDto dto) {
public QuestionDto updateQuestion(@NotBlank @PathVariable String id, @Valid @RequestBody QuestionUpdateDto dto) {
try {
return questionFacade.update(id, dto);
} catch (IllegalArgumentException e) {
......@@ -94,7 +98,7 @@ public class QuestionController {
* @param id of question to delete
*/
@DeleteMapping("/{id}")
public void deleteQuestion(@PathVariable String id) {
public void deleteQuestion(@NotBlank @PathVariable String id) {
questionFacade.delete(id);
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment