Debug booking
This commit is contained in:
		@@ -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