AuthForwarded API

This commit is contained in:
mr
2026-02-20 10:32:48 +01:00
parent 145dcba0d3
commit 3e6795294f
5 changed files with 50 additions and 20 deletions

View File

@@ -38,11 +38,13 @@ var paths = map[tools.DataType]map[tools.METHOD]string{ // paths to call other O
// @Success 200 {workspace} models.workspace
// @router /search/:search [get]
func (o *WorkflowController) Search() {
user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request)
// user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request)
// store and return Id or post with UUID
search := o.Ctx.Input.Param(":search")
isDraft := o.Ctx.Input.Query("is_draft")
o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.WORKFLOW), user, peerID, groups, nil).Search(nil, search, isDraft == "true")
// o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.WORKFLOW), user, peerID, groups, nil).Search(nil, search, isDraft == "true")
o.Data["json"] = oclib.NewRequestAdmin(oclib.LibDataEnum(oclib.WORKFLOW), nil).Search(nil, search, isDraft == "true")
o.ServeJSON()
}
@@ -53,7 +55,7 @@ func (o *WorkflowController) Search() {
// @Success 200 {object} models.workflow
// @router /:id [put]
func (o *WorkflowController) Put() {
user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request)
// user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request)
// store and return Id or post with UUID
var res map[string]interface{}
id := o.Ctx.Input.Param(":id")
@@ -62,7 +64,9 @@ func (o *WorkflowController) Put() {
caller := tools.NewHTTPCaller(paths) // create a new HTTP caller
caller.Disabled = oclib.IsQueryParamsEquals(o.Ctx.Input, "is_remote", true)
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)
o.Data["json"] = data
o.ServeJSON()
}
@@ -73,12 +77,13 @@ func (o *WorkflowController) Put() {
// @Success 200 {object} models.workflow
// @router / [post]
func (o *WorkflowController) Post() {
user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request)
// user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request)
var res map[string]interface{}
json.Unmarshal(o.Ctx.Input.CopyBody(10000000), &res)
caller := tools.NewHTTPCaller(paths) // create a new HTTP caller
caller.Disabled = oclib.IsQueryParamsEquals(o.Ctx.Input, "is_remote", true)
data := oclib.NewRequest(oclib.LibDataEnum(oclib.WORKFLOW), user, peerID, groups, caller).StoreOne(res)
// data := oclib.NewRequest(oclib.LibDataEnum(oclib.WORKFLOW), user, peerID, groups, caller).StoreOne(res)
data := oclib.NewRequestAdmin(oclib.LibDataEnum(oclib.WORKFLOW), caller).StoreOne(res)
o.Data["json"] = data
o.ServeJSON()
}
@@ -106,9 +111,11 @@ func (o *WorkflowController) Publish() {
// @Success 200 {workflow} models.workflow
// @router / [get]
func (o *WorkflowController) GetAll() {
user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request)
// user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request)
isDraft := o.Ctx.Input.Query("is_draft")
o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.WORKFLOW), user, peerID, groups, nil).LoadAll(isDraft == "true")
// o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.WORKFLOW), user, peerID, groups, nil).LoadAll(isDraft == "true")
o.Data["json"] = oclib.NewRequestAdmin(oclib.LibDataEnum(oclib.WORKFLOW), nil).LoadAll(isDraft == "true")
o.ServeJSON()
}
@@ -118,11 +125,13 @@ func (o *WorkflowController) GetAll() {
// @Success 200 {workflow} models.workflow
// @router /:id [get]
func (o *WorkflowController) Get() {
user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request)
// user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request)
id := o.Ctx.Input.Param(":id")
caller := tools.NewHTTPCaller(paths) // create a new HTTP caller
caller.Disabled = oclib.IsQueryParamsEquals(o.Ctx.Input, "is_remote", true)
o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.WORKFLOW), user, peerID, groups, caller).LoadOne(id)
// .Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.WORKFLOW), user, peerID, groups, caller).LoadOne(id)
o.Data["json"] = oclib.NewRequestAdmin(oclib.LibDataEnum(oclib.WORKFLOW), caller).LoadOne(id)
o.ServeJSON()
}
@@ -162,8 +171,10 @@ func (o *WorkflowController) Check() {
"error": errors.New("invalid date format"),
}
} else {
user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request)
res := oclib.NewRequest(oclib.LibDataEnum(oclib.WORKFLOW), user, peerID, groups, nil).LoadOne(id)
// user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request)
//res := oclib.NewRequest(oclib.LibDataEnum(oclib.WORKFLOW), user, peerID, groups, nil).LoadOne(id)
res := oclib.NewRequestAdmin(oclib.LibDataEnum(oclib.WORKFLOW), nil).LoadOne(id)
if res.Data != nil {
workflow := res.ToWorkflow()
caller := tools.NewHTTPCaller(map[tools.DataType]map[tools.METHOD]string{ // paths to call other OC services
@@ -175,7 +186,8 @@ func (o *WorkflowController) Check() {
},
})
isAvailable, err := workflow.CheckBooking(caller) // check booking
logger.Info().Msg(fmt.Sprintf("Result of availability check on %v between %v and %v : %v", peerID, o.Ctx.Input.Param(":start_date"), o.Ctx.Input.Param(":end_date"), isAvailable))
fmt.Println(err)
logger.Info().Msg(fmt.Sprintf("Result of availability check between %v and %v : %v", o.Ctx.Input.Param(":start_date"), o.Ctx.Input.Param(":end_date"), isAvailable))
code := 200
if !isAvailable { // if not available then its a conflict
logger.Info().Msg("Returning code 409 after checking availability, error value :" + fmt.Sprint(err))