Advertisement
Guest User

Untitled

a guest
Nov 9th, 2015
413
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 1.39 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "fmt"
  5.     "github.com/gin-gonic/gin"
  6.     "gopkg.in/mgo.v2"
  7. )
  8.  
  9. type (
  10.     obj map[string]interface{}
  11.     arr []interface{}
  12. )
  13. type user struct {
  14.     Username string   `form:"login"    json:"login"    bson:"login"    binding:"required,min=3,max=40"`
  15.     Name     string   `form:"fullname" json:"fullname" bson:"name"     binding:"required"`
  16.     Age      int      `form:"age"      json:"age"      bson:"age"      binding:"min=18"`
  17.     Password string   `form:"pass"     json:"pass"     bson:"password" binding:"min=8"`
  18.     Tags     []string `form:"tags"     json:"tags"     bson:"tags"     binding:"required,max=10"`
  19.     Active   bool     `form:"active"   json:"active"   bson:"active"`
  20. }
  21.  
  22. func main() {
  23.     gin.SetMode(gin.ReleaseMode)
  24.     router := gin.New()
  25.     session, err := mgo.Dial(":27017")
  26.     if err != nil {
  27.         panic(err)
  28.     }
  29.  
  30.     router.GET("/api/:key/add-user", func(c *gin.Context) {
  31.         fmt.Println("Income query")
  32.  
  33.         if c.Param("key") != "LKHBCu6e" {
  34.             c.JSON(400, obj{"msg": "Wrong API key"})
  35.             return
  36.         }
  37.  
  38.         var u user
  39.         if err := c.Bind(&u); err != nil {
  40.             c.JSON(400, obj{"msg": "Wrong data format", "err": err.Error()})
  41.             return
  42.         }
  43.  
  44.         if err := session.DB("mydb").C("users").Insert(u); err != nil {
  45.             c.JSON(400, obj{"msg": "DB error"})
  46.             return
  47.         }
  48.  
  49.         c.JSON(200, obj{"msg": "User added"})
  50.     })
  51.     fmt.Println("Server started at http://localhost:3111")
  52.     router.Run(":3111")
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement