41 lines
624 B
Go
41 lines
624 B
Go
package models
|
|
|
|
import (
|
|
"example.com/rest-api/db"
|
|
"example.com/rest-api/utils"
|
|
)
|
|
|
|
type User struct {
|
|
ID int64
|
|
Email string `binding:"required"`
|
|
Password string `binding:"required"`
|
|
}
|
|
|
|
func (u User) Save() error {
|
|
query := "INSERT INTO users(email, password) VALUES (?, ?)"
|
|
stmt, err := db.DB.Prepare(query)
|
|
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
defer stmt.Close()
|
|
|
|
hashedPassword, err := utils.HashPassword(u.Password)
|
|
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
result, err := stmt.Exec(u.Email, hashedPassword)
|
|
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
userId, err := result.LastInsertId()
|
|
|
|
u.ID = userId
|
|
return err
|
|
}
|