package persistance import ( "log" "task_manager/internal/domain/tasks" _ "github.com/lib/pq" ) func (tm *TaskManagerRepository) AddTask(task tasks.Task) error { err := tm.db.QueryRow(`INSERT INTO task_manager.tasks(id_sprint,id_user,id_project,title,description,duration,status) VALUES($1,$2,$3,$4,$5,$6,$7) RETURNING id`, task.IdSprint, task.IdUser, task.IdProject, task.Title, task.Description, task.Duration, task.Status).Scan(&task.Id) if err != nil { return err } return nil } func (tm *TaskManagerRepository) 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.Title, task.Description, task.IdUser, task.Status) if err != nil { return err } return nil } func (tm *TaskManagerRepository) 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 *TaskManagerRepository) GetTask(id int) (*tasks.Task, error) { task := tasks.Task{} row := tm.db.QueryRow("SELECT (id,id_sprint,id_user,id_project,title,description,date_start,duration,status) FROM task_manager.tasks WHERE id=$1", id) err := row.Scan(&task.Id, &task.IdSprint, &task.IdUser, &task.IdProject, &task.Title, &task.Description, &task.DateStart, &task.Duration, &task.Status) if err != nil { log.Println("Ошибка получения пользователя:", err) return nil, err } return &task, nil } func (tm *TaskManagerRepository) 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.Title, &task.Description, &task.Status, &task.DateStart, ) if err != nil { return user_tasks, err } user_tasks = append(user_tasks, task) } return user_tasks, nil }