Shallow Get All
This commit is contained in:
parent
a687206a1b
commit
94cd62acfe
@ -197,3 +197,17 @@ func (m *MongoDB) LoadOne(id string, collection_name string) (*mongo.SingleResul
|
|||||||
}
|
}
|
||||||
return res, 200, nil
|
return res, 200, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *MongoDB) LoadAll(collection_name string) (*mongo.Cursor, int, error) {
|
||||||
|
targetDBCollection := CollectionMap[collection_name]
|
||||||
|
|
||||||
|
MngoCtx, cancel = context.WithTimeout(context.Background(), 10*time.Second)
|
||||||
|
defer cancel()
|
||||||
|
|
||||||
|
res, err := targetDBCollection.Find(MngoCtx, bson.D{})
|
||||||
|
if err != nil {
|
||||||
|
m.Logger.Error().Msg("Couldn't find any resources. Error : " + err.Error())
|
||||||
|
return nil, 404, err
|
||||||
|
}
|
||||||
|
return res, 200, nil
|
||||||
|
}
|
||||||
|
@ -24,6 +24,12 @@ func (d LibDataEnum) EnumIndex() int {
|
|||||||
return int(d)
|
return int(d)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type LibDataShallow struct {
|
||||||
|
Data []utils.ShallowDBObject `bson:"data" json:"data"`
|
||||||
|
Code int `bson:"code" json:"code"`
|
||||||
|
Err string `bson:"error" json:"error"`
|
||||||
|
}
|
||||||
|
|
||||||
type LibData struct {
|
type LibData struct {
|
||||||
Data utils.DBObject `bson:"data" json:"data"`
|
Data utils.DBObject `bson:"data" json:"data"`
|
||||||
Code int `bson:"code" json:"code"`
|
Code int `bson:"code" json:"code"`
|
||||||
@ -40,6 +46,14 @@ func GetLogger() zerolog.Logger {
|
|||||||
return logs.GetLogger()
|
return logs.GetLogger()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func LoadAll(collection LibDataEnum) LibDataShallow {
|
||||||
|
d, code, err := models.Model(collection.EnumIndex()).GetAccessor().LoadAll()
|
||||||
|
if err != nil {
|
||||||
|
return LibDataShallow{Data: d, Code: code, Err: err.Error()}
|
||||||
|
}
|
||||||
|
return LibDataShallow{Data: d, Code: code}
|
||||||
|
}
|
||||||
|
|
||||||
func LoadOne(collection LibDataEnum, id string) LibData {
|
func LoadOne(collection LibDataEnum, id string) LibData {
|
||||||
d, code, err := models.Model(collection.EnumIndex()).GetAccessor().LoadOne(id)
|
d, code, err := models.Model(collection.EnumIndex()).GetAccessor().LoadOne(id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -2,6 +2,7 @@ package data
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
mongo "cloud.o-forge.io/core/oc-lib/dbs/mongo"
|
mongo "cloud.o-forge.io/core/oc-lib/dbs/mongo"
|
||||||
|
"cloud.o-forge.io/core/oc-lib/models/resources"
|
||||||
"cloud.o-forge.io/core/oc-lib/models/utils"
|
"cloud.o-forge.io/core/oc-lib/models/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -36,3 +37,18 @@ func (dma *DataMongoAccessor) LoadOne(id string) (utils.DBObject, int, error) {
|
|||||||
|
|
||||||
return &data, 200, nil
|
return &data, 200, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (wfa DataMongoAccessor) LoadAll() ([]utils.ShallowDBObject, int, error) {
|
||||||
|
objs := []utils.ShallowDBObject{}
|
||||||
|
res_mongo, code, err := mongo.MONGOService.LoadAll(wfa.GetType())
|
||||||
|
if err != nil {
|
||||||
|
wfa.Logger.Error().Msg("Could not retrieve any from db. Error: " + err.Error())
|
||||||
|
return nil, code, err
|
||||||
|
}
|
||||||
|
for res_mongo.Next(mongo.MngoCtx) {
|
||||||
|
var obj resources.AbstractResource
|
||||||
|
res_mongo.Decode(&obj)
|
||||||
|
objs = append(objs, &obj)
|
||||||
|
}
|
||||||
|
return objs, 200, nil
|
||||||
|
}
|
||||||
|
@ -2,6 +2,7 @@ package processing
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"cloud.o-forge.io/core/oc-lib/dbs/mongo"
|
"cloud.o-forge.io/core/oc-lib/dbs/mongo"
|
||||||
|
"cloud.o-forge.io/core/oc-lib/models/resources"
|
||||||
"cloud.o-forge.io/core/oc-lib/models/utils"
|
"cloud.o-forge.io/core/oc-lib/models/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -39,3 +40,18 @@ func (pma *ProcessingMongoAccessor) LoadOne(id string) (utils.DBObject, int, err
|
|||||||
|
|
||||||
return &processing, 200, nil
|
return &processing, 200, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (wfa ProcessingMongoAccessor) LoadAll() ([]utils.ShallowDBObject, int, error) {
|
||||||
|
objs := []utils.ShallowDBObject{}
|
||||||
|
res_mongo, code, err := mongo.MONGOService.LoadAll(wfa.GetType())
|
||||||
|
if err != nil {
|
||||||
|
wfa.Logger.Error().Msg("Could not retrieve any from db. Error: " + err.Error())
|
||||||
|
return nil, code, err
|
||||||
|
}
|
||||||
|
for res_mongo.Next(mongo.MngoCtx) {
|
||||||
|
var obj resources.AbstractResource
|
||||||
|
res_mongo.Decode(&obj)
|
||||||
|
objs = append(objs, &obj)
|
||||||
|
}
|
||||||
|
return objs, 200, nil
|
||||||
|
}
|
||||||
|
@ -8,12 +8,7 @@ import (
|
|||||||
|
|
||||||
// Resource is the interface to be implemented by all classes inheriting from Resource to have the same behavior
|
// Resource is the interface to be implemented by all classes inheriting from Resource to have the same behavior
|
||||||
|
|
||||||
//http://www.inanzzz.com/index.php/post/wqbs/a-basic-usage-of-int-and-string-enum-types-in-golang
|
// http://www.inanzzz.com/index.php/post/wqbs/a-basic-usage-of-int-and-string-enum-types-in-golang
|
||||||
|
|
||||||
type Resource interface {
|
|
||||||
GetType() utils.DataType
|
|
||||||
}
|
|
||||||
|
|
||||||
type AbstractResource struct {
|
type AbstractResource struct {
|
||||||
utils.AbstractObject
|
utils.AbstractObject
|
||||||
ShortDescription string `json:"short_description,omitempty" bson:"short_description,omitempty" validate:"required"`
|
ShortDescription string `json:"short_description,omitempty" bson:"short_description,omitempty" validate:"required"`
|
||||||
@ -23,11 +18,3 @@ type AbstractResource struct {
|
|||||||
OwnerLogo string `json:"owner_logo,omitempty" bson:"owner_logo,omitempty"`
|
OwnerLogo string `json:"owner_logo,omitempty" bson:"owner_logo,omitempty"`
|
||||||
SourceUrl string `json:"source_url,omitempty" bson:"source_url,omitempty" validate:"required"`
|
SourceUrl string `json:"source_url,omitempty" bson:"source_url,omitempty" validate:"required"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *AbstractResource) GetID() string {
|
|
||||||
return r.UUID
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *AbstractResource) GetName() string {
|
|
||||||
return r.Name
|
|
||||||
}
|
|
||||||
|
@ -2,6 +2,7 @@ package storage
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"cloud.o-forge.io/core/oc-lib/dbs/mongo"
|
"cloud.o-forge.io/core/oc-lib/dbs/mongo"
|
||||||
|
"cloud.o-forge.io/core/oc-lib/models/resources"
|
||||||
"cloud.o-forge.io/core/oc-lib/models/utils"
|
"cloud.o-forge.io/core/oc-lib/models/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -39,3 +40,18 @@ func (sma *StorageMongoAccessor) LoadOne(id string) (utils.DBObject, int, error)
|
|||||||
|
|
||||||
return &storage, 200, nil
|
return &storage, 200, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (wfa StorageMongoAccessor) LoadAll() ([]utils.ShallowDBObject, int, error) {
|
||||||
|
objs := []utils.ShallowDBObject{}
|
||||||
|
res_mongo, code, err := mongo.MONGOService.LoadAll(wfa.GetType())
|
||||||
|
if err != nil {
|
||||||
|
wfa.Logger.Error().Msg("Could not retrieve any from db. Error: " + err.Error())
|
||||||
|
return nil, code, err
|
||||||
|
}
|
||||||
|
for res_mongo.Next(mongo.MngoCtx) {
|
||||||
|
var obj resources.AbstractResource
|
||||||
|
res_mongo.Decode(&obj)
|
||||||
|
objs = append(objs, &obj)
|
||||||
|
}
|
||||||
|
return objs, 200, nil
|
||||||
|
}
|
||||||
|
@ -2,6 +2,7 @@ package oclib
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"cloud.o-forge.io/core/oc-lib/dbs/mongo"
|
"cloud.o-forge.io/core/oc-lib/dbs/mongo"
|
||||||
|
"cloud.o-forge.io/core/oc-lib/models/resources"
|
||||||
"cloud.o-forge.io/core/oc-lib/models/utils"
|
"cloud.o-forge.io/core/oc-lib/models/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -42,3 +43,18 @@ func (wfa *WorkflowResourceMongoAccessor) LoadOne(id string) (utils.DBObject, in
|
|||||||
res_mongo.Decode(&workflow)
|
res_mongo.Decode(&workflow)
|
||||||
return &workflow, 200, nil
|
return &workflow, 200, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (wfa WorkflowResourceMongoAccessor) LoadAll() ([]utils.ShallowDBObject, int, error) {
|
||||||
|
objs := []utils.ShallowDBObject{}
|
||||||
|
res_mongo, code, err := mongo.MONGOService.LoadAll(wfa.GetType())
|
||||||
|
if err != nil {
|
||||||
|
wfa.Logger.Error().Msg("Could not retrieve any from db. Error: " + err.Error())
|
||||||
|
return nil, code, err
|
||||||
|
}
|
||||||
|
for res_mongo.Next(mongo.MngoCtx) {
|
||||||
|
var obj resources.AbstractResource
|
||||||
|
res_mongo.Decode(&obj)
|
||||||
|
objs = append(objs, &obj)
|
||||||
|
}
|
||||||
|
return objs, 200, nil
|
||||||
|
}
|
||||||
|
@ -19,6 +19,10 @@ func (ao *AbstractObject) GetID() string {
|
|||||||
return ao.UUID
|
return ao.UUID
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (ao *AbstractObject) GetName() string {
|
||||||
|
return ao.Name
|
||||||
|
}
|
||||||
|
|
||||||
func (r *AbstractObject) GenerateID() {
|
func (r *AbstractObject) GenerateID() {
|
||||||
r.UUID = uuid.New().String()
|
r.UUID = uuid.New().String()
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
package utils
|
package utils
|
||||||
|
|
||||||
|
type ShallowDBObject interface {
|
||||||
|
GenerateID()
|
||||||
|
GetID() string
|
||||||
|
GetName() string
|
||||||
|
}
|
||||||
|
|
||||||
type DBObject interface {
|
type DBObject interface {
|
||||||
GenerateID()
|
GenerateID()
|
||||||
GetID() string
|
GetID() string
|
||||||
@ -12,6 +18,7 @@ type DBObject interface {
|
|||||||
type Accessor interface {
|
type Accessor interface {
|
||||||
SetLogger(t DataType)
|
SetLogger(t DataType)
|
||||||
GetType() string
|
GetType() string
|
||||||
|
LoadAll() ([]ShallowDBObject, int, error)
|
||||||
LoadOne(id string) (DBObject, int, error)
|
LoadOne(id string) (DBObject, int, error)
|
||||||
DeleteOne(id string) (DBObject, int, error)
|
DeleteOne(id string) (DBObject, int, error)
|
||||||
CopyOne(data DBObject) (DBObject, int, error)
|
CopyOne(data DBObject) (DBObject, int, error)
|
||||||
|
@ -35,3 +35,18 @@ func (wfa *WorkflowMongoAccessor) LoadOne(id string) (utils.DBObject, int, error
|
|||||||
res_mongo.Decode(&workflow)
|
res_mongo.Decode(&workflow)
|
||||||
return &workflow, 200, nil
|
return &workflow, 200, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (wfa WorkflowMongoAccessor) LoadAll() ([]utils.ShallowDBObject, int, error) {
|
||||||
|
objs := []utils.ShallowDBObject{}
|
||||||
|
res_mongo, code, err := mongo.MONGOService.LoadAll(wfa.GetType())
|
||||||
|
if err != nil {
|
||||||
|
wfa.Logger.Error().Msg("Could not retrieve any from db. Error: " + err.Error())
|
||||||
|
return nil, code, err
|
||||||
|
}
|
||||||
|
for res_mongo.Next(mongo.MngoCtx) {
|
||||||
|
var obj utils.AbstractObject
|
||||||
|
res_mongo.Decode(&obj)
|
||||||
|
objs = append(objs, &obj)
|
||||||
|
}
|
||||||
|
return objs, 200, nil
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user