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"}) } }
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"}) } }
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, }) }
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"}) } }
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"}) } }
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"}) } }
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"}) } }
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) }
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"}) } }