From 9514f0bff1e01efee0b019b8ff67b974f97a1bdf Mon Sep 17 00:00:00 2001 From: darius Date: Mon, 24 Jun 2024 15:23:47 +0200 Subject: [PATCH] Project Add, Update, Get, Get many added --- database/query/projectQuery.go | 80 ++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 database/query/projectQuery.go diff --git a/database/query/projectQuery.go b/database/query/projectQuery.go new file mode 100644 index 0000000..04622c0 --- /dev/null +++ b/database/query/projectQuery.go @@ -0,0 +1,80 @@ +package query + +import ( + "context" + "fmt" + "log" + "portfolio/database" + "portfolio/database/ent" + "portfolio/database/ent/project" +) + +func CreateProject(ctx context.Context, project ent.Project, id int) error { + + _, err := database.Client.Project. + Create(). + SetName(project.Name). + SetDescription(project.Description). + SetURL(project.URL). + SetDocURL(project.DocURL). + SetImageURL(project.ImageURL). + AddUserIDs(id). + Save(ctx) + if err != nil { + return fmt.Errorf("failed to create project: %w", err) + } + log.Println("project created: ") + return err +} + +func UpdateProject(ctx context.Context, project ent.Project, projectID int) error { + + _, err := database.Client.Project. + UpdateOneID(projectID). + SetName(project.Name). + SetDescription(project.Description). + SetURL(project.URL). + SetDocURL(project.DocURL). + SetImageURL(project.ImageURL). + AddUsers(project.Edges.Users...). + AddTeams(project.Edges.Teams...). + Save(ctx) + if err != nil { + return fmt.Errorf("failed to update project: %w", err) + } + log.Println("project updated: ") + return err +} + +func GetProject(ctx context.Context, projectID int) (*ent.Project, error) { + + p, err := database.Client.Project.Get(ctx, projectID) + if err != nil { + return nil, fmt.Errorf("failed to get project: %w", err) + } + return p, err +} + +func GetFullProject(ctx context.Context, projectID int) (*ent.Project, error) { + + p, err := database.Client.Project. + Query(). + WithUsers(). + WithTeams(). + Where(project.ID(projectID)). + Only(ctx) + if err != nil { + return nil, fmt.Errorf("failed to get project: %w", err) + } + return p, err +} + +func GetProjects(ctx context.Context) (ent.Projects, error) { + + p, err := database.Client.Project.Query(). + All(ctx) + if err != nil { + return nil, fmt.Errorf("failed to get projects: %w", err) + } + return p, err +}