implement remote call for remote action

This commit is contained in:
mr
2024-08-12 16:11:25 +02:00
parent 4575f9ad3f
commit 2ac24779cd
26 changed files with 312 additions and 144 deletions

View File

@@ -65,7 +65,7 @@ func Init(appName string) {
logs.SetAppName(appName)
logs.SetLogger(logs.CreateLogger("main", ""))
mongo.MONGOService.Init(models.GetModelsNames(), GetConfig())
accessor := (&resource_model.ResourceModel{}).GetAccessor()
accessor := (&resource_model.ResourceModel{}).GetAccessor(nil)
for _, model := range []string{utils.DATA_RESOURCE.String(), utils.PROCESSING_RESOURCE.String(), utils.STORAGE_RESOURCE.String(), utils.DATACENTER_RESOURCE.String(), utils.WORKFLOW_RESOURCE.String()} {
data, code, _ := accessor.Search(nil, model)
if code == 404 || len(data) == 0 {
@@ -97,7 +97,7 @@ func GetLogger() zerolog.Logger {
}
func Search(filters *dbs.Filters, word string, collection LibDataEnum) LibDataShallow {
d, code, err := models.Model(collection.EnumIndex()).GetAccessor().Search(filters, word)
d, code, err := models.Model(collection.EnumIndex()).GetAccessor(nil).Search(filters, word)
if err != nil {
return LibDataShallow{Data: d, Code: code, Err: err.Error()}
}
@@ -105,7 +105,7 @@ func Search(filters *dbs.Filters, word string, collection LibDataEnum) LibDataSh
}
func LoadAll(collection LibDataEnum) LibDataShallow {
d, code, err := models.Model(collection.EnumIndex()).GetAccessor().LoadAll()
d, code, err := models.Model(collection.EnumIndex()).GetAccessor(nil).LoadAll()
if err != nil {
return LibDataShallow{Data: d, Code: code, Err: err.Error()}
}
@@ -113,7 +113,7 @@ func LoadAll(collection LibDataEnum) LibDataShallow {
}
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(nil).LoadOne(id)
if err != nil {
return LibData{Data: d, Code: code, Err: err.Error()}
}
@@ -122,7 +122,7 @@ func LoadOne(collection LibDataEnum, id string) LibData {
func UpdateOne(collection LibDataEnum, set map[string]interface{}, id string) LibData {
model := models.Model(collection.EnumIndex())
d, code, err := model.GetAccessor().UpdateOne(model.Deserialize(set), id)
d, code, err := model.GetAccessor(nil).UpdateOne(model.Deserialize(set), id)
if err != nil {
return LibData{Data: d, Code: code, Err: err.Error()}
}
@@ -130,7 +130,7 @@ func UpdateOne(collection LibDataEnum, set map[string]interface{}, id string) Li
}
func DeleteOne(collection LibDataEnum, id string) LibData {
d, code, err := models.Model(collection.EnumIndex()).GetAccessor().DeleteOne(id)
d, code, err := models.Model(collection.EnumIndex()).GetAccessor(nil).DeleteOne(id)
if err != nil {
return LibData{Data: d, Code: code, Err: err.Error()}
}
@@ -139,7 +139,7 @@ func DeleteOne(collection LibDataEnum, id string) LibData {
func StoreOne(collection LibDataEnum, object map[string]interface{}) LibData {
model := models.Model(collection.EnumIndex())
d, code, err := model.GetAccessor().StoreOne(model.Deserialize(object))
d, code, err := model.GetAccessor(nil).StoreOne(model.Deserialize(object))
if err != nil {
return LibData{Data: d, Code: code, Err: err.Error()}
}
@@ -148,7 +148,7 @@ func StoreOne(collection LibDataEnum, object map[string]interface{}) LibData {
func CopyOne(collection LibDataEnum, object map[string]interface{}) LibData {
model := models.Model(collection.EnumIndex())
d, code, err := model.GetAccessor().CopyOne(model.Deserialize(object))
d, code, err := model.GetAccessor(nil).CopyOne(model.Deserialize(object))
if err != nil {
return LibData{Data: d, Code: code, Err: err.Error()}
}
@@ -158,72 +158,72 @@ func CopyOne(collection LibDataEnum, object map[string]interface{}) LibData {
// ================ CAST ========================= //
func (l *LibData) ToDataResource() *data.DataResource {
if l.Data.GetAccessor().GetType() == utils.DATA_RESOURCE.String() {
if l.Data.GetAccessor(nil).GetType() == utils.DATA_RESOURCE.String() {
return l.Data.(*data.DataResource)
}
return nil
}
func (l *LibData) ToDatacenterResource() *datacenter.DatacenterResource {
if l.Data != nil && l.Data.GetAccessor().GetType() == utils.DATACENTER_RESOURCE.String() {
if l.Data != nil && l.Data.GetAccessor(nil).GetType() == utils.DATACENTER_RESOURCE.String() {
return l.Data.(*datacenter.DatacenterResource)
}
return nil
}
func (l *LibData) ToStorageResource() *storage.StorageResource {
if l.Data.GetAccessor().GetType() == utils.STORAGE_RESOURCE.String() {
if l.Data.GetAccessor(nil).GetType() == utils.STORAGE_RESOURCE.String() {
return l.Data.(*storage.StorageResource)
}
return nil
}
func (l *LibData) ToProcessingResource() *processing.ProcessingResource {
if l.Data.GetAccessor().GetType() == utils.PROCESSING_RESOURCE.String() {
if l.Data.GetAccessor(nil).GetType() == utils.PROCESSING_RESOURCE.String() {
return l.Data.(*processing.ProcessingResource)
}
return nil
}
func (l *LibData) ToWorkflowResource() *w.WorkflowResource {
if l.Data.GetAccessor().GetType() == utils.WORKFLOW_RESOURCE.String() {
if l.Data.GetAccessor(nil).GetType() == utils.WORKFLOW_RESOURCE.String() {
return l.Data.(*w.WorkflowResource)
}
return nil
}
func (l *LibData) ToPeer() *peer.Peer {
if l.Data.GetAccessor().GetType() == utils.PEER.String() {
if l.Data.GetAccessor(nil).GetType() == utils.PEER.String() {
return l.Data.(*peer.Peer)
}
return nil
}
func (l *LibData) ToWorkflow() *w2.Workflow {
if l.Data.GetAccessor().GetType() == utils.WORKFLOW.String() {
if l.Data.GetAccessor(nil).GetType() == utils.WORKFLOW.String() {
return l.Data.(*w2.Workflow)
}
return nil
}
func (l *LibData) ToWorkspace() *workspace.Workspace {
if l.Data.GetAccessor().GetType() == utils.WORKSPACE.String() {
if l.Data.GetAccessor(nil).GetType() == utils.WORKSPACE.String() {
return l.Data.(*workspace.Workspace)
}
return nil
}
func (l *LibData) ToSharedWorkspace() *shared_workspace.SharedWorkspace {
if l.Data.GetAccessor().GetType() == utils.SHARED_WORKSPACE.String() {
if l.Data.GetAccessor(nil).GetType() == utils.SHARED_WORKSPACE.String() {
return l.Data.(*shared_workspace.SharedWorkspace)
}
return nil
}
func (l *LibData) ToRule() *rule.Rule {
if l.Data.GetAccessor().GetType() == utils.SHARED_WORKSPACE.String() {
if l.Data.GetAccessor(nil).GetType() == utils.SHARED_WORKSPACE.String() {
return l.Data.(*rule.Rule)
}
return nil
}
func (l *LibData) ToWorkflowExecution() *workflow_execution.WorkflowExecution {
if l.Data.GetAccessor().GetType() == utils.WORKFLOW_EXECUTION.String() {
if l.Data.GetAccessor(nil).GetType() == utils.WORKFLOW_EXECUTION.String() {
return l.Data.(*workflow_execution.WorkflowExecution)
}
return nil