package group import ( "cloud.o-forge.io/core/oc-lib/dbs" "cloud.o-forge.io/core/oc-lib/logs" "cloud.o-forge.io/core/oc-lib/models/utils" "cloud.o-forge.io/core/oc-lib/tools" ) type groupMongoAccessor struct { utils.AbstractAccessor // AbstractAccessor contains the basic fields of an accessor (model, caller) } // New creates a new instance of the groupMongoAccessor func NewShallowAccessor() *groupMongoAccessor { return &groupMongoAccessor{ AbstractAccessor: utils.AbstractAccessor{ Logger: logs.CreateLogger(tools.GROUP.String()), // Create a logger with the data type Type: tools.GROUP, }, } } func NewAccessor(request *tools.APIRequest) *groupMongoAccessor { return &groupMongoAccessor{ AbstractAccessor: utils.AbstractAccessor{ Logger: logs.CreateLogger(tools.GROUP.String()), // Create a logger with the data type Request: request, Type: tools.GROUP, }, } } /* * Nothing special here, just the basic CRUD operations */ func (wfa *groupMongoAccessor) DeleteOne(id string) (utils.DBObject, int, error) { return utils.GenericDeleteOne(id, wfa) } func (wfa *groupMongoAccessor) UpdateOne(set utils.DBObject, id string) (utils.DBObject, int, error) { return utils.GenericUpdateOne(set.(*Group), id, wfa, &Group{}) } func (wfa *groupMongoAccessor) StoreOne(data utils.DBObject) (utils.DBObject, int, error) { return utils.GenericStoreOne(data.(*Group), wfa) } func (wfa *groupMongoAccessor) CopyOne(data utils.DBObject) (utils.DBObject, int, error) { return utils.GenericStoreOne(data, wfa) } func (dca *groupMongoAccessor) LoadOne(id string) (utils.DBObject, int, error) { return utils.GenericLoadOne[*Group](id, func(d utils.DBObject) (utils.DBObject, int, error) { return d, 200, nil }, dca) } func (wfa *groupMongoAccessor) LoadAll(isDraft bool) ([]utils.ShallowDBObject, int, error) { return utils.GenericLoadAll[*Group](func(d utils.DBObject) utils.ShallowDBObject { return d }, isDraft, wfa) } func (wfa *groupMongoAccessor) Search(filters *dbs.Filters, search string, isDraft bool) ([]utils.ShallowDBObject, int, error) { return utils.GenericSearch[*Group](filters, search, wfa.GetDefaultFilter(search), func(d utils.DBObject) utils.ShallowDBObject { return d }, isDraft, wfa) } func (a *groupMongoAccessor) GetDefaultFilter(search string) *dbs.Filters { return &dbs.Filters{ Or: map[string][]dbs.Filter{ // search by name if no filters are provided "abstractobject.name": {{Operator: dbs.LIKE.String(), Value: search}}, }, } }