45 lines
1.1 KiB
Go
45 lines
1.1 KiB
Go
package persistance
|
|
|
|
import (
|
|
"log"
|
|
"task_manager/internal/domain/users"
|
|
|
|
_ "github.com/lib/pq"
|
|
)
|
|
|
|
func (tm *TaskManager) AddUser(user *users.User) error {
|
|
err := tm.db.QueryRow("INSERT INTO task_manager.users(name, password) VALUES($1,$2) RETURNING id", user.Name, GetMD5Hash(user.Password)).Scan(&user.Id)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (tm *TaskManager) DeleteUser(user *users.User) error {
|
|
_, err := tm.db.Exec("DELETE FROM task_manager.users WHERE name=$1", user.Name)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (tm *TaskManager) UpdateUser(user *users.User) error {
|
|
_, err := tm.db.Exec("UPDATE task_manager.users SET name=$1, password=$2 WHERE id=$3", user.Name, user.Password, user.Id)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (tm *TaskManager) GetUser(user_name string) (*users.User, error) {
|
|
user := users.User{}
|
|
row := tm.db.QueryRow("SELECT (id,name,password) FROM task_manager.users WHERE name=$1", user_name)
|
|
err := row.Scan(user.Id, user.Name, user.Password)
|
|
if err != nil {
|
|
log.Println("Ошибка получения пользователя:", err)
|
|
return nil, err
|
|
}
|
|
|
|
return &user, nil
|
|
}
|