task_manager/internal/persistance/user_repository.go
2025-03-09 23:22:12 +03:00

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
}