Debug booking
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
package controllers
|
||||
|
||||
import (
|
||||
oclib "cloud.o-forge.io/core/oc-lib"
|
||||
"cloud.o-forge.io/core/oc-lib/tools"
|
||||
beego "github.com/beego/beego/v2/server/web"
|
||||
"github.com/nats-io/nats.go"
|
||||
)
|
||||
|
||||
// VersionController operations for Version
|
||||
@@ -30,9 +30,7 @@ func (c *VersionController) Status() {
|
||||
state, code, err := api.GetState()
|
||||
|
||||
if state == tools.ALIVE {
|
||||
state, _, err = api.CheckRemoteAPIs([]string{
|
||||
"http://" + oclib.LibDataEnum(oclib.BOOKING).String() + oclib.GetPath(oclib.LibDataEnum(oclib.BOOKING)),
|
||||
})
|
||||
_, err = nats.Connect(tools.GetConfig().NATSUrl)
|
||||
}
|
||||
if err != nil {
|
||||
errStr = err.Error()
|
||||
|
||||
@@ -3,11 +3,10 @@ package controllers
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"time"
|
||||
"fmt"
|
||||
|
||||
oclib "cloud.o-forge.io/core/oc-lib"
|
||||
"cloud.o-forge.io/core/oc-lib/models/utils"
|
||||
w "cloud.o-forge.io/core/oc-lib/models/workflow"
|
||||
"cloud.o-forge.io/core/oc-lib/tools"
|
||||
beego "github.com/beego/beego/v2/server/web"
|
||||
)
|
||||
@@ -41,6 +40,9 @@ func (o *WorkflowController) Put() {
|
||||
tools.POST: oclib.GetPath(oclib.LibDataEnum(oclib.BOOKING)) + "/oc/booking/",
|
||||
tools.DELETE: oclib.GetPath(oclib.LibDataEnum(oclib.BOOKING)) + "/oc/booking/:id",
|
||||
},
|
||||
utils.PEER.String(): {
|
||||
tools.POST: oclib.GetPath(oclib.LibDataEnum(oclib.PEER)) + "/oc",
|
||||
},
|
||||
}
|
||||
// store and return Id or post with UUID
|
||||
var res map[string]interface{}
|
||||
@@ -63,6 +65,9 @@ func (o *WorkflowController) Post() {
|
||||
tools.POST: oclib.GetPath(oclib.LibDataEnum(oclib.BOOKING)) + "/oc/booking/",
|
||||
tools.DELETE: oclib.GetPath(oclib.LibDataEnum(oclib.BOOKING)) + "/oc/booking/:id",
|
||||
},
|
||||
utils.PEER.String(): {
|
||||
tools.POST: oclib.GetPath(oclib.LibDataEnum(oclib.PEER)) + "/oc",
|
||||
},
|
||||
}
|
||||
var res map[string]interface{}
|
||||
json.Unmarshal(o.Ctx.Input.CopyBody(10000), &res)
|
||||
@@ -119,6 +124,9 @@ func (o *WorkflowController) Delete() {
|
||||
tools.POST: oclib.GetPath(oclib.LibDataEnum(oclib.BOOKING)) + "/oc/booking/",
|
||||
tools.DELETE: oclib.GetPath(oclib.LibDataEnum(oclib.BOOKING)) + "/oc/booking/:id",
|
||||
},
|
||||
utils.PEER.String(): {
|
||||
tools.POST: oclib.GetPath(oclib.LibDataEnum(oclib.PEER)) + "/oc",
|
||||
},
|
||||
}
|
||||
id := o.Ctx.Input.Param(":id")
|
||||
caller := tools.NewHTTPCaller(paths)
|
||||
@@ -128,15 +136,15 @@ func (o *WorkflowController) Delete() {
|
||||
|
||||
// @Title Check
|
||||
// @Description check booking
|
||||
// @Param start_date path string "the booking start date" format "2006-01-02T15:04:05"
|
||||
// @Param end_date path string "the booking end date" format "2006-01-02T15:04:05"
|
||||
// @Param id path string "the booking workflow id"
|
||||
// @Param start_date path string "the booking start date format "2006-01-02T15:04:05"
|
||||
// @Param end_date path string "the booking end date" format 2006-01-02T15:04:05"
|
||||
// @Success 200 {object} models.object
|
||||
// @router /check/:start_date/:end_date [get]
|
||||
// @router /check/:id/:start_date/:end_date [get]
|
||||
func (o *WorkflowController) Check() {
|
||||
// store and return Id or post with UUID
|
||||
date, err := time.Parse("2006-01-02T15:04:05", o.Ctx.Input.Param(":start_date"))
|
||||
date2, err2 := time.Parse("2006-01-02T15:04:05", o.Ctx.Input.Param(":end_date"))
|
||||
if err != nil || err2 != nil {
|
||||
id := o.Ctx.Input.Param(":id")
|
||||
if id == "" {
|
||||
o.Data["json"] = map[string]interface{}{
|
||||
"data": map[string]interface{}{
|
||||
"is_available": false,
|
||||
@@ -145,20 +153,34 @@ func (o *WorkflowController) Check() {
|
||||
"error": errors.New("invalid date format"),
|
||||
}
|
||||
} else {
|
||||
workflow := &w.Workflow{}
|
||||
workflow.Schedule = &w.WorkflowSchedule{Start: &date, End: &date2}
|
||||
isAvailable, err := workflow.CheckBooking(oclib.GetPath(oclib.LibDataEnum(oclib.BOOKING)) + "/oc/booking/check/:start_date/:end_date")
|
||||
code := 200
|
||||
if !isAvailable {
|
||||
code = 409
|
||||
}
|
||||
o.Data["json"] = map[string]interface{}{
|
||||
"data": map[string]interface{}{
|
||||
"is_available": isAvailable,
|
||||
},
|
||||
"code": code,
|
||||
"error": err,
|
||||
fmt.Println("id", id)
|
||||
res := oclib.LoadOne(oclib.LibDataEnum(oclib.WORKFLOW), id)
|
||||
if res.Code == 200 {
|
||||
workflow := res.ToWorkflow()
|
||||
caller := tools.NewHTTPCaller(map[string]map[tools.METHOD]string{
|
||||
utils.PEER.String(): {
|
||||
tools.POST: oclib.GetPath(oclib.LibDataEnum(oclib.PEER)) + "/oc",
|
||||
},
|
||||
utils.BOOKING.String(): {
|
||||
tools.GET: oclib.GetPath(oclib.LibDataEnum(oclib.BOOKING)) + "/oc/booking/check/:id/" + o.Ctx.Input.Param(":start_date") + "/" + o.Ctx.Input.Param(":end_date"),
|
||||
},
|
||||
})
|
||||
isAvailable, err := workflow.CheckBooking(caller)
|
||||
code := 200
|
||||
if !isAvailable {
|
||||
code = 409
|
||||
}
|
||||
o.Data["json"] = map[string]interface{}{
|
||||
"data": map[string]interface{}{
|
||||
"is_available": isAvailable,
|
||||
},
|
||||
"code": code,
|
||||
"error": err,
|
||||
}
|
||||
} else {
|
||||
o.Data["json"] = res
|
||||
}
|
||||
|
||||
}
|
||||
o.ServeJSON()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user