Skip to content

Commit 6e4e563

Browse files
authored
chore(db): improve find workflow by name (#1564)
Signed-off-by: Miguel Martinez <miguel@chainloop.dev>
1 parent 3c47f9d commit 6e4e563

2 files changed

Lines changed: 10 additions & 7 deletions

File tree

app/controlplane/pkg/data/workflow.go

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,6 @@ func (r *WorkflowRepo) GetOrgScoped(ctx context.Context, orgID, workflowID uuid.
259259
QueryWorkflows().
260260
Where(workflow.ID(workflowID), workflow.DeletedAtIsNil()).
261261
WithContract().WithOrganization().WithLatestWorkflowRun().
262-
Order(ent.Desc(workflow.FieldCreatedAt)).
263262
Only(ctx)
264263

265264
if err != nil {
@@ -274,12 +273,16 @@ func (r *WorkflowRepo) GetOrgScoped(ctx context.Context, orgID, workflowID uuid.
274273

275274
// GetOrgScopedByProjectAndName Gets a workflow by name making sure it belongs to a given org
276275
func (r *WorkflowRepo) GetOrgScopedByProjectAndName(ctx context.Context, orgID uuid.UUID, projectName, workflowName string) (*biz.Workflow, error) {
277-
wf, err := orgScopedQuery(r.data.DB, orgID).QueryWorkflows().
278-
Where(workflow.HasProjectWith(project.Name(projectName)), workflow.Name(workflowName), workflow.DeletedAtIsNil()).
279-
WithContract().WithOrganization().WithProject().WithLatestWorkflowRun().
280-
Order(ent.Desc(workflow.FieldCreatedAt)).
281-
Only(ctx)
276+
p, err := r.data.DB.Project.Query().Where(project.Name(projectName), project.OrganizationIDEQ(orgID), project.DeletedAtIsNil()).First(ctx)
277+
if err != nil {
278+
if ent.IsNotFound(err) {
279+
return nil, biz.NewErrNotFound("project")
280+
}
281+
return nil, err
282+
}
282283

284+
wf, err := r.data.DB.Workflow.Query().Where(workflow.ProjectIDEQ(p.ID), workflow.Name(workflowName), workflow.DeletedAtIsNil()).
285+
WithContract().WithOrganization().WithProject().WithLatestWorkflowRun().First(ctx)
283286
if err != nil {
284287
if ent.IsNotFound(err) {
285288
return nil, biz.NewErrNotFound("workflow")

app/controlplane/pkg/data/workflowrun.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ func (r *WorkflowRunRepo) Create(ctx context.Context, opts *biz.WorkflowRunRepoC
5656

5757
// load the version in advance to prevent locking if it already exists
5858
versionID, err := r.data.DB.ProjectVersion.Query().
59-
Where(projectversion.Version(opts.ProjectVersion), projectversion.ProjectID(wf.ProjectID), projectversion.DeletedAtIsNil()).OnlyID(ctx)
59+
Where(projectversion.Version(opts.ProjectVersion), projectversion.ProjectID(wf.ProjectID), projectversion.DeletedAtIsNil()).FirstID(ctx)
6060
if err != nil && !ent.IsNotFound(err) {
6161
return nil, fmt.Errorf("checking existing version: %w", err)
6262
}

0 commit comments

Comments
 (0)