Advertisement
Guest User

Untitled

a guest
Jul 27th, 2016
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 2.29 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "github.com/gin-gonic/gin"
  5.     "database/sql"
  6.     "github.com/coopernurse/gorp"
  7.     _ "github.com/mattn/go-sqlite3"
  8.     "log"
  9.     //"time"
  10.     "strconv"
  11. )
  12. type Employee struct {
  13.     Id int64 `db:"employee_id"`
  14.     FirstName string
  15.     LastName string
  16.     Position string
  17. }
  18.  
  19. var dbmap = initDb()
  20.  
  21. func initDb() *gorp.DbMap {
  22.     db, err := sql.Open("sqlite3", "db.sqlite3")
  23.     if err != nil {log.Println(err)}
  24.     dbmap := &gorp.DbMap{
  25.         Db: db,
  26.         Dialect: gorp.SqliteDialect{},
  27.     }
  28.     dbmap.AddTableWithName(Employee{}, "employees").SetKeys(true, "Id")
  29.     err = dbmap.CreateTablesIfNotExists()
  30.     if err != nil {log.Println(err)}
  31.     return dbmap
  32. }
  33.  
  34. func EmployeesList(c *gin.Context){
  35.     var employees []Employee
  36.     _, err := dbmap.Select(&employees, "select * from employees order by employee_id")
  37.     if err != nil {log.Println(err)}
  38.     content := gin.H{}
  39.     for k, v := range employees {
  40.         content[strconv.Itoa(k)] = v
  41.     }
  42.     c.JSON(200, content)
  43. }
  44.  
  45. func EmployeeDetail(c *gin.Context){
  46.     employee_id := c.Params.ByName("Id")
  47.     e_id, _ := strconv.Atoi(employee_id)
  48.     employee := getEmployee(e_id)
  49.     content := gin.H{
  50.         "first_name":employee.FirstName,
  51.         "last_name":employee.LastName,
  52.         "position":employee.Position,
  53.     }
  54.     c.JSON(200, content)
  55. }
  56.  
  57. func EmployeePost(c *gin.Context){
  58.     var json Employee
  59.     c.Bind(&json)
  60.     employee := createEmployee(&json)
  61.     if employee.FirstName == json.FirstName {
  62.         content := gin.H{
  63.             "result":"Success",
  64.             "first_name": employee.FirstName,
  65.             "last_name" :employee.LastName,
  66.             "position":employee.Position,
  67.         }
  68.         c.JSON(200, content)
  69.     } else {
  70.         c.JSON(500, gin.H{"result":"error occured"})
  71.     }
  72. }
  73.  
  74. func createEmployee(e *Employee) Employee {
  75.     employee := Employee{
  76.         FirstName: e.FirstName,
  77.         LastName: e.LastName,
  78.         Position: e.Position,
  79.     }
  80.  
  81.     err := dbmap.Insert(&employee)
  82.     if err != nil {log.Println(err)}
  83.     return employee
  84. }
  85.  
  86. func getEmployee(employee_id int) Employee {
  87.     employee := Employee{}
  88.     err := dbmap.SelectOne(&employee, "select * from employees where Id=?", employee_id)
  89.     if err != nil {log.Println(err)}
  90.     return employee
  91. }
  92.  
  93. func main(){
  94.     app := gin.Default()
  95.     app.GET("/employees", EmployeesList)
  96.     app.POST("/employees", EmployeePost)
  97.     app.GET("/employees/:employee_id", EmployeeDetail)
  98.     app.Run(":6060")
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement