diff --git a/dbs/mongo/mongo.go b/dbs/mongo/mongo.go index c0ee4ad..f1a2ec6 100644 --- a/dbs/mongo/mongo.go +++ b/dbs/mongo/mongo.go @@ -260,7 +260,7 @@ func (m *MongoDB) LoadOne(id string, collection_name string) (*mongo.SingleResul return res, 200, nil } -func (m *MongoDB) Search(filters dbs.Filters, collection_name string) (*mongo.Cursor, int, error) { +func (m *MongoDB) Search(filters *dbs.Filters, collection_name string) (*mongo.Cursor, int, error) { if err := m.createClient(mngoConfig.GetUrl()); err != nil { return nil, 503, err } @@ -268,21 +268,21 @@ func (m *MongoDB) Search(filters dbs.Filters, collection_name string) (*mongo.Cu opts.SetLimit(100) targetDBCollection := CollectionMap[collection_name] orList := bson.A{} - for k, filter := range filters.Or { - orList = append(orList, bson.M{ - k: bson.M{dbs.StringToOperator(filter.Operator).ToMongoOperator(): dbs.ToValueOperator(dbs.StringToOperator(filter.Operator), filter.Value)}}) - } - f := bson.D{ - {"$or", orList}, - } - if len(orList) == 0 { - f = bson.D{} - } - for k, filter := range filters.And { - f = append(f, bson.E{ - k, bson.M{ - dbs.StringToOperator(filter.Operator).ToMongoOperator(): dbs.ToValueOperator(dbs.StringToOperator(filter.Operator), filter.Value), - }}) + f := bson.D{} + if filters != nil { + for k, filter := range filters.Or { + orList = append(orList, bson.M{ + k: bson.M{dbs.StringToOperator(filter.Operator).ToMongoOperator(): dbs.ToValueOperator(dbs.StringToOperator(filter.Operator), filter.Value)}}) + } + if len(orList) > 0 { + f = bson.D{{"$or", orList}} + } + for k, filter := range filters.And { + f = append(f, bson.E{ + k, bson.M{ + dbs.StringToOperator(filter.Operator).ToMongoOperator(): dbs.ToValueOperator(dbs.StringToOperator(filter.Operator), filter.Value), + }}) + } } MngoCtx, cancel = context.WithTimeout(context.Background(), 10*time.Second) diff --git a/models/resource_model/resource_model_mongo_accessor.go b/models/resource_model/resource_model_mongo_accessor.go index 285e146..8765618 100644 --- a/models/resource_model/resource_model_mongo_accessor.go +++ b/models/resource_model/resource_model_mongo_accessor.go @@ -63,7 +63,7 @@ func (wfa *ResourceModelMongoAccessor) Search(filters *dbs.Filters, search strin }, } } - res_mongo, code, err := mongo.MONGOService.Search(*filters, wfa.GetType()) + res_mongo, code, err := mongo.MONGOService.Search(filters, wfa.GetType()) if err != nil { wfa.Logger.Error().Msg("Could not store to db. Error: " + err.Error()) return nil, code, err diff --git a/models/resources/data/data_mongo_accessor.go b/models/resources/data/data_mongo_accessor.go index 352053b..5fac39b 100644 --- a/models/resources/data/data_mongo_accessor.go +++ b/models/resources/data/data_mongo_accessor.go @@ -84,7 +84,7 @@ func (wfa *dataMongoAccessor) Search(filters *dbs.Filters, search string) ([]uti }, } } - res_mongo, code, err := mongo.MONGOService.Search(*filters, wfa.GetType()) + res_mongo, code, err := mongo.MONGOService.Search(filters, wfa.GetType()) if err != nil { wfa.Logger.Error().Msg("Could not store to db. Error: " + err.Error()) return nil, code, err diff --git a/models/resources/datacenter/datacenter_mongo_accessor.go b/models/resources/datacenter/datacenter_mongo_accessor.go index 6758160..f423732 100644 --- a/models/resources/datacenter/datacenter_mongo_accessor.go +++ b/models/resources/datacenter/datacenter_mongo_accessor.go @@ -86,7 +86,7 @@ func (wfa *datacenterMongoAccessor) Search(filters *dbs.Filters, search string) }, } } - res_mongo, code, err := mongo.MONGOService.Search(*filters, wfa.GetType()) + res_mongo, code, err := mongo.MONGOService.Search(filters, wfa.GetType()) if err != nil { wfa.Logger.Error().Msg("Could not store to db. Error: " + err.Error()) return nil, code, err diff --git a/models/resources/processing/processing_mongo_accessor.go b/models/resources/processing/processing_mongo_accessor.go index af52d4f..3368bfa 100644 --- a/models/resources/processing/processing_mongo_accessor.go +++ b/models/resources/processing/processing_mongo_accessor.go @@ -87,7 +87,7 @@ func (wfa *processingMongoAccessor) Search(filters *dbs.Filters, search string) }, } } - res_mongo, code, err := mongo.MONGOService.Search(*filters, wfa.GetType()) + res_mongo, code, err := mongo.MONGOService.Search(filters, wfa.GetType()) if err != nil { wfa.Logger.Error().Msg("Could not store to db. Error: " + err.Error()) return nil, code, err diff --git a/models/resources/storage/storage_mongo_accessor.go b/models/resources/storage/storage_mongo_accessor.go index dfd66a6..b4f574d 100644 --- a/models/resources/storage/storage_mongo_accessor.go +++ b/models/resources/storage/storage_mongo_accessor.go @@ -87,7 +87,7 @@ func (wfa *storageMongoAccessor) Search(filters *dbs.Filters, search string) ([] }, } } - res_mongo, code, err := mongo.MONGOService.Search(*filters, wfa.GetType()) + res_mongo, code, err := mongo.MONGOService.Search(filters, wfa.GetType()) if err != nil { wfa.Logger.Error().Msg("Could not store to db. Error: " + err.Error()) return nil, code, err diff --git a/models/resources/workflow/workflow_mongo_accessor.go b/models/resources/workflow/workflow_mongo_accessor.go index 623f1a6..a066d0e 100644 --- a/models/resources/workflow/workflow_mongo_accessor.go +++ b/models/resources/workflow/workflow_mongo_accessor.go @@ -91,7 +91,7 @@ func (wfa *workflowResourceMongoAccessor) Search(filters *dbs.Filters, search st }, } } - res_mongo, code, err := mongo.MONGOService.Search(*filters, wfa.GetType()) + res_mongo, code, err := mongo.MONGOService.Search(filters, wfa.GetType()) if err != nil { wfa.Logger.Error().Msg("Could not store to db. Error: " + err.Error()) return nil, code, err diff --git a/models/workflow/workflow_mongo_accessor.go b/models/workflow/workflow_mongo_accessor.go index e60f515..63fbcc3 100644 --- a/models/workflow/workflow_mongo_accessor.go +++ b/models/workflow/workflow_mongo_accessor.go @@ -171,7 +171,7 @@ func (wfa *workflowMongoAccessor) Search(filters *dbs.Filters, search string) ([ }, } } - res_mongo, code, err := mongo.MONGOService.Search(*filters, wfa.GetType()) + res_mongo, code, err := mongo.MONGOService.Search(filters, wfa.GetType()) if err != nil { wfa.Logger.Error().Msg("Could not store to db. Error: " + err.Error()) return nil, code, err diff --git a/models/workflow_execution/workflow_execution_mongo_accessor.go b/models/workflow_execution/workflow_execution_mongo_accessor.go index ee40f6e..812751e 100644 --- a/models/workflow_execution/workflow_execution_mongo_accessor.go +++ b/models/workflow_execution/workflow_execution_mongo_accessor.go @@ -60,7 +60,7 @@ func (wfa workflowExecutionMongoAccessor) LoadAll() ([]utils.ShallowDBObject, in func (wfa *workflowExecutionMongoAccessor) Search(filters *dbs.Filters, search string) ([]utils.ShallowDBObject, int, error) { objs := []utils.ShallowDBObject{} - res_mongo, code, err := mongo.MONGOService.Search(dbs.Filters{}, wfa.GetType()) + res_mongo, code, err := mongo.MONGOService.Search(nil, wfa.GetType()) if err != nil { wfa.Logger.Error().Msg("Could not store to db. Error: " + err.Error()) return nil, code, err diff --git a/models/workspace/workspace_mongo_accessor.go b/models/workspace/workspace_mongo_accessor.go index f9e7f38..f3cf693 100644 --- a/models/workspace/workspace_mongo_accessor.go +++ b/models/workspace/workspace_mongo_accessor.go @@ -145,7 +145,7 @@ func (wfa *workspaceMongoAccessor) Search(filters *dbs.Filters, search string) ( }, } } - res_mongo, code, err := mongo.MONGOService.Search(*filters, wfa.GetType()) + res_mongo, code, err := mongo.MONGOService.Search(filters, wfa.GetType()) if err != nil { wfa.Logger.Error().Msg("Could not store to db. Error: " + err.Error()) return nil, code, err