From ad455e0e3a917cc0403db66df9454aee43e52a67 Mon Sep 17 00:00:00 2001 From: mr Date: Wed, 31 Jul 2024 16:56:30 +0200 Subject: [PATCH] nice shortcut on resource --- dbs/mongo/mongo.go | 2 +- models/resource_model/resource_model.go | 38 +++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/dbs/mongo/mongo.go b/dbs/mongo/mongo.go index c2c6e80..607fdf7 100644 --- a/dbs/mongo/mongo.go +++ b/dbs/mongo/mongo.go @@ -89,7 +89,7 @@ func (m *MongoDB) createClient(MongoURL string) error { if err = mngoClient.Ping(MngoCtx, nil); err != nil { mngoClient = nil - return errors.New("Mongodb connect " + MongoURL + ":" + "err") + return errors.New("Mongodb ping " + MongoURL + ":" + "err") } return nil } diff --git a/models/resource_model/resource_model.go b/models/resource_model/resource_model.go index 1235f54..c616471 100644 --- a/models/resource_model/resource_model.go +++ b/models/resource_model/resource_model.go @@ -20,6 +20,44 @@ type AbstractResource struct { ResourceModel *ResourceModel `json:"resource_model,omitempty" bson:"resource_model,omitempty"` } +func (abs *AbstractResource) GetModelValue(key string) interface{} { + if abs.ResourceModel == nil || abs.ResourceModel.Model == nil { + return nil + } + if _, ok := abs.ResourceModel.Model[key]; !ok { + return nil + } + return abs.ResourceModel.Model[key].Value +} + +func (abs *AbstractResource) GetModelType(key string) interface{} { + if abs.ResourceModel == nil || abs.ResourceModel.Model == nil { + return nil + } + if _, ok := abs.ResourceModel.Model[key]; !ok { + return nil + } + return abs.ResourceModel.Model[key].Type +} + +func (abs *AbstractResource) GetModelKeys() []string { + keys := make([]string, 0) + for k := range abs.ResourceModel.Model { + keys = append(keys, k) + } + return keys +} + +func (abs *AbstractResource) GetModelReadOnly(key string) interface{} { + if abs.ResourceModel == nil || abs.ResourceModel.Model == nil { + return nil + } + if _, ok := abs.ResourceModel.Model[key]; !ok { + return nil + } + return abs.ResourceModel.Model[key].ReadOnly +} + type Model struct { Type string `json:"type,omitempty" bson:"type,omitempty"` Value interface{} `json:"value,omitempty" bson:"value,omitempty"`