dc
This commit is contained in:
		@@ -2,8 +2,12 @@ package controllers
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"errors"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	oclib "cloud.o-forge.io/core/oc-lib"
 | 
			
		||||
	w "cloud.o-forge.io/core/oc-lib/models/workflow"
 | 
			
		||||
	tools "cloud.o-forge.io/core/oc-lib/tools"
 | 
			
		||||
	beego "github.com/beego/beego/v2/server/web"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -35,7 +39,9 @@ func (o *WorkflowController) Put() {
 | 
			
		||||
	var res map[string]interface{}
 | 
			
		||||
	id := o.Ctx.Input.Param(":id")
 | 
			
		||||
	json.Unmarshal(o.Ctx.Input.CopyBody(10000), &res)
 | 
			
		||||
	o.Data["json"] = oclib.UpdateOne(oclib.LibDataEnum(oclib.WORKFLOW), res, id)
 | 
			
		||||
	caller := tools.NewHTTPCaller("", "", "", oclib.GetPath(oclib.LibDataEnum(oclib.BOOKING))+"/oc/booking")
 | 
			
		||||
 | 
			
		||||
	o.Data["json"] = oclib.UpdateOne(oclib.LibDataEnum(oclib.WORKFLOW), res, id, caller)
 | 
			
		||||
	o.ServeJSON()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -47,7 +53,8 @@ func (o *WorkflowController) Put() {
 | 
			
		||||
func (o *WorkflowController) Post() {
 | 
			
		||||
	var res map[string]interface{}
 | 
			
		||||
	json.Unmarshal(o.Ctx.Input.CopyBody(10000), &res)
 | 
			
		||||
	o.Data["json"] = oclib.StoreOne(oclib.LibDataEnum(oclib.WORKFLOW), res)
 | 
			
		||||
	caller := tools.NewHTTPCaller("", "", "", oclib.GetPath(oclib.LibDataEnum(oclib.BOOKING))+"/oc/booking")
 | 
			
		||||
	o.Data["json"] = oclib.StoreOne(oclib.LibDataEnum(oclib.WORKFLOW), res, caller)
 | 
			
		||||
	o.ServeJSON()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -97,3 +104,40 @@ func (o *WorkflowController) Delete() {
 | 
			
		||||
	o.Data["json"] = oclib.DeleteOne(oclib.LibDataEnum(oclib.WORKFLOW), id)
 | 
			
		||||
	o.ServeJSON()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// @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"
 | 
			
		||||
// @Success 200 {object} models.object
 | 
			
		||||
// @router /check/: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 {
 | 
			
		||||
		o.Data["json"] = map[string]interface{}{
 | 
			
		||||
			"data": map[string]interface{}{
 | 
			
		||||
				"is_available": false,
 | 
			
		||||
			},
 | 
			
		||||
			"code":  400,
 | 
			
		||||
			"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,
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	o.ServeJSON()
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user