Add emission on Workflow

This commit is contained in:
mr
2026-02-23 16:54:25 +01:00
parent 3e6795294f
commit 738bd10ce2
3 changed files with 26 additions and 4 deletions

View File

@@ -6,6 +6,7 @@ import (
"fmt" "fmt"
oclib "cloud.o-forge.io/core/oc-lib" oclib "cloud.o-forge.io/core/oc-lib"
"cloud.o-forge.io/core/oc-lib/models/workflow"
"cloud.o-forge.io/core/oc-lib/tools" "cloud.o-forge.io/core/oc-lib/tools"
beego "github.com/beego/beego/v2/server/web" beego "github.com/beego/beego/v2/server/web"
) )
@@ -55,7 +56,7 @@ func (o *WorkflowController) Search() {
// @Success 200 {object} models.workflow // @Success 200 {object} models.workflow
// @router /:id [put] // @router /:id [put]
func (o *WorkflowController) Put() { func (o *WorkflowController) Put() {
// user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) user, _, _ := oclib.ExtractTokenInfo(*o.Ctx.Request)
// store and return Id or post with UUID // store and return Id or post with UUID
var res map[string]interface{} var res map[string]interface{}
id := o.Ctx.Input.Param(":id") id := o.Ctx.Input.Param(":id")
@@ -66,7 +67,9 @@ func (o *WorkflowController) Put() {
o.Ctx.Input.Param("is_remote") o.Ctx.Input.Param("is_remote")
// data := oclib.NewRequest(oclib.LibDataEnum(oclib.WORKFLOW), user, peerID, groups, caller).UpdateOne(res, id) // data := oclib.NewRequest(oclib.LibDataEnum(oclib.WORKFLOW), user, peerID, groups, caller).UpdateOne(res, id)
data := oclib.NewRequestAdmin(oclib.LibDataEnum(oclib.WORKFLOW), caller).UpdateOne(res, id) data := oclib.NewRequestAdmin(oclib.LibDataEnum(oclib.WORKFLOW), caller).UpdateOne(res, id)
if wf := data.ToWorkflow(); wf != nil {
EmitNATS(user, tools.CREATE_RESOURCE, wf)
}
o.Data["json"] = data o.Data["json"] = data
o.ServeJSON() o.ServeJSON()
} }
@@ -145,7 +148,11 @@ func (o *WorkflowController) Delete() {
id := o.Ctx.Input.Param(":id") id := o.Ctx.Input.Param(":id")
caller := tools.NewHTTPCaller(paths) // create a new HTTP caller caller := tools.NewHTTPCaller(paths) // create a new HTTP caller
caller.Disabled = oclib.IsQueryParamsEquals(o.Ctx.Input, "is_remote", true) caller.Disabled = oclib.IsQueryParamsEquals(o.Ctx.Input, "is_remote", true)
o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.WORKFLOW), user, peerID, groups, caller).DeleteOne(id) data := oclib.NewRequest(oclib.LibDataEnum(oclib.WORKFLOW), user, peerID, groups, caller).DeleteOne(id)
if wf := data.ToWorkflow(); wf != nil {
EmitNATS(user, tools.REMOVE_RESOURCE, wf)
}
o.Data["json"] = data
o.ServeJSON() o.ServeJSON()
} }
@@ -206,3 +213,14 @@ func (o *WorkflowController) Check() {
} }
o.ServeJSON() o.ServeJSON()
} }
func EmitNATS(user string, method tools.NATSMethod, wf *workflow.Workflow) {
if b, err := json.Marshal(wf); err == nil {
tools.NewNATSCaller().SetNATSPub(method, tools.NATSResponse{
FromApp: "oc-catalog",
Datatype: tools.WORKFLOW,
Method: int(method),
Payload: b,
})
}
}

2
go.mod
View File

@@ -3,7 +3,7 @@ module oc-workflow
go 1.24.6 go 1.24.6
require ( require (
cloud.o-forge.io/core/oc-lib v0.0.0-20260219084344-9662ac6d678c cloud.o-forge.io/core/oc-lib v0.0.0-20260223092355-12c506e9a7b1
github.com/beego/beego/v2 v2.3.7 github.com/beego/beego/v2 v2.3.7
github.com/nats-io/nats.go v1.41.2 github.com/nats-io/nats.go v1.41.2
github.com/smartystreets/goconvey v1.7.2 github.com/smartystreets/goconvey v1.7.2

4
go.sum
View File

@@ -28,6 +28,10 @@ cloud.o-forge.io/core/oc-lib v0.0.0-20260218132556-0b41e2505e2f h1:OFuJhi23D/UNw
cloud.o-forge.io/core/oc-lib v0.0.0-20260218132556-0b41e2505e2f/go.mod h1:jmyBwmsac/4V7XPL347qawF60JsBCDmNAMfn/ySXKYo= cloud.o-forge.io/core/oc-lib v0.0.0-20260218132556-0b41e2505e2f/go.mod h1:jmyBwmsac/4V7XPL347qawF60JsBCDmNAMfn/ySXKYo=
cloud.o-forge.io/core/oc-lib v0.0.0-20260219084344-9662ac6d678c h1:brsB6se+xMv386Vf6dSu3In2QZSH4EqgcAYkI4fNpJw= cloud.o-forge.io/core/oc-lib v0.0.0-20260219084344-9662ac6d678c h1:brsB6se+xMv386Vf6dSu3In2QZSH4EqgcAYkI4fNpJw=
cloud.o-forge.io/core/oc-lib v0.0.0-20260219084344-9662ac6d678c/go.mod h1:jmyBwmsac/4V7XPL347qawF60JsBCDmNAMfn/ySXKYo= cloud.o-forge.io/core/oc-lib v0.0.0-20260219084344-9662ac6d678c/go.mod h1:jmyBwmsac/4V7XPL347qawF60JsBCDmNAMfn/ySXKYo=
cloud.o-forge.io/core/oc-lib v0.0.0-20260223083003-28713536358b h1:Tx8hvmJJvt8BYNQsKGYuyCVnQHG59dfyYGP0+NDNxVs=
cloud.o-forge.io/core/oc-lib v0.0.0-20260223083003-28713536358b/go.mod h1:jmyBwmsac/4V7XPL347qawF60JsBCDmNAMfn/ySXKYo=
cloud.o-forge.io/core/oc-lib v0.0.0-20260223092355-12c506e9a7b1 h1:LI96GUAlCBLbPxJlEovZCbgR+CdSl2Ua70jQ2A0VVrU=
cloud.o-forge.io/core/oc-lib v0.0.0-20260223092355-12c506e9a7b1/go.mod h1:jmyBwmsac/4V7XPL347qawF60JsBCDmNAMfn/ySXKYo=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/beego/beego/v2 v2.3.7 h1:z4btKtjU/rfp5BiYHkGD2QPjK9i1E9GH+I7vfhn6Agk= github.com/beego/beego/v2 v2.3.7 h1:z4btKtjU/rfp5BiYHkGD2QPjK9i1E9GH+I7vfhn6Agk=
github.com/beego/beego/v2 v2.3.7/go.mod h1:5cqHsOHJIxkq44tBpRvtDe59GuVRVv/9/tyVDxd5ce4= github.com/beego/beego/v2 v2.3.7/go.mod h1:5cqHsOHJIxkq44tBpRvtDe59GuVRVv/9/tyVDxd5ce4=