Adding Workspace Logic

This commit is contained in:
mr
2024-07-25 09:28:55 +02:00
parent 51e94e73e5
commit 094ae0a7f0
8 changed files with 203 additions and 7 deletions

View File

@@ -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
}