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

Add Answer validation

parent 3d05d8b0
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.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Getter;
@AllArgsConstructor
@Getter
public class AnswerCreateDto {
@NotBlank
private String text;
@NotNull
private boolean correct;
@NotBlank
private String questionId;
}
package org.fuseri.model.dto.exercise;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.fuseri.model.dto.common.DomainObjectDto;
......@@ -7,6 +9,10 @@ import org.fuseri.model.dto.common.DomainObjectDto;
@AllArgsConstructor
@Getter
public class AnswerDto extends DomainObjectDto {
@NotBlank
private String text;
@NotNull
private boolean correct;
}
package org.fuseri.model.dto.exercise;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Getter;
@AllArgsConstructor
@Getter
public class AnswerInQuestionCreateDto {
@NotBlank
private String text;
@NotNull
private boolean correct;
}
package org.fuseri.model.dto.exercise;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor;
import lombok.Getter;
......@@ -8,6 +10,10 @@ import java.util.List;
@AllArgsConstructor
@Getter
public class AnswersCreateDto {
@NotBlank
private String questionId;
@Valid
private List<AnswerInQuestionCreateDto> answers;
}
package org.fuseri.moduleexercise.answer;
import jakarta.persistence.EntityNotFoundException;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import org.fuseri.model.dto.exercise.AnswerCreateDto;
import org.fuseri.model.dto.exercise.AnswerDto;
import org.fuseri.model.dto.exercise.AnswersCreateDto;
......@@ -33,7 +35,7 @@ public class AnswerController {
* @return a List of AnswerDto objects
*/
@GetMapping("/{question-id}")
public List<AnswerDto> findAllByQuestionId(@PathVariable("question-id") String questionId) {
public List<AnswerDto> findAllByQuestionId(@NotBlank @PathVariable("question-id") String questionId) {
return facade.findAllByQuestionId(questionId);
}
......@@ -45,7 +47,7 @@ public class AnswerController {
* @throws ResponseStatusException if the question ID specified in the dto does not exist
*/
@PostMapping
public List<AnswerDto> createMultiple(@RequestBody AnswersCreateDto dto) {
public List<AnswerDto> createMultiple(@Valid @RequestBody AnswersCreateDto dto) {
try {
return facade.createMultiple(dto);
} catch (EntityNotFoundException e) {
......@@ -61,7 +63,7 @@ public class AnswerController {
* @throws ResponseStatusException if the question id specified in the AnswerCreateDto dto does not exist
*/
@PutMapping("/{id}")
public AnswerDto update(@PathVariable String id, @RequestBody AnswerCreateDto dto) {
public AnswerDto update(@NotBlank @PathVariable String id, @Valid @RequestBody AnswerCreateDto dto) {
try {
return facade.update(id, dto);
} catch (EntityNotFoundException e) {
......@@ -77,7 +79,7 @@ public class AnswerController {
* @throws ResponseStatusException if answer with specified id does not exist
*/
@DeleteMapping("/{id}")
public void delete(@PathVariable String id) {
public void delete(@NotBlank @PathVariable String id) {
try {
facade.delete(id);
} catch (EntityNotFoundException e) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment