@@ -44,6 +44,7 @@ type WorkflowRepo interface {
4444 Update (ctx context.Context , id uuid.UUID , opts * WorkflowUpdateOpts ) (* Workflow , error )
4545 List (ctx context.Context , orgID uuid.UUID ) ([]* Workflow , error )
4646 GetOrgScoped (ctx context.Context , orgID , workflowID uuid.UUID ) (* Workflow , error )
47+ GetOrgScopedByName (ctx context.Context , orgID uuid.UUID , workflowName string ) (* Workflow , error )
4748 IncRunsCounter (ctx context.Context , workflowID uuid.UUID ) error
4849 FindByID (ctx context.Context , workflowID uuid.UUID ) (* Workflow , error )
4950 SoftDelete (ctx context.Context , workflowID uuid.UUID ) error
@@ -231,6 +232,24 @@ func (uc *WorkflowUseCase) FindByIDInOrg(ctx context.Context, orgID, workflowID
231232 return wf , nil
232233}
233234
235+ func (uc * WorkflowUseCase ) FindByNameInOrg (ctx context.Context , orgID , workflowName string ) (* Workflow , error ) {
236+ orgUUID , err := uuid .Parse (orgID )
237+ if err != nil {
238+ return nil , NewErrInvalidUUID (err )
239+ }
240+
241+ if workflowName == "" {
242+ return nil , NewErrValidationStr ("empty workflow name" )
243+ }
244+
245+ wf , err := uc .wfRepo .GetOrgScopedByName (ctx , orgUUID , workflowName )
246+ if err != nil {
247+ return nil , fmt .Errorf ("failed to get workflow: %w" , err )
248+ }
249+
250+ return wf , nil
251+ }
252+
234253// Delete soft-deletes the entry
235254func (uc * WorkflowUseCase ) Delete (ctx context.Context , orgID , workflowID string ) error {
236255 orgUUID , err := uuid .Parse (orgID )
0 commit comments