save
This commit is contained in:
parent
556fa77831
commit
32416be943
@ -7,7 +7,7 @@ CREATE DATABASE tasks;
|
|||||||
CREATE SCHEMA task_manager;
|
CREATE SCHEMA task_manager;
|
||||||
|
|
||||||
|
|
||||||
CREATE TABLE task_manager.user(
|
CREATE TABLE task_manager.users(
|
||||||
"id" SERIAL PRIMARY KEY UNIQUE,
|
"id" SERIAL PRIMARY KEY UNIQUE,
|
||||||
"login" TEXT NOT NULL UNIQUE,
|
"login" TEXT NOT NULL UNIQUE,
|
||||||
"password" TEXT NOT NULL,
|
"password" TEXT NOT NULL,
|
||||||
|
@ -6,7 +6,7 @@ CREATE TABLE task_manager.project (
|
|||||||
"id" SERIAL PRIMARY KEY UNIQUE,
|
"id" SERIAL PRIMARY KEY UNIQUE,
|
||||||
"name" TEXT NOT NULL,
|
"name" TEXT NOT NULL,
|
||||||
"description" TEXT NOT NULL,
|
"description" TEXT NOT NULL,
|
||||||
"date" TEXT NOT NULL
|
"date" TEXT NOT NULL DEFAULT now()
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE task_manager.user_project (
|
CREATE TABLE task_manager.user_project (
|
||||||
@ -14,5 +14,5 @@ CREATE TABLE task_manager.user_project (
|
|||||||
"projects" INTEGER NOT NULL,
|
"projects" INTEGER NOT NULL,
|
||||||
PRIMARY KEY ("users", "projects"),
|
PRIMARY KEY ("users", "projects"),
|
||||||
FOREIGN KEY ("projects") REFERENCES task_manager.project ("id") ON DELETE CASCADE,
|
FOREIGN KEY ("projects") REFERENCES task_manager.project ("id") ON DELETE CASCADE,
|
||||||
FOREIGN KEY ("users") REFERENCES task_manager.user ("id") ON DELETE CASCADE
|
FOREIGN KEY ("users") REFERENCES task_manager.users ("id") ON DELETE CASCADE
|
||||||
);
|
);
|
||||||
|
@ -13,7 +13,7 @@ CREATE TABLE task_manager.task(
|
|||||||
"date_start" DATE DEFAULT now(),
|
"date_start" DATE DEFAULT now(),
|
||||||
"duration" INTEGER,
|
"duration" INTEGER,
|
||||||
"status" task_manager.task_status DEFAULT 'todo',
|
"status" task_manager.task_status DEFAULT 'todo',
|
||||||
FOREIGN KEY (id_user) REFERENCES task_manager.user(id) ON DELETE SET NULL,
|
FOREIGN KEY (id_user) REFERENCES task_manager.users(id) ON DELETE SET NULL,
|
||||||
FOREIGN KEY (id_sprint) REFERENCES task_manager.sprint(id) ON DELETE SET NULL,
|
FOREIGN KEY (id_sprint) REFERENCES task_manager.sprint(id) ON DELETE SET NULL,
|
||||||
FOREIGN KEY (id_project) REFERENCES task_manager.project(id) ON DELETE CASCADE
|
FOREIGN KEY (id_project) REFERENCES task_manager.project(id) ON DELETE CASCADE
|
||||||
);
|
);
|
@ -1,14 +0,0 @@
|
|||||||
version: '3'
|
|
||||||
services:
|
|
||||||
tasks-postgres:
|
|
||||||
image: docker.io/postgres:13
|
|
||||||
name: tasks-postgres
|
|
||||||
environment:
|
|
||||||
POSTGRES_USER: postgres
|
|
||||||
POSTGRES_PASSWORD: postgres
|
|
||||||
ports:
|
|
||||||
5432:5432
|
|
||||||
volumes:
|
|
||||||
- ../database/init:/docker-entrypoint-initdb.d
|
|
||||||
|
|
||||||
|
|
31
internal/persistance/project_repository.go
Normal file
31
internal/persistance/project_repository.go
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
package persistance
|
||||||
|
|
||||||
|
import (
|
||||||
|
"task_manager/internal/domain/project"
|
||||||
|
|
||||||
|
_ "github.com/lib/pq"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (tm *TaskManagerRepository) AddProject(newProject *project.Project) error {
|
||||||
|
err := tm.db.QueryRow(`INSERT INTO task_manager.project(name,description)
|
||||||
|
VALUES ($1,$2)
|
||||||
|
RETURNING id
|
||||||
|
`, newProject.Name, newProject.Description).Scan(&newProject.Id)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (tm *TaskManagerRepository) DeleteProject(project *project.Project) error {
|
||||||
|
_, err := tm.db.Exec(`DELETE FROM task_manager.project WHERE id=$1`, project.Id)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (tm *TaskManagerRepository) GetProjects() ([]project.Project, error) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
0
internal/persistance/sprint_repository.go
Normal file
0
internal/persistance/sprint_repository.go
Normal file
@ -7,7 +7,7 @@ import (
|
|||||||
_ "github.com/lib/pq"
|
_ "github.com/lib/pq"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (tm *TaskManagerRepository) AddTask(task tasks.Task) error {
|
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)
|
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)
|
VALUES($1,$2,$3,$4,$5,$6,$7)
|
||||||
RETURNING id`,
|
RETURNING id`,
|
||||||
@ -80,7 +80,9 @@ func (tm *TaskManagerRepository) GetTask(id int) (*tasks.Task, error) {
|
|||||||
func (tm *TaskManagerRepository) GetUserTasks(id_user int) ([]tasks.Task, error) {
|
func (tm *TaskManagerRepository) GetUserTasks(id_user int) ([]tasks.Task, error) {
|
||||||
user_tasks := []tasks.Task{}
|
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)
|
rows, err := tm.db.Query(`SELECT (id,id_project,id_user,id_sprint,title,description,duration,status)
|
||||||
|
FROM task_manager.tasks
|
||||||
|
WHERE id_user=$1`, id_user)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return user_tasks, err
|
return user_tasks, err
|
||||||
}
|
}
|
||||||
@ -88,11 +90,13 @@ func (tm *TaskManagerRepository) GetUserTasks(id_user int) ([]tasks.Task, error)
|
|||||||
for rows.Next() {
|
for rows.Next() {
|
||||||
task := tasks.Task{}
|
task := tasks.Task{}
|
||||||
err = rows.Scan(&task.Id,
|
err = rows.Scan(&task.Id,
|
||||||
|
&task.IdProject,
|
||||||
&task.IdUser,
|
&task.IdUser,
|
||||||
|
&task.IdSprint,
|
||||||
&task.Title,
|
&task.Title,
|
||||||
&task.Description,
|
&task.Description,
|
||||||
|
&task.Duration,
|
||||||
&task.Status,
|
&task.Status,
|
||||||
&task.DateStart,
|
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return user_tasks, err
|
return user_tasks, err
|
||||||
|
Loading…
Reference in New Issue
Block a user