93 lines
2.1 KiB
Go
93 lines
2.1 KiB
Go
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
|
|
}
|