accessor
This commit is contained in:
parent
33c284cd4c
commit
6d104288b7
@ -6,32 +6,38 @@ import (
|
|||||||
"cloud.o-forge.io/core/oc-lib/models/resources"
|
"cloud.o-forge.io/core/oc-lib/models/resources"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type LibData int
|
||||||
|
|
||||||
const (
|
const (
|
||||||
INVALID = resources.INVALID
|
INVALID LibData = iota
|
||||||
DATA = resources.DATA
|
DATA = resources.DATA
|
||||||
PROCESSING = resources.PROCESSING
|
PROCESSING = resources.PROCESSING
|
||||||
STORAGE = resources.STORAGE
|
STORAGE = resources.STORAGE
|
||||||
DATACENTER = resources.DATACENTER
|
DATACENTER = resources.DATACENTER
|
||||||
WORKFLOW = resources.WORKFLOW
|
WORKFLOW = resources.WORKFLOW
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func (d LibData) EnumIndex() int {
|
||||||
|
return int(d)
|
||||||
|
}
|
||||||
|
|
||||||
func Init() {
|
func Init() {
|
||||||
mongo.MONGOService.Init(models.GetModelsNames(), GetConfig())
|
mongo.MONGOService.Init(models.GetModelsNames(), GetConfig())
|
||||||
}
|
}
|
||||||
|
|
||||||
func LoadOne(name string, id string) interface{} {
|
func LoadOne(col LibData, id string) interface{} {
|
||||||
return models.Model(name).GetAccessor().LoadOne(id)
|
return models.Model(col.EnumIndex()).GetAccessor().LoadOne(id)
|
||||||
}
|
}
|
||||||
|
|
||||||
func UpdateOne(name string, set map[string]interface{}, id string) interface{} {
|
func UpdateOne(col LibData, set map[string]interface{}, id string) interface{} {
|
||||||
return models.Model(name).GetAccessor().UpdateOne(set, id)
|
return models.Model(col.EnumIndex()).GetAccessor().UpdateOne(set, id)
|
||||||
}
|
}
|
||||||
|
|
||||||
func DeleteOne(name string, id string) interface{} {
|
func DeleteOne(col LibData, id string) interface{} {
|
||||||
return models.Model(name).GetAccessor().DeleteOne(id)
|
return models.Model(col.EnumIndex()).GetAccessor().DeleteOne(id)
|
||||||
}
|
}
|
||||||
|
|
||||||
func StoreOne(name string, object map[string]interface{}) interface{} {
|
func StoreOne(col LibData, object map[string]interface{}) interface{} {
|
||||||
model := models.Model(name)
|
model := models.Model(col.EnumIndex())
|
||||||
return model.GetAccessor().StoreOne(model.Deserialize(object))
|
return model.GetAccessor().StoreOne(model.Deserialize(object))
|
||||||
}
|
}
|
||||||
|
@ -12,19 +12,19 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var models = map[string]func() utils.DBObject{
|
var models = map[string]func() utils.DBObject{
|
||||||
w.WORKFLOW: func() utils.DBObject { return &w.Workflow{} },
|
w.WORKFLOW: func() utils.DBObject { return &w.Workflow{} },
|
||||||
r.ToString(r.DATA): func() utils.DBObject { return &d.Data{} },
|
r.DATA.String(): func() utils.DBObject { return &d.Data{} },
|
||||||
r.ToString(r.DATACENTER): func() utils.DBObject { return &dc.Datacenter{} },
|
r.DATACENTER.String(): func() utils.DBObject { return &dc.Datacenter{} },
|
||||||
r.ToString(r.STORAGE): func() utils.DBObject { return &s.Storage{} },
|
r.STORAGE.String(): func() utils.DBObject { return &s.Storage{} },
|
||||||
r.ToString(r.PROCESSING): func() utils.DBObject { return &p.Processing{} },
|
r.PROCESSING.String(): func() utils.DBObject { return &p.Processing{} },
|
||||||
}
|
}
|
||||||
|
|
||||||
func Model(model string) utils.DBObject {
|
func Model(model int) utils.DBObject {
|
||||||
log := logs.CreateLogger("oclib", "")
|
log := logs.CreateLogger("oclib", "")
|
||||||
if _, ok := models[model]; ok {
|
if _, ok := models[r.FromInt(model)]; ok {
|
||||||
return models[model]()
|
return models[r.FromInt(model)]()
|
||||||
}
|
}
|
||||||
log.Error().Msg("Can't find model " + model + ".")
|
log.Error().Msg("Can't find model " + r.FromInt(model) + ".")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,8 +26,17 @@ var str = [...]string{
|
|||||||
"workflow",
|
"workflow",
|
||||||
}
|
}
|
||||||
|
|
||||||
func ToString(r ResourceType) string {
|
func FromInt(i int) string {
|
||||||
return str[r]
|
return str[i]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d ResourceType) String() string {
|
||||||
|
return str[d]
|
||||||
|
}
|
||||||
|
|
||||||
|
// EnumIndex - Creating common behavior - give the type a EnumIndex functio
|
||||||
|
func (d ResourceType) EnumIndex() int {
|
||||||
|
return int(d)
|
||||||
}
|
}
|
||||||
|
|
||||||
type Resource interface {
|
type Resource interface {
|
||||||
|
Loading…
Reference in New Issue
Block a user