init(api): add quote add handler
This commit is contained in:
parent
875452004d
commit
568ffd1615
@ -105,4 +105,47 @@ func quoteGet(c *gin.Context) {
|
|||||||
c.JSON(http.StatusOK, quote)
|
c.JSON(http.StatusOK, quote)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func quoteAdd(c *gin.Context) {
|
||||||
|
session := sessions.Default(c)
|
||||||
|
user_id, ok := session.Get("user_id").(string)
|
||||||
|
if !ok {
|
||||||
|
c.JSON(http.StatusUnauthorized, gin.H{"error": "Ты это, залогинься сначала что ли, а то чё как крыса"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
var body map[string]string
|
||||||
|
err := c.BindJSON(&body)
|
||||||
|
if err != nil {
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"error": "И чё за шнягу ты мне кинул?"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
text, ok := body["text"]
|
||||||
|
if !ok || text == "" {
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"error": "Э, а где цитата?"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
author, ok := body["author"]
|
||||||
|
if !ok || author == "" {
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"error": "Цитата может быть сказана только тем, кто её сказанул! А кто сказанул эту цитату?"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
var datetime time.Time
|
||||||
|
datetimeStr, ok := body["datetime"]
|
||||||
|
if ok {
|
||||||
|
datetime, err = time.Parse(time.RFC3339, datetimeStr)
|
||||||
|
if err != nil {
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"error": "Чёт дата и время у тебя какие-то кривые..."})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
datetime = time.Now()
|
||||||
|
}
|
||||||
|
quote, err := db.QuoteAdd(context.Background(), user_id, text, author, datetime)
|
||||||
|
if err != nil {
|
||||||
|
status, message := HandleDBError(err)
|
||||||
|
c.JSON(status, gin.H{"error": message})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
c.JSON(http.StatusCreated, quote)
|
||||||
|
}
|
||||||
|
|
||||||
//#endregion Quotes
|
//#endregion Quotes
|
||||||
|
|||||||
@ -22,6 +22,7 @@ func RegisterRoutes(r *gin.Engine) {
|
|||||||
{
|
{
|
||||||
api.POST("/auth", userAuth)
|
api.POST("/auth", userAuth)
|
||||||
api.GET("/quotes", quotesGet)
|
api.GET("/quotes", quotesGet)
|
||||||
|
api.POST("/quotes", quoteAdd)
|
||||||
api.GET("/quotes/:id", quoteGet)
|
api.GET("/quotes/:id", quoteGet)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user