package persistance import ( "log" "task_manager/internal/domain/tasks" _ "github.com/lib/pq" ) func (tm *TaskManager) AddTask(task tasks.Task) error { err := tm.db.QueryRow("INSERT INTO task_manager.tasks(name, description) VALUES($1,$2) RETURNING id", task.Name, task.Description).Scan(&task.Id) if err != nil { return err } return nil } func (tm *TaskManager) UpdateTask(task tasks.Task) error { _, err := tm.db.Exec("UPDATE task_manager.tasks SET name=$1, description=$2, id_user=$3, status=$4 WHERE id=$3", task.Name, task.Description, task.IdUser, task.Status) if err != nil { return err } return nil } func (tm *TaskManager) DeleteTask(task tasks.Task) error { _, err := tm.db.Exec("DELETE FROM task_manager.tasks WHERE id=$1", task.Id) if err != nil { return err } return nil } func (tm *TaskManager) GetTask(id int) (*tasks.Task, error) { task := tasks.Task{} row := tm.db.QueryRow("SELECT (id,id_user,name,description,status,creation_date,update_date) FROM task_manager.tasks WHERE id=$1", id) err := row.Scan(task.Id, task.IdUser, task.Name, task.Description, task.Status, task.CreationDate, task.UpdateDate) if err != nil { log.Println("Ошибка получения пользователя:", err) return nil, err } return &task, nil } func (tm *TaskManager) GetUserTasks(id_user int) ([]tasks.Task, error) { user_tasks := []tasks.Task{} rows, err := tm.db.Query("SELECT (id,id_user,name,description,status,creation_date,update_date) FROM task_manager.tasks WHERE id_user=$1", id_user) if err != nil { return user_tasks, err } for rows.Next() { task := tasks.Task{} err = rows.Scan(&task.Id, &task.IdUser, &task.Name, &task.Description, &task.Status, &task.CreationDate, &task.UpdateDate, ) if err != nil { return user_tasks, err } user_tasks = append(user_tasks, task) } return user_tasks, nil }