Add New
This commit is contained in:
@@ -38,6 +38,7 @@ func new(t tools.DataType, request *tools.APIRequest) *workflowMongoAccessor {
|
||||
Logger: logs.CreateLogger(t.String()), // Create a logger with the data type
|
||||
Request: request,
|
||||
Type: t,
|
||||
New: func() *Workflow { return &Workflow{} },
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -179,7 +180,7 @@ func (a *workflowMongoAccessor) execute(workflow *Workflow, delete bool, active
|
||||
}
|
||||
|
||||
func (a *workflowMongoAccessor) LoadOne(id string) (utils.DBObject, int, error) {
|
||||
return utils.GenericLoadOne[*Workflow](id, func(d utils.DBObject) (utils.DBObject, int, error) {
|
||||
return utils.GenericLoadOne(id, a.New(), func(d utils.DBObject) (utils.DBObject, int, error) {
|
||||
w := d.(*Workflow)
|
||||
a.execute(w, false, true) // if no workspace is attached to the workflow, create it
|
||||
return d, 200, nil
|
||||
@@ -187,7 +188,8 @@ func (a *workflowMongoAccessor) LoadOne(id string) (utils.DBObject, int, error)
|
||||
}
|
||||
|
||||
func (a *workflowMongoAccessor) Search(filters *dbs.Filters, search string, isDraft bool) ([]utils.ShallowDBObject, int, error) {
|
||||
return utils.GenericSearch[*Workflow](filters, search, (&Workflow{}).GetObjectFilters(search), func(d utils.DBObject) utils.ShallowDBObject { return a.verifyResource(d) }, isDraft, a)
|
||||
return utils.GenericSearch[*Workflow](filters, search, a.New().GetObjectFilters(search),
|
||||
func(d utils.DBObject) utils.ShallowDBObject { return a.verifyResource(d) }, isDraft, a)
|
||||
}
|
||||
|
||||
func (a *workflowMongoAccessor) verifyResource(obj utils.DBObject) utils.DBObject {
|
||||
@@ -201,17 +203,18 @@ func (a *workflowMongoAccessor) verifyResource(obj utils.DBObject) utils.DBObjec
|
||||
continue
|
||||
}
|
||||
var access utils.Accessor
|
||||
if t == tools.COMPUTE_RESOURCE {
|
||||
switch t {
|
||||
case tools.COMPUTE_RESOURCE:
|
||||
access = resources.NewAccessor[*resources.ComputeResource](t, a.GetRequest(), func() utils.DBObject { return &resources.ComputeResource{} })
|
||||
} else if t == tools.PROCESSING_RESOURCE {
|
||||
case tools.PROCESSING_RESOURCE:
|
||||
access = resources.NewAccessor[*resources.ProcessingResource](t, a.GetRequest(), func() utils.DBObject { return &resources.ProcessingResource{} })
|
||||
} else if t == tools.STORAGE_RESOURCE {
|
||||
case tools.STORAGE_RESOURCE:
|
||||
access = resources.NewAccessor[*resources.StorageResource](t, a.GetRequest(), func() utils.DBObject { return &resources.StorageResource{} })
|
||||
} else if t == tools.WORKFLOW_RESOURCE {
|
||||
case tools.WORKFLOW_RESOURCE:
|
||||
access = resources.NewAccessor[*resources.WorkflowResource](t, a.GetRequest(), func() utils.DBObject { return &resources.WorkflowResource{} })
|
||||
} else if t == tools.DATA_RESOURCE {
|
||||
case tools.DATA_RESOURCE:
|
||||
access = resources.NewAccessor[*resources.DataResource](t, a.GetRequest(), func() utils.DBObject { return &resources.DataResource{} })
|
||||
} else {
|
||||
default:
|
||||
wf.Graph.Clear(resource.GetID())
|
||||
}
|
||||
if error := utils.VerifyAccess(access, resource.GetID()); error != nil {
|
||||
|
||||
Reference in New Issue
Block a user