1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- package model
- type User struct {
- ID uint64 `json:"id"`
- Email string `json:"email"`
- Password string `json:"password"`
- Name string `json:"name"`
- }
- type UserDetails struct {
- ID uint64 `json:"id"`
- Email string `json:"email"`
- 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
- }
- func GetUserById(id uint64, db *Db) (*UserDetails, error) {
- stmt := "SELECT id, name, email FROM users WHERE id=$1 LIMIT 1"
- var user UserDetails
- rows, err := db.conn.Query(stmt, id)
- for rows.Next() {
- err = rows.Scan(&user.ID, &user.Name, &user.Email)
- if err != nil {
- return nil, err
- }
- }
- return &user, nil
- }
|