本文整理汇总了Golang中github.com/daryl/qstn/app.Context类的典型用法代码示例。如果您正苦于以下问题:Golang Context类的具体用法?Golang Context怎么用?Golang Context使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Context类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: entriesNew
func entriesNew(c *app.Context) {
s, entry := api.EntryPost(c)
if s != 201 {
c.Error(s)
return
}
c.JSON(entry)
}
示例2: entriesRandom
func entriesRandom(c *app.Context) {
s, entry := api.EntryRand(c)
if s != 200 {
c.Error(s)
return
}
c.JSON(entry)
}
示例3: entriesID
func entriesID(c *app.Context) {
if c.Seg(2) == "random" {
entriesRandom(c)
return
}
switch c.R.Method {
case "GET":
entriesGet(c)
return
}
c.Error(404)
}
示例4: socket
func socket(c *app.Context) {
ws, err := grader.Upgrade(c.W, c.R, nil)
defer ws.Close()
if err != nil {
return
}
slug := c.Seg(2)
coll := c.DB.C("entries")
var entry models.Entry
if _, ok := hubs[slug]; !ok {
hubs[slug] = NewHub()
}
hub := hubs[slug]
cli := hub.Add(ws)
go cli.Ping(30 * time.Second)
for {
if err = ws.ReadJSON(&entry); err != nil {
break
}
coll.Update(bson.M{
"slug": slug,
}, bson.M{
"$set": entry,
})
for ws, _ := range hub.clients {
ws.WriteJSON(entry)
}
}
if len(hub.clients) == 0 {
delete(hubs, slug)
}
hub.Remove(ws)
}
示例5: entriesGet
func entriesGet(c *app.Context) {
id := c.Seg(2)
s, entry := api.EntryGet(c, id)
if s != 200 {
c.Error(s)
return
}
c.JSON(entry)
}
示例6: entries
func entries(c *app.Context) {
segs := c.Segs()
size := len(segs)
switch {
case size > 2:
c.Error(404)
return
case size == 2:
entriesID(c)
return
}
switch c.R.Method {
case "POST":
entriesNew(c)
return
}
c.Error(404)
}