Add score retrieval

This commit is contained in:
nemunaire 2020-09-13 16:37:30 +02:00
commit e9c25ddd96
2 changed files with 38 additions and 22 deletions

View file

@ -2,8 +2,8 @@ package main
import (
"encoding/json"
"time"
"strconv"
"time"
"github.com/julienschmidt/httprouter"
)
@ -12,13 +12,13 @@ func init() {
router.POST("/api/surveys/:sid", apiAuthHandler(surveyAuthHandler(func(s Survey, u *User, body []byte) HTTPResponse {
var responses []Response
if err := json.Unmarshal(body, &responses); err != nil {
return APIErrorResponse{err:err}
return APIErrorResponse{err: err}
}
for _, response := range responses {
if len(response.Answer) > 0 {
if _, err := s.NewResponse(response.IdQuestion, u.Id, response.Answer); err != nil {
return APIErrorResponse{err:err}
return APIErrorResponse{err: err}
}
}
}
@ -40,10 +40,10 @@ func init() {
router.PUT("/api/surveys/:sid/questions/:qid/responses/:rid", apiAuthHandler(responseAuthHandler(func(current Response, u *User, body []byte) HTTPResponse {
var new Response
if err := json.Unmarshal(body, &new); err != nil {
return APIErrorResponse{err:err}
return APIErrorResponse{err: err}
}
if new.Score != nil && (current.Score != nil || *new.Score != *current.Score) {
if new.Score != nil && (current.Score == nil || *new.Score != *current.Score) {
now := time.Now()
new.IdCorrector = &u.Id
new.TimeScored = &now
@ -66,16 +66,16 @@ func responseHandler(f func(Response, []byte) HTTPResponse) func(httprouter.Para
}
if rid, err := strconv.Atoi(string(ps.ByName("rid"))); err != nil {
return APIErrorResponse{err:err}
return APIErrorResponse{err: err}
} else if survey == nil {
if response, err := getResponse(rid); err != nil {
return APIErrorResponse{err:err}
return APIErrorResponse{err: err}
} else {
return f(response, body)
}
} else {
if response, err := survey.GetResponse(rid); err != nil {
return APIErrorResponse{err:err}
return APIErrorResponse{err: err}
} else {
return f(response, body)
}