admin: add route to handle quiz
This commit is contained in:
parent
830dacd6f5
commit
48e6ba7861
2 changed files with 40 additions and 1 deletions
|
@ -36,6 +36,10 @@ func init() {
|
||||||
router.PUT("/api/exercices/:eid/keys/:kid", apiHandler(keyHandler(updateExerciceKey)))
|
router.PUT("/api/exercices/:eid/keys/:kid", apiHandler(keyHandler(updateExerciceKey)))
|
||||||
router.DELETE("/api/exercices/:eid/keys/:kid", apiHandler(keyHandler(deleteExerciceKey)))
|
router.DELETE("/api/exercices/:eid/keys/:kid", apiHandler(keyHandler(deleteExerciceKey)))
|
||||||
|
|
||||||
|
router.GET("/api/exercices/:eid/quiz", apiHandler(exerciceHandler(listExerciceQuiz)))
|
||||||
|
router.GET("/api/exercices/:eid/quiz/:qid", apiHandler(quizHandler(showExerciceQuiz)))
|
||||||
|
router.DELETE("/api/exercices/:eid/quiz/:qid", apiHandler(quizHandler(deleteExerciceQuiz)))
|
||||||
|
|
||||||
|
|
||||||
// Synchronize
|
// Synchronize
|
||||||
router.GET("/api/sync/exercices/:eid/files", apiHandler(exerciceHandler(
|
router.GET("/api/sync/exercices/:eid/files", apiHandler(exerciceHandler(
|
||||||
|
@ -65,6 +69,10 @@ func listExerciceKeys(exercice fic.Exercice, body []byte) (interface{}, error) {
|
||||||
return exercice.GetKeys()
|
return exercice.GetKeys()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func listExerciceQuiz(exercice fic.Exercice, body []byte) (interface{}, error) {
|
||||||
|
return exercice.GetMCQ()
|
||||||
|
}
|
||||||
|
|
||||||
func showExercice(exercice fic.Exercice, body []byte) (interface{}, error) {
|
func showExercice(exercice fic.Exercice, body []byte) (interface{}, error) {
|
||||||
return exercice, nil
|
return exercice, nil
|
||||||
}
|
}
|
||||||
|
@ -112,7 +120,7 @@ func createExercice(theme fic.Theme, body []byte) (interface{}, error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return theme.AddExercice(ue.Title, ue.Path, ue.Statement, depend, ue.Gain, ue.VideoURI)
|
return theme.AddExercice(ue.Title, ue.Path, ue.Statement, ue.Overview, depend, ue.Gain, ue.VideoURI)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -217,6 +225,14 @@ func deleteExerciceKey(key fic.Key, _ fic.Exercice, _ []byte) (interface{}, erro
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
func showExerciceQuiz(quiz fic.MCQ, _ fic.Exercice, body []byte) (interface{}, error) {
|
||||||
|
return quiz, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func deleteExerciceQuiz(quiz fic.MCQ, _ fic.Exercice, _ []byte) (interface{}, error) {
|
||||||
|
return quiz.Delete()
|
||||||
|
}
|
||||||
|
|
||||||
func createExerciceFile(exercice fic.Exercice, body []byte) (interface{}, error) {
|
func createExerciceFile(exercice fic.Exercice, body []byte) (interface{}, error) {
|
||||||
var uf uploadedFile
|
var uf uploadedFile
|
||||||
if err := json.Unmarshal(body, &uf); err != nil {
|
if err := json.Unmarshal(body, &uf); err != nil {
|
||||||
|
|
|
@ -187,6 +187,29 @@ func keyHandler(f func(fic.Key,fic.Exercice,[]byte) (interface{}, error)) func (
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func quizHandler(f func(fic.MCQ,fic.Exercice,[]byte) (interface{}, error)) func (httprouter.Params,[]byte) (interface{}, error) {
|
||||||
|
return func (ps httprouter.Params, body []byte) (interface{}, error) {
|
||||||
|
var exercice fic.Exercice
|
||||||
|
exerciceHandler(func (ex fic.Exercice, _[]byte) (interface{}, error) {
|
||||||
|
exercice = ex
|
||||||
|
return nil,nil
|
||||||
|
})(ps, body)
|
||||||
|
|
||||||
|
if qid, err := strconv.Atoi(string(ps.ByName("qid"))); err != nil {
|
||||||
|
return nil, err
|
||||||
|
} else if mcqs, err := exercice.GetMCQ(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
} else {
|
||||||
|
for _, mcq := range mcqs {
|
||||||
|
if (mcq.Id == int64(qid)) {
|
||||||
|
return f(mcq, exercice, body)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil, errors.New("Unable to find the requested key")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func fileHandler(f func(fic.EFile,[]byte) (interface{}, error)) func (httprouter.Params,[]byte) (interface{}, error) {
|
func fileHandler(f func(fic.EFile,[]byte) (interface{}, error)) func (httprouter.Params,[]byte) (interface{}, error) {
|
||||||
return func (ps httprouter.Params, body []byte) (interface{}, error) {
|
return func (ps httprouter.Params, body []byte) (interface{}, error) {
|
||||||
var exercice fic.Exercice
|
var exercice fic.Exercice
|
||||||
|
|
Reference in a new issue