GORM Playground Link

https://github.com/go-gorm/playground/pull/448

Description

I have modified my User struct to represent this

type User struct {
    Id        uint64 `gorm:"primaryKey;" json:"id"`
    FirstName string `json:"first" binding:"required" gorm:"type:varchar(10)"`
    LastName  string `json:"last" binding:"required" gorm:"type:varchar(10)"`
    Email     string `json:"email" binding:"required" gorm:"type:varchar(10)"`
    //Created   string `json:"-" gorm:"default:CURRENT_TIMESTAMP" json:"created_at"`
}

however when I try to save my user I get the following error : &{0xc000404240 1 0xc0002d8000 0}

The values being passed are these -> {0 pop dop dld@gmail.com} which comes from the following curl request -> curl -X POST -H "Content-Type: application/json" -d '{"first": "pop", "last": "dop", "email": "dld@gmail.com"}' http://localhost:5000/users

The way my database is being initialise is this

func getDB() (db *gorm.DB, err error) {
    db_connection_string := getEnv("DB_CONNECTION_STRING", "./db/movie.db")
    fmt.Println(db_connection_string)
    return gorm.Open(sqlite.Open(db_connection_string), &gorm.Config{})
}

func NewModelDB() UserModel {
    db, err := getDB()
    if err != nil {
        fmt.Println(err.Error())
        panic("Unable to connect to DB")
    }
    db.AutoMigrate(&User{})
    return &Model{
        DBConn: db,
    }
}

Method used to create users first time is this

func (db *Model) Save(usr User) *resterrors.RestErr {
    fmt.Println("This is Model", usr)
    fmt.Println(usr.FirstName, usr.LastName, usr.Email, usr.Id)
    err := db.DBConn.Model(&User{}).Create(&usr)
    if err != nil {
        fmt.Println(err)
        return resterrors.BadRequestError("Unable to save error")
    }
    return nil
}

Here is the relevant image gormissue1

Comment From: a631807682

func (db *Model) Save(usr User) *resterrors.RestErr {
    ...
    err := db.DBConn.Model(&User{}).Create(&usr)
    ...
}

however when I try to save my user I get the following error : &{0xc000404240 1 0xc0002d8000 0}

db.Create(&usr) return *gorm.DB, use .Error to get real error.