Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "github.com/gin-gonic/gin"
- "database/sql"
- "github.com/coopernurse/gorp"
- _ "github.com/mattn/go-sqlite3"
- "log"
- //"time"
- "strconv"
- )
- type Employee struct {
- Id int64 `db:"employee_id"`
- FirstName string
- LastName string
- Position string
- }
- var dbmap = initDb()
- func initDb() *gorp.DbMap {
- db, err := sql.Open("sqlite3", "db.sqlite3")
- if err != nil {log.Println(err)}
- dbmap := &gorp.DbMap{
- Db: db,
- Dialect: gorp.SqliteDialect{},
- }
- dbmap.AddTableWithName(Employee{}, "employees").SetKeys(true, "Id")
- err = dbmap.CreateTablesIfNotExists()
- if err != nil {log.Println(err)}
- return dbmap
- }
- func EmployeesList(c *gin.Context){
- var employees []Employee
- _, err := dbmap.Select(&employees, "select * from employees order by employee_id")
- if err != nil {log.Println(err)}
- content := gin.H{}
- for k, v := range employees {
- content[strconv.Itoa(k)] = v
- }
- c.JSON(200, content)
- }
- func EmployeeDetail(c *gin.Context){
- employee_id := c.Params.ByName("Id")
- e_id, _ := strconv.Atoi(employee_id)
- employee := getEmployee(e_id)
- content := gin.H{
- "first_name":employee.FirstName,
- "last_name":employee.LastName,
- "position":employee.Position,
- }
- c.JSON(200, content)
- }
- func EmployeePost(c *gin.Context){
- var json Employee
- c.Bind(&json)
- employee := createEmployee(&json)
- if employee.FirstName == json.FirstName {
- content := gin.H{
- "result":"Success",
- "first_name": employee.FirstName,
- "last_name" :employee.LastName,
- "position":employee.Position,
- }
- c.JSON(200, content)
- } else {
- c.JSON(500, gin.H{"result":"error occured"})
- }
- }
- func createEmployee(e *Employee) Employee {
- employee := Employee{
- FirstName: e.FirstName,
- LastName: e.LastName,
- Position: e.Position,
- }
- err := dbmap.Insert(&employee)
- if err != nil {log.Println(err)}
- return employee
- }
- func getEmployee(employee_id int) Employee {
- employee := Employee{}
- err := dbmap.SelectOne(&employee, "select * from employees where Id=?", employee_id)
- if err != nil {log.Println(err)}
- return employee
- }
- func main(){
- app := gin.Default()
- app.GET("/employees", EmployeesList)
- app.POST("/employees", EmployeePost)
- app.GET("/employees/:employee_id", EmployeeDetail)
- app.Run(":6060")
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement