diff --git a/models/utils/interfaces.go b/models/utils/interfaces.go index 679f234..82bdf5b 100644 --- a/models/utils/interfaces.go +++ b/models/utils/interfaces.go @@ -11,8 +11,8 @@ type ShallowDBObject interface { GenerateID() GetID() string GetName() string - Deserialize(j map[string]interface{}, obj DBObject) DBObject Serialize(obj DBObject) map[string]interface{} + Deserialize(j map[string]interface{}, obj DBObject) DBObject } // DBObject is an interface that defines the basic methods for a DBObject @@ -20,33 +20,33 @@ type DBObject interface { GenerateID() GetID() string GetName() string - GetCreatorID() string IsDrafted() bool - StoreDraftDefault() - CanUpdate(set DBObject) (bool, DBObject) CanDelete() bool + StoreDraftDefault() + GetCreatorID() string UpToDate(user string, create bool) + CanUpdate(set DBObject) (bool, DBObject) VerifyAuth(request *tools.APIRequest) bool - Deserialize(j map[string]interface{}, obj DBObject) DBObject Serialize(obj DBObject) map[string]interface{} GetAccessor(request *tools.APIRequest) Accessor + Deserialize(j map[string]interface{}, obj DBObject) DBObject } // Accessor is an interface that defines the basic methods for an Accessor type Accessor interface { - GetRequest() *tools.APIRequest - GetType() tools.DataType GetUser() string GetPeerID() string GetGroups() []string + ShouldVerifyAuth() bool + GetType() tools.DataType GetLogger() *zerolog.Logger GetCaller() *tools.HTTPCaller - ShouldVerifyAuth() bool - Search(filters *dbs.Filters, search string, isDraft bool) ([]ShallowDBObject, int, error) - LoadAll(isDraft bool) ([]ShallowDBObject, int, error) + GetRequest() *tools.APIRequest LoadOne(id string) (DBObject, int, error) DeleteOne(id string) (DBObject, int, error) CopyOne(data DBObject) (DBObject, int, error) StoreOne(data DBObject) (DBObject, int, error) + LoadAll(isDraft bool) ([]ShallowDBObject, int, error) UpdateOne(set DBObject, id string) (DBObject, int, error) + Search(filters *dbs.Filters, search string, isDraft bool) ([]ShallowDBObject, int, error) } diff --git a/models/workflow_execution/workflow_execution_mongo_accessor.go b/models/workflow_execution/workflow_execution_mongo_accessor.go index a4bb826..b14ec51 100644 --- a/models/workflow_execution/workflow_execution_mongo_accessor.go +++ b/models/workflow_execution/workflow_execution_mongo_accessor.go @@ -60,7 +60,7 @@ func (a *workflowExecutionMongoAccessor) LoadAll(isDraft bool) ([]utils.ShallowD } func (a *workflowExecutionMongoAccessor) Search(filters *dbs.Filters, search string, isDraft bool) ([]utils.ShallowDBObject, int, error) { - return utils.GenericSearch[*WorkflowExecutions](filters, search, (&WorkflowExecutions{}).GetObjectFilters(search), a.getExec(), isDraft, a) + return utils.GenericSearch[*WorkflowExecutions](filters, search, a.GetExecFilters(search), a.getExec(), isDraft, a) } func (a *workflowExecutionMongoAccessor) getExec() func(utils.DBObject) utils.ShallowDBObject { @@ -76,3 +76,10 @@ func (a *workflowExecutionMongoAccessor) getExec() func(utils.DBObject) utils.Sh return d } } + +func (a *workflowExecutionMongoAccessor) GetExecFilters(search string) *dbs.Filters { + return &dbs.Filters{ + Or: map[string][]dbs.Filter{ // filter by name if no filters are provided + "abstractobject.name": {{Operator: dbs.LIKE.String(), Value: search + "_execution"}}, + }} +}