Download json
This commit is contained in:
parent
6e5c41431a
commit
655971a000
@ -23,7 +23,7 @@ public interface QuizzManager {
|
|||||||
public boolean canEditQuizz(User user, long quizzId);
|
public boolean canEditQuizz(User user, long quizzId);
|
||||||
public Optional<QuizzForm> canViewQuizzForm(User user, long quizzFormId);
|
public Optional<QuizzForm> canViewQuizzForm(User user, long quizzFormId);
|
||||||
public Optional<Quizz> canViewQuizzFormsOfQuizz(User user, long quizzId);
|
public Optional<Quizz> canViewQuizzFormsOfQuizz(User user, long quizzId);
|
||||||
|
|
||||||
public JsonNode getQuizzInfo(User user, long quizzId);
|
public JsonNode getQuizzInfo(User user, long quizzId);
|
||||||
public JsonNode setQuizzName(User user, long quizzId, String newName);
|
public JsonNode setQuizzName(User user, long quizzId, String newName);
|
||||||
public JsonNode addQuestion(User user, long quizzId);
|
public JsonNode addQuestion(User user, long quizzId);
|
||||||
@ -33,6 +33,7 @@ public interface QuizzManager {
|
|||||||
public JsonNode setQuestionType(User user, long quizzId, long questionId, QTypes type);
|
public JsonNode setQuestionType(User user, long quizzId, long questionId, QTypes type);
|
||||||
|
|
||||||
public JsonNode getQuizzFormData(User user, long quizzFormId);
|
public JsonNode getQuizzFormData(User user, long quizzFormId);
|
||||||
|
public JsonNode getAllFormsData(User u, long id);
|
||||||
public JsonNode getQuizzFormAdvancments(User user, long quizzId);
|
public JsonNode getQuizzFormAdvancments(User user, long quizzId);
|
||||||
|
|
||||||
public Quizz duplicateQuizz(User user, long quizzId);
|
public Quizz duplicateQuizz(User user, long quizzId);
|
||||||
|
|||||||
@ -498,6 +498,49 @@ public class QuizzManagerImpl implements QuizzManager {
|
|||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JsonNode getAllFormsData(User u, long quizzId) {
|
||||||
|
Optional<Quizz> oq = canViewQuizzFormsOfQuizz(u, quizzId);
|
||||||
|
if(oq.isEmpty())
|
||||||
|
return errorNode("Could not access the quizzform"); //TODO more precise error node
|
||||||
|
Quizz quizz = oq.get();
|
||||||
|
ObjectNode out = JsonNodeFactory.instance.objectNode();
|
||||||
|
out.set("id",JsonNodeFactory.instance.numberNode(quizz.getId()));
|
||||||
|
out.set("name",JsonNodeFactory.instance.textNode(quizz.getName()));
|
||||||
|
|
||||||
|
ArrayNode questionNode = JsonNodeFactory.instance.arrayNode(quizz.getQuestionCount());
|
||||||
|
List<Question> questions = quizz.getQuestions().stream().sorted((p,q) -> Integer.valueOf(p.getIndex()).compareTo(q.getIndex())).toList();
|
||||||
|
for(int i=0;i<questions.size();i++) {
|
||||||
|
ObjectNode qNode = JsonNodeFactory.instance.objectNode();
|
||||||
|
qNode.set("id", JsonNodeFactory.instance.numberNode(questions.get(i).getId()));
|
||||||
|
qNode.set("type", JsonNodeFactory.instance.textNode(questions.get(i).getType().name()));
|
||||||
|
qNode.set("value",questions.get(i).getValue());
|
||||||
|
questionNode.add(qNode);
|
||||||
|
}
|
||||||
|
out.set("questions", questionNode);
|
||||||
|
|
||||||
|
ObjectNode qfzNodes = JsonNodeFactory.instance.objectNode();
|
||||||
|
for(QuizzForm qf : qfRepository.findByQuizz(quizz)) {
|
||||||
|
ObjectNode qfNode = JsonNodeFactory.instance.objectNode();
|
||||||
|
qfNode.set("id", JsonNodeFactory.instance.numberNode(qf.getId()));
|
||||||
|
qfNode.set("currentQuestion", JsonNodeFactory.instance.numberNode(qf.getCurrentQuestion()));
|
||||||
|
qfNode.set("answerStep", JsonNodeFactory.instance.numberNode(qf.getAnswerStep()));
|
||||||
|
qfNode.set("done", JsonNodeFactory.instance.booleanNode(qf.isDone()));
|
||||||
|
|
||||||
|
List<Answer> answers = answerRepository.findByFormAndQuestionIn(qf, questions);
|
||||||
|
ArrayNode answersNode = JsonNodeFactory.instance.arrayNode();
|
||||||
|
for(int i=0;i<answers.size();i++) {
|
||||||
|
answersNode.add(answers.get(i).getValue());
|
||||||
|
}
|
||||||
|
qfNode.set("answers", answersNode);
|
||||||
|
qfzNodes.set(qf.getUser().getName(), qfNode);
|
||||||
|
}
|
||||||
|
out.set("forms", qfzNodes);
|
||||||
|
|
||||||
|
out.set("success", JsonNodeFactory.instance.booleanNode(true));
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public JsonNode getQuizzFormAdvancments(User user, long quizzId) {
|
public JsonNode getQuizzFormAdvancments(User user, long quizzId) {
|
||||||
Optional<Quizz> oq = canViewQuizzFormsOfQuizz(user, quizzId);
|
Optional<Quizz> oq = canViewQuizzFormsOfQuizz(user, quizzId);
|
||||||
|
|||||||
@ -135,6 +135,20 @@ public class QuestionsController {
|
|||||||
return new ResponseEntity<>(out, HttpStatus.OK);
|
return new ResponseEntity<>(out, HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* API get the forms for a specific quizz
|
||||||
|
*/
|
||||||
|
@GetMapping("/getallformsdata/{id}")
|
||||||
|
public Object getAllFormsData(@PathVariable("id") long id, Principal p) {
|
||||||
|
User u = null;
|
||||||
|
if (p!=null)
|
||||||
|
u = ur.findByName(p.getName());
|
||||||
|
if(u==null)
|
||||||
|
return "redirect:/login?restricted";
|
||||||
|
JsonNode out = qm.getAllFormsData(u, id);
|
||||||
|
return new ResponseEntity<>(out, HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* API get the form
|
* API get the form
|
||||||
*/
|
*/
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user