Can view student responses on a dedicated page

This commit is contained in:
nemunaire 2020-11-28 18:59:14 +01:00
commit 6d271f765b
3 changed files with 57 additions and 6 deletions

View file

@ -25,10 +25,37 @@ func init() {
return APIResponse{true}
}), loggedUser))
router.POST("/api/users/:uid/surveys/:sid", apiAuthHandler(func(u *User, ps httprouter.Params, body []byte) HTTPResponse {
return surveyAuthHandler(func(s Survey, u *User, _ []byte) HTTPResponse {
return userHandler(func(u User, _ []byte) HTTPResponse {
var responses []Response
if err := json.Unmarshal(body, &responses); err != nil {
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 APIResponse{true}
})(ps, body)
})(u, ps, body)
}, adminRestricted))
router.GET("/api/surveys/:sid/responses", apiAuthHandler(surveyAuthHandler(
func(s Survey, u *User, _ []byte) HTTPResponse {
return formatApiResponse(s.GetMyResponses(u, s.Corrected))
}), loggedUser))
router.GET("/api/users/:uid/surveys/:sid/responses", apiAuthHandler(func(u *User, ps httprouter.Params, body []byte) HTTPResponse {
return surveyAuthHandler(func(s Survey, u *User, _ []byte) HTTPResponse {
return userHandler(func(u User, _ []byte) HTTPResponse {
return formatApiResponse(s.GetMyResponses(&u, s.Corrected))
})(ps, body)
})(u, ps, body)
}, adminRestricted))
router.GET("/api/surveys/:sid/responses/:rid", apiAuthHandler(responseAuthHandler(
func(r Response, _ *User, _ []byte) HTTPResponse {
return APIResponse{r}