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
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
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.