func GetUsers(c *gin.Context) { var users []User _, err := dbmap.Select(&users, "SELECT * FROM user2") if err == nil { c.JSON(200, users) } else { c.JSON(404, gin.H{"error": "no user(s) into the table"}) } // curl -i http://localhost:8080/api/v1/users }
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 DeleteUser(c *gin.Context) { id := c.Params.ByName("id") var user User err := dbmap.SelectOne(&user, "SELECT id FROM user2 WHERE id=?", id) if err == nil { _, err = dbmap.Delete(&user) if err == nil { c.JSON(200, gin.H{"id #" + id: " deleted"}) } else { checkErr(err, "Delete failed") } } else { c.JSON(404, gin.H{"error": "user not found"}) } // curl -i -X DELETE http://localhost:8080/api/v1/users/1 }
func GetUser(c *gin.Context) { param_id := c.Params.ByName("id") id, _ := strconv.Atoi(param_id) obj, err := dbmap.Get(User{}, id) //c.JSON(404, gin.H{"obj" : obj}) user := obj.(*User) if err == nil { user_id, _ := strconv.ParseInt(param_id, 0, 64) content := &User{ Id: user_id, Firstname: user.Firstname, Lastname: user.Lastname, } c.JSON(200, content) } else { c.JSON(404, gin.H{"error": "user not found"}) //c.JSON(404, gin.H{"error" : err}) } // curl -i http://localhost:8080/api/v1/users/1 }
func UpdateUser(c *gin.Context) { id := c.Params.ByName("id") var user User err := dbmap.SelectOne(&user, "SELECT * FROM user2 WHERE id=?", id) if err == nil { var json User c.Bind(&json) user_id, _ := strconv.ParseInt(id, 0, 64) user := User{ Id: user_id, Firstname: json.Firstname, Lastname: json.Lastname, } if user.Firstname != "" && user.Lastname != "" { _, err = dbmap.Update(&user) if err == nil { c.JSON(200, user) } else { checkErr(err, "Updated failed") } } else { c.JSON(422, gin.H{"error": "fields are empty"}) } } else { c.JSON(404, gin.H{"error": "user not found"}) } // curl -i -X PUT -H "Content-Type: application/json" -d "{ \"firstname\": \"Thea\", \"lastname\": \"Merlyn\" }" http://localhost:8080/api/v1/users/1 }
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 PostUser(c *gin.Context) { var params User c.Bind(¶ms) if params.Firstname != "" && params.Lastname != "" { user := &User{0, params.Firstname, params.Lastname} err := dbmap.Insert(user) if err == nil { content := &User{ Id: user.Id, Firstname: user.Firstname, Lastname: user.Lastname, } c.JSON(201, content) } else { c.JSON(422, gin.H{"error": err}) } } else { c.JSON(422, gin.H{"error": "fields are empty"}) } // curl -i -X POST -H "Content-Type: application/json" -d "{ \"firstname\": \"Thea\", \"lastname\": \"Queen\" }" http://localhost:8080/api/v1/users }
func index(c *gin.Context) { content := gin.H{"Hello": "World"} c.JSON(200, content) }