Use gin-gonic instead of httprouter
This commit is contained in:
parent
7c719d9fd5
commit
a203cdc36a
22 changed files with 1631 additions and 1355 deletions
44
asks.go
44
asks.go
|
|
@ -1,32 +1,52 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"log"
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func init() {
|
||||
router.POST("/api/surveys/:sid/ask", apiAuthHandler(surveyAuthHandler(func(s Survey, u *User, body []byte) HTTPResponse {
|
||||
func declareAPIAuthAsksRoutes(router *gin.RouterGroup) {
|
||||
router.POST("/ask", func(c *gin.Context) {
|
||||
u := c.MustGet("LoggedUser").(*User)
|
||||
s := c.MustGet("survey").(*Survey)
|
||||
|
||||
var ask Ask
|
||||
if err := json.Unmarshal(body, &ask); err != nil {
|
||||
return APIErrorResponse{err: err}
|
||||
if err := c.ShouldBindJSON(&ask); err != nil {
|
||||
c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"errmsg": err.Error()})
|
||||
return
|
||||
}
|
||||
|
||||
a, err := s.NewAsk(u.Id, ask.Content)
|
||||
if err != nil {
|
||||
return APIErrorResponse{err: err}
|
||||
log.Println("Unable to NewAsk:", err)
|
||||
c.AbortWithStatusJSON(http.StatusInternalServerError, gin.H{"errmsg": "Unable to register your question. Please try again in a few moment."})
|
||||
return
|
||||
}
|
||||
|
||||
if s.Direct != nil {
|
||||
s.WSAdminWriteAll(WSMessage{Action: "new_ask", UserId: &u.Id, QuestionId: &a.Id, Response: ask.Content})
|
||||
}
|
||||
|
||||
return formatApiResponse(a, err)
|
||||
}), loggedUser))
|
||||
router.GET("/api/surveys/:sid/ask", apiHandler(surveyHandler(
|
||||
func(s Survey, _ []byte) HTTPResponse {
|
||||
return formatApiResponse(s.GetAsks(true))
|
||||
}), adminRestricted))
|
||||
c.JSON(http.StatusOK, a)
|
||||
})
|
||||
}
|
||||
|
||||
func declareAPIAdminAsksRoutes(router *gin.RouterGroup) {
|
||||
router.GET("/ask", func(c *gin.Context) {
|
||||
s := c.MustGet("survey").(*Survey)
|
||||
|
||||
asks, err := s.GetAsks(true)
|
||||
if err != nil {
|
||||
log.Println("Unable to GetAsks:", err)
|
||||
c.AbortWithStatusJSON(http.StatusInternalServerError, gin.H{"errmsg": "Unable to retrieve asks. Please try again later."})
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, asks)
|
||||
})
|
||||
}
|
||||
|
||||
type Ask struct {
|
||||
|
|
|
|||
Reference in a new issue