Added duplicate quizz url
This commit is contained in:
parent
d411d41cff
commit
bbe43cef95
@ -35,4 +35,5 @@ public interface QuizzManager {
|
||||
public JsonNode getQuizzFormData(User user, long quizzFormId);
|
||||
public JsonNode getQuizzFormAdvancments(User user, long quizzId);
|
||||
|
||||
public Quizz duplicateQuizz(User user, long quizzId);
|
||||
}
|
||||
@ -521,6 +521,36 @@ public class QuizzManagerImpl implements QuizzManager {
|
||||
return out;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Quizz duplicateQuizz(User u, long quizzId) {
|
||||
if (!canEditQuizz(u, quizzId))
|
||||
return null;
|
||||
Optional<Quizz> oq = qRepository.findById(quizzId);
|
||||
// CHECKED BEFORE if (oq.isEmpty()) return null;
|
||||
Quizz q = oq.get();
|
||||
|
||||
|
||||
Quizz nq = new Quizz();
|
||||
nq.setName(q.getName() + "("+ Integer.toHexString((int)(Math.random()*0xFFFFFFF)) +")");
|
||||
nq.setOwner(q.getOwner());
|
||||
nq.setQuestionCount(q.getQuestionCount());
|
||||
nq.setPublic(q.isPublic());
|
||||
nq.setComplete(q.isComplete());
|
||||
|
||||
nq = qRepository.save(nq);
|
||||
|
||||
// We duplicate questions
|
||||
for (Question qu : q.getQuestions()) {
|
||||
Question nqu = new Question();
|
||||
nqu.setIndex(qu.getIndex());
|
||||
nqu.setType(qu.getType());
|
||||
nqu.setValue(qu.getValue());
|
||||
nqu.setQuizz(nq);
|
||||
questionRepository.save(nqu);
|
||||
}
|
||||
return nq;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -150,6 +150,22 @@ public class QuestionsController {
|
||||
return new ResponseEntity<>(out, HttpStatus.OK);
|
||||
}
|
||||
|
||||
/*
|
||||
* API get the form
|
||||
*/
|
||||
@GetMapping("/duplicate-quizz/{id}")
|
||||
public Object duplicateQuizz(@PathVariable("id") long id, Principal p) {
|
||||
User u = null;
|
||||
if (p!=null)
|
||||
u = ur.findByName(p.getName());
|
||||
if(u==null)
|
||||
return "redirect:/login?restricted";
|
||||
Quizz q = qm.duplicateQuizz(u, id);
|
||||
if(q == null)
|
||||
return new ResponseEntity<>(HttpStatus.UNAUTHORIZED);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/form/{q}")
|
||||
public String formpage(@PathVariable("q") long quizzId, Principal p, Model m) {
|
||||
if (p==null)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user