package bill 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 billMongoAccessor struct { utils.AbstractAccessor // AbstractAccessor contains the basic fields of an accessor (model, caller) } // New creates a new instance of the billMongoAccessor func NewAccessor(request *tools.APIRequest) *billMongoAccessor { return &billMongoAccessor{ AbstractAccessor: utils.AbstractAccessor{ Logger: logs.CreateLogger(tools.COMPUTE_UNITS.String()), // Create a logger with the data type Request: request, Type: tools.COMPUTE_UNITS, }, } } /* * Nothing special here, just the basic CRUD operations */ func (a *billMongoAccessor) DeleteOne(id string) (utils.DBObject, int, error) { return utils.GenericDeleteOne(id, a) } func (a *billMongoAccessor) UpdateOne(set utils.DBObject, id string) (utils.DBObject, int, error) { // should verify if a source is existing... return utils.GenericUpdateOne(set, id, a, &Bill{}) } func (a *billMongoAccessor) StoreOne(data utils.DBObject) (utils.DBObject, int, error) { return utils.GenericStoreOne(data.(*Bill), a) } func (a *billMongoAccessor) CopyOne(data utils.DBObject) (utils.DBObject, int, error) { return utils.GenericStoreOne(data.(*Bill), a) } func (a *billMongoAccessor) LoadOne(id string) (utils.DBObject, int, error) { return utils.GenericLoadOne[*Bill](id, func(d utils.DBObject) (utils.DBObject, int, error) { return d, 200, nil }, a) } func (a *billMongoAccessor) LoadAll(isDraft bool) ([]utils.ShallowDBObject, int, error) { return utils.GenericLoadAll[*Bill](a.getExec(), isDraft, a) } func (a *billMongoAccessor) Search(filters *dbs.Filters, search string, isDraft bool) ([]utils.ShallowDBObject, int, error) { return utils.GenericSearch[*Bill](filters, search, (&Bill{}).GetObjectFilters(search), a.getExec(), isDraft, a) } func (a *billMongoAccessor) getExec() func(utils.DBObject) utils.ShallowDBObject { return func(d utils.DBObject) utils.ShallowDBObject { return d } }