package model type User struct { ID uint64 `json:"id"` Email string `json:"email"` Password string `json:"password"` Name string `json:"name"` } func CreateUser(user *User, db *Db) error { statement := "INSERT INTO users (email, password, name) values ($1, $2, $3)" _, err := db.conn.Exec(statement, user.Email, user.Password, user.Name) return err } func CheckEmail(email string, user *User, db *Db) bool { statement := "SELECT id, name, email, password FROM users WHERE email=$1 LIMIT 1" rows, err := db.conn.Query(statement, email) if err != nil { return false } for rows.Next() { err = rows.Scan(&user.ID, &user.Name, &user.Email, &user.Password) if err != nil { return false } } return true } func GetUser(email string, db *Db) (*User, error) { statement := "SELECT id, name, email FROM users WHERE email=$1 LIMIT 1" var user User rows, err := db.conn.Query(statement, email) for rows.Next() { err = rows.Scan(&user.ID, &user.Name, &user.Email) if err != nil { return nil, err } } return &user, nil }