mirror of
https://github.com/cwinfo/matterbridge.git
synced 2025-07-21 00:56:47 +00:00
Update vendor
This commit is contained in:
73
vendor/github.com/labstack/echo/cookbook/twitter/handler/post.go
generated
vendored
Normal file
73
vendor/github.com/labstack/echo/cookbook/twitter/handler/post.go
generated
vendored
Normal file
@ -0,0 +1,73 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"github.com/labstack/echo"
|
||||
"github.com/labstack/echo/cookbook/twitter/model"
|
||||
mgo "gopkg.in/mgo.v2"
|
||||
"gopkg.in/mgo.v2/bson"
|
||||
)
|
||||
|
||||
func (h *Handler) CreatePost(c echo.Context) (err error) {
|
||||
u := &model.User{
|
||||
ID: bson.ObjectIdHex(userIDFromToken(c)),
|
||||
}
|
||||
p := &model.Post{
|
||||
ID: bson.NewObjectId(),
|
||||
From: u.ID.Hex(),
|
||||
}
|
||||
if err = c.Bind(p); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
// Validation
|
||||
if p.To == "" || p.Message == "" {
|
||||
return &echo.HTTPError{Code: http.StatusBadRequest, Message: "invalid to or message fields"}
|
||||
}
|
||||
|
||||
// Find user from database
|
||||
db := h.DB.Clone()
|
||||
defer db.Close()
|
||||
if err = db.DB("twitter").C("users").FindId(u.ID).One(u); err != nil {
|
||||
if err == mgo.ErrNotFound {
|
||||
return echo.ErrNotFound
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// Save post in database
|
||||
if err = db.DB("twitter").C("posts").Insert(p); err != nil {
|
||||
return
|
||||
}
|
||||
return c.JSON(http.StatusCreated, p)
|
||||
}
|
||||
|
||||
func (h *Handler) FetchPost(c echo.Context) (err error) {
|
||||
userID := userIDFromToken(c)
|
||||
page, _ := strconv.Atoi(c.QueryParam("page"))
|
||||
limit, _ := strconv.Atoi(c.QueryParam("limit"))
|
||||
|
||||
// Defaults
|
||||
if page == 0 {
|
||||
page = 1
|
||||
}
|
||||
if limit == 0 {
|
||||
limit = 100
|
||||
}
|
||||
|
||||
// Retrieve posts from database
|
||||
posts := []*model.Post{}
|
||||
db := h.DB.Clone()
|
||||
if err = db.DB("twitter").C("posts").
|
||||
Find(bson.M{"to": userID}).
|
||||
Skip((page - 1) * limit).
|
||||
Limit(limit).
|
||||
All(&posts); err != nil {
|
||||
return
|
||||
}
|
||||
defer db.Close()
|
||||
|
||||
return c.JSON(http.StatusOK, posts)
|
||||
}
|
Reference in New Issue
Block a user