Example #1
0
func OpenTab(c *gin.Context) {
	json := struct {
		WaitStaff string `json:"waitstaff" binding:"required"`
	}{}

	if err := c.BindJSON(&json); err != nil {
		c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
		return
	}

	openTabCmd := cafe.NewOpenTab(1, json.WaitStaff)
	cafe.Send(cafe.OpenTabTopic, openTabCmd)

	c.JSON(http.StatusAccepted, gin.H{"tabID": openTabCmd.ID.String()})
}
Example #2
0
func PlaceOrder(c *gin.Context) {
	json := struct {
		TabID       string `json:"tabID" binding:"required"`
		MenuNumbers []int  `json:"items" binding:"required"`
	}{}

	if err := c.BindJSON(&json); err != nil {
		c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
		return
	}

	order := []cafe.OrderedItem{}

	for _, menuNumber := range json.MenuNumbers {
		order = append(order, food[menuNumber])
	}

	cafe.Send(cafe.PlaceOrderTopic, cafe.NewPlaceOrder(uuid.Parse(json.TabID), order))
	c.String(http.StatusAccepted, "")
}