Add score retrieval
This commit is contained in:
parent
7201c3d02a
commit
e9c25ddd96
2 changed files with 38 additions and 22 deletions
16
responses.go
16
responses.go
|
|
@ -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)
|
||||
}
|
||||
|
|
|
|||
Reference in a new issue