當前位置: 首頁>>代碼示例>>Golang>>正文


Golang gin.Context類代碼示例

本文整理匯總了Golang中menu/Godeps/_workspace/src/github.com/gin-gonic/gin.Context的典型用法代碼示例。如果您正苦於以下問題:Golang Context類的具體用法?Golang Context怎麽用?Golang Context使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了Context類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: roomGET

func roomGET(c *gin.Context) {
	roomid := c.Param("roomid")
	userid := fmt.Sprint(rand.Int31())
	c.HTML(200, "chat_room", gin.H{
		"roomid": roomid,
		"userid": userid,
	})
}
開發者ID:aplucche,項目名稱:menu,代碼行數:8,代碼來源:main.go

示例2: GetMenus

func GetMenus(c *gin.Context) {
	var menus []Menu
	_, err := dbmap.Select(&menus, "select * from menu")

	if err == nil {
		c.JSON(200, menus)
	} else {
		c.JSON(404, gin.H{"error": "no items in this table"})
	}
}
開發者ID:aplucche,項目名稱:menu,代碼行數:10,代碼來源:main.go

示例3: GetRecipes

func GetRecipes(c *gin.Context) {
	var recipes []Recipe
	_, err := dbmap.Select(&recipes, "select * from recipe")

	if err == nil {
		c.JSON(200, recipes)
	} else {
		c.JSON(404, gin.H{"error": "no items in this table"})
	}
}
開發者ID:aplucche,項目名稱:menu,代碼行數:10,代碼來源:main.go

示例4: DeleteRecipe

func DeleteRecipe(c *gin.Context) {
	id := c.Params.ByName("id")

	var recipe Recipe
	err := dbmap.SelectOne(&recipe, "select id from recipe where id=$1", id)

	if err == nil {
		_, err = dbmap.Delete(&recipe)
		if err == nil {
			c.JSON(200, gin.H{"id #" + id: "deleted"})
		} else {
			checkErr(err, "Delete failed")
		}
	} else {
		c.JSON(404, gin.H{"error": "item not found"})
	}
}
開發者ID:aplucche,項目名稱:menu,代碼行數:17,代碼來源:main.go

示例5: roomPOST

func roomPOST(c *gin.Context) {
	roomid := c.Param("roomid")
	userid := c.PostForm("user")
	message := c.PostForm("message")
	room(roomid).Submit(userid + ": " + message)

	c.JSON(200, gin.H{
		"status":  "success",
		"message": message,
	})
}
開發者ID:aplucche,項目名稱:menu,代碼行數:11,代碼來源:main.go

示例6: GetRecipe

func GetRecipe(c *gin.Context) {
	id := c.Params.ByName("id")
	var recipe Recipe
	err := dbmap.SelectOne(&recipe, "select * from recipe where id=$1", id)

	if err == nil {
		recipe_id, _ := strconv.ParseInt(id, 0, 64)

		content := &Recipe{
			Id:          recipe_id,
			Name:        recipe.Name,
			Description: recipe.Description,
			Link:        recipe.Link,
			Category:    recipe.Category,
			Notes:       recipe.Notes,
		}
		c.JSON(200, content)
	} else {
		c.JSON(404, gin.H{"error": "item not found"})
	}
}
開發者ID:aplucche,項目名稱:menu,代碼行數:21,代碼來源:main.go

示例7: roomPOST

func roomPOST(c *gin.Context) {
	roomid := c.Param("roomid")
	nick := c.Query("nick")
	message := c.PostForm("message")
	message = strings.TrimSpace(message)

	validMessage := len(message) > 1 && len(message) < 200
	validNick := len(nick) > 1 && len(nick) < 14
	if !validMessage || !validNick {
		c.JSON(400, gin.H{
			"status": "failed",
			"error":  "the message or nickname is too long",
		})
		return
	}

	post := gin.H{
		"nick":    html.EscapeString(nick),
		"message": html.EscapeString(message),
	}
	messages.Add("inbound", 1)
	room(roomid).Submit(post)
	c.JSON(200, post)
}
開發者ID:aplucche,項目名稱:menu,代碼行數:24,代碼來源:routes.go

示例8: stream

func stream(c *gin.Context) {
	roomid := c.Param("roomid")
	listener := openListener(roomid)
	defer closeListener(roomid, listener)

	c.Stream(func(w io.Writer) bool {
		c.SSEvent("message", <-listener)
		return true
	})
}
開發者ID:aplucche,項目名稱:menu,代碼行數:10,代碼來源:main.go

示例9: streamRoom

func streamRoom(c *gin.Context) {
	roomid := c.Param("roomid")
	listener := openListener(roomid)
	ticker := time.NewTicker(1 * time.Second)
	users.Add("connected", 1)
	defer func() {
		closeListener(roomid, listener)
		ticker.Stop()
		users.Add("disconnected", 1)
	}()

	c.Stream(func(w io.Writer) bool {
		select {
		case msg := <-listener:
			messages.Add("outbound", 1)
			c.SSEvent("message", msg)
		case <-ticker.C:
			c.SSEvent("stats", Stats())
		}
		return true
	})
}
開發者ID:aplucche,項目名稱:menu,代碼行數:22,代碼來源:routes.go

示例10: rateLimit

func rateLimit(c *gin.Context) {

	ip := c.ClientIP()
	value := int(ips.Add(ip, 1))
	if value%50 == 0 {
		fmt.Printf("ip: %s, count: %d\n", ip, value)
	}
	if value >= 200 {
		if value%200 == 0 {
			fmt.Println("ip blocked")
		}
		c.Abort()
		c.String(503, "you were automatically banned :)")
	}
}
開發者ID:aplucche,項目名稱:menu,代碼行數:15,代碼來源:routes.go

示例11: roomGET

func roomGET(c *gin.Context) {
	roomid := c.Param("roomid")
	nick := c.Query("nick")
	if len(nick) < 2 {
		nick = ""
	}
	if len(nick) > 13 {
		nick = nick[0:12] + "..."
	}
	c.HTML(200, "room_login.templ.html", gin.H{
		"roomid":    roomid,
		"nick":      nick,
		"timestamp": time.Now().Unix(),
	})

}
開發者ID:aplucche,項目名稱:menu,代碼行數:16,代碼來源:routes.go

示例12: UpdateRecipe

func UpdateRecipe(c *gin.Context) {
	id := c.Params.ByName("id")
	var recipe Recipe
	err := dbmap.SelectOne(&recipe, "select * from recipe where id =$1", id)

	if err == nil {
		var json Recipe
		c.Bind(&json)

		recipe_id, _ := strconv.ParseInt(id, 0, 64)

		recipe := Recipe{
			Id:          recipe_id,
			UserId:      json.UserId,
			Name:        json.Name,
			Description: json.Description,
			Link:        json.Link,
			Category:    json.Category,
			Notes:       json.Notes,
		}

		if recipe.Name != "" {
			_, err := dbmap.Update(&recipe)

			if err == nil {
				c.JSON(200, recipe)
			} else {
				checkErr(err, "Updated failed")
			}

		} else {
			c.JSON(422, gin.H{"error": "fields are empty"})
		}
	} else {
		c.JSON(404, gin.H{"error": "item not found"})
	}
}
開發者ID:aplucche,項目名稱:menu,代碼行數:37,代碼來源:main.go

示例13: PostMenu

func PostMenu(c *gin.Context) {
	var menu Menu
	c.Bind(&menu)

	if menu.Name != "" {
		if insert, _ := dbmap.Exec(`insert into menu (name, data) values ($1, $2)`,
			menu.Name, menu.Data); insert != nil {

			content := &Menu{
				Id:   0,
				Name: menu.Name,
				Data: menu.Data,
			}
			c.JSON(201, content)
		}
	} else {
		c.JSON(422, gin.H{"error": "fields are empty"})
	}
}
開發者ID:aplucche,項目名稱:menu,代碼行數:19,代碼來源:main.go

示例14: PostRecipe

func PostRecipe(c *gin.Context) {
	var recipe Recipe
	c.Bind(&recipe)

	if recipe.Name != "" {
		if insert, _ := dbmap.Exec(`insert into recipe (userid, name, description, link, category, notes) values ($1, $2, $3, $4, $5, $6)`,
			recipe.UserId, recipe.Name, recipe.Description, recipe.Link, recipe.Category, recipe.Notes); insert != nil {

			content := &Recipe{
				Id:          0,
				UserId:      recipe.UserId,
				Name:        recipe.Name,
				Description: recipe.Description,
				Link:        recipe.Link,
				Category:    recipe.Category,
				Notes:       recipe.Notes,
			}
			c.JSON(201, content)
		}
	} else {
		c.JSON(422, gin.H{"error": "fields are empty"})
	}
}
開發者ID:aplucche,項目名稱:menu,代碼行數:23,代碼來源:main.go

示例15: index

func index(c *gin.Context) {
	c.Redirect(301, "/room/hn")
}
開發者ID:aplucche,項目名稱:menu,代碼行數:3,代碼來源:routes.go


注:本文中的menu/Godeps/_workspace/src/github.com/gin-gonic/gin.Context類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。