task_manager/internal/persistance/user_repository.go
Ivan Titov 788c02761d save
2025-03-21 16:05:06 +03:00

48 lines
1.2 KiB
Go

package persistance
import (
"log"
"task_manager/internal/domain/users"
_ "github.com/lib/pq"
)
func (tm *TaskManagerRepository) AddUser(user *users.User) error {
err := tm.db.QueryRow("INSERT INTO task_manager.users(name, password, email) VALUES($1,$2,$3) RETURNING id",
user.Name,
GetMD5Hash(user.Password),
user.Email).Scan(&user.Id)
if err != nil {
return err
}
return nil
}
func (tm *TaskManagerRepository) 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 *TaskManagerRepository) 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 *TaskManagerRepository) GetUser(user_name string) (*users.User, error) {
user := users.User{}
row := tm.db.QueryRow("SELECT (id,name,password,email) FROM task_manager.users WHERE name=$1", user_name)
err := row.Scan(&user.Id, &user.Name, &user.Password, &user.Email)
if err != nil {
log.Println("Ошибка получения пользователя:", err)
return nil, err
}
return &user, nil
}