From 4782caaca0a7ed851d5bb5e27600ee53cd36f664 Mon Sep 17 00:00:00 2001 From: Nikolai Rodionov Date: Thu, 21 May 2026 14:55:34 +0200 Subject: [PATCH] WIP: Adding list project Signed-off-by: Nikolai Rodionov --- internal/repository/projects.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/internal/repository/projects.go b/internal/repository/projects.go index 4022b90..648ff94 100644 --- a/internal/repository/projects.go +++ b/internal/repository/projects.go @@ -25,6 +25,11 @@ type ProjectData struct { // CreateProject adds a new projects to the database func CreateProject(ctx context.Context, db *sql.DB, data *ProjectData) error { + tx, err := StartTransaction(ctx, db) + if err != nil { + return err + } + defer tx.Rollback() query := ` INSERT INTO projects (uuid, name, slug, description, owner_user_id, billing_account_id, created_by, created_at, updated_by, updated_at) @@ -32,7 +37,7 @@ func CreateProject(ctx context.Context, db *sql.DB, data *ProjectData) error { ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10) ` - if _, err := db.ExecContext(ctx, query, + if _, err := tx.ExecContext(ctx, query, data.UUID, data.Name, data.Slug, data.Description, data.CreatedBy, data.CreatedBy, data.CreatedBy, data.CreatedAt, data.CreatedBy, data.CreatedAt); err != nil { var pgErr *pgconn.PgError @@ -93,5 +98,10 @@ func UpdateProject(ctx context.Context, db *sql.DB, data *ProjectData) error { // ListProjects get all projects that are available for the user from the database func ListProjects(ctx context.Context, db *sql.DB) ([]*ProjectData, error) { + query := ` + SELECT p.uuid, p.name + FROM projects p + JOIN project_membership pm ON pm.project_id = p.id + WHERE pm.user_id = ?` return nil, nil }