Adding Workspace Logic
This commit is contained in:
@@ -2,10 +2,12 @@ package oclib
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"slices"
|
||||
|
||||
"cloud.o-forge.io/core/oc-lib/dbs/mongo"
|
||||
"cloud.o-forge.io/core/oc-lib/models/utils"
|
||||
"cloud.o-forge.io/core/oc-lib/models/workflow_execution"
|
||||
"cloud.o-forge.io/core/oc-lib/models/workspace"
|
||||
"github.com/vk496/cron"
|
||||
)
|
||||
|
||||
@@ -89,6 +91,45 @@ func (wfa *WorkflowMongoAccessor) LoadOne(id string) (utils.DBObject, int, error
|
||||
return nil, code, err
|
||||
}
|
||||
res_mongo.Decode(&workflow)
|
||||
// add to workspace
|
||||
access := workspace.WorkspaceMongoAccessor{}
|
||||
ws, _, err := mongo.MONGOService.LoadFilter(map[string]interface{}{
|
||||
"active": true,
|
||||
}, utils.WORKSPACE.String())
|
||||
if err == nil {
|
||||
var results []workspace.Workspace
|
||||
if err = ws.All(mongo.MngoCtx, &results); err != nil {
|
||||
return nil, 404, err
|
||||
}
|
||||
for _, res := range results {
|
||||
for _, w := range workflow.Workflows {
|
||||
if !slices.Contains(res.Workflows, w) {
|
||||
res.Workflows = append(res.Workflows, w)
|
||||
}
|
||||
}
|
||||
for _, w := range workflow.Datas {
|
||||
if !slices.Contains(res.Datas, w) {
|
||||
res.Datas = append(res.Datas, w)
|
||||
}
|
||||
}
|
||||
for _, w := range workflow.Datacenters {
|
||||
if !slices.Contains(res.Datacenters, w) {
|
||||
res.Datacenters = append(res.Datacenters, w)
|
||||
}
|
||||
}
|
||||
for _, w := range workflow.Storages {
|
||||
if !slices.Contains(res.Storages, w) {
|
||||
res.Storages = append(res.Storages, w)
|
||||
}
|
||||
}
|
||||
for _, w := range workflow.Processings {
|
||||
if !slices.Contains(res.Processings, w) {
|
||||
res.Processings = append(res.Processings, w)
|
||||
}
|
||||
}
|
||||
access.UpdateOne(&res, res.GetID())
|
||||
}
|
||||
}
|
||||
return &workflow, 200, nil
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user