Documentation
¶
Index ¶
- Constants
- Variables
- type BuyingFlow
- type BuyingFlowStep
- type Cart
- type CartItem
- type CartRequest
- type Client
- func (c *Client) AddSimple(ctx context.Context, productPriceID string, quantity int) (*Cart, error)
- func (c *Client) FinishBuyingFlow(ctx context.Context, flow *BuyingFlow) (*BuyingFlow, error)
- func (c *Client) Menu(ctx context.Context) (*Menu, error)
- func (c *Client) MenuHTML(ctx context.Context) (string, error)
- func (c *Client) MenuJSON(ctx context.Context) (*Menu, error)
- func (c *Client) RequiresConfiguration(ctx context.Context, productPriceID string) (bool, error)
- func (c *Client) RestaurantInfo(ctx context.Context) (*RestaurantInfo, error)
- func (c *Client) SetState(state State)
- func (c *Client) ShowCart(ctx context.Context) (*Cart, error)
- func (c *Client) StartBuyingFlow(ctx context.Context, productPriceID string) (*BuyingFlow, error)
- func (c *Client) State() State
- type Config
- type Menu
- type MenuCategory
- type MenuProduct
- type RequiredResult
- type RestaurantInfo
- type State
- type Variant
Constants ¶
View Source
const ( DefaultBaseURL = "https://dobrabula.orderwebsite.com" DefaultSiteID = "a30e364b-df5c-11e7-93f9-525400841de1" DefaultRestaurantID = "b8a354b8-c958-11eb-a1e9-525400080521" DefaultLanguage = "pl" DefaultDeliveryType = DeliveryTypeDelivery DefaultCartLocation = CartLocationMenu DefaultPaymentMethod = PaymentMethodOnline )
View Source
const ( HeaderAccept = "Accept" HeaderContentType = "Content-Type" HeaderUserAgent = "User-Agent" HeaderXRequestedWith = "X-Requested-With" )
View Source
const ( ContentTypeJSON = "application/json" ContentTypeHTML = "text/html" )
View Source
const ( DeliveryTypeDelivery = "DELIVERY" DeliveryTypeTakeaway = "TAKEAWAY" DeliveryTypeOnSite = "ONSITE" )
View Source
const ( CartLocationMenu = "MENU" CartLocationOrderForm = "ORDER_FORM" )
View Source
const ( PaymentMethodOnline = "ONLINE" PaymentMethodCash = "CASH" PaymentMethodCard = "CART" )
Variables ¶
View Source
var ErrProductRequiresConfiguration = errors.New("upmenu product requires configuration")
Functions ¶
This section is empty.
Types ¶
type BuyingFlow ¶
type BuyingFlow struct {
BuyingFlowID string `json:"buyingFlowId,omitempty"`
RestaurantID string `json:"restaurantId,omitempty"`
CartID string `json:"cartId,omitempty"`
ProductPriceID string `json:"productPriceId,omitempty"`
ProductName string `json:"productName,omitempty"`
ProductPrice *float64 `json:"productPrice,omitempty"`
Quantity int `json:"quantity,omitempty"`
Steps []BuyingFlowStep `json:"steps,omitempty"`
Errors []string `json:"errors,omitempty"`
TotalPrice *float64 `json:"totalPrice,omitempty"`
Raw map[string]any `json:"-"`
}
type BuyingFlowStep ¶
type Cart ¶
type Cart struct {
ID string `json:"id,omitempty"`
DeliveryType string `json:"delivery_type,omitempty"`
DeliveryStatus string `json:"delivery_status,omitempty"`
TotalCost *float64 `json:"total_cost,omitempty"`
ProductsCost *float64 `json:"products_cost,omitempty"`
DeliveryCost *float64 `json:"delivery_cost,omitempty"`
ItemsSize int `json:"items_size,omitempty"`
Items []CartItem `json:"items,omitempty"`
Messages []string `json:"messages,omitempty"`
Errors []string `json:"errors,omitempty"`
}
type CartRequest ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func (*Client) FinishBuyingFlow ¶
func (c *Client) FinishBuyingFlow(ctx context.Context, flow *BuyingFlow) (*BuyingFlow, error)
func (*Client) RequiresConfiguration ¶
func (*Client) RestaurantInfo ¶
func (c *Client) RestaurantInfo(ctx context.Context) (*RestaurantInfo, error)
func (*Client) StartBuyingFlow ¶
type Menu ¶
type Menu struct {
Categories []MenuCategory `json:"categories"`
Products []MenuProduct `json:"products"`
}
func ParseMenuHTML ¶
type MenuCategory ¶
type MenuCategory struct {
ID string `json:"id,omitempty"`
Name string `json:"name,omitempty"`
Description string `json:"description,omitempty"`
Products []MenuProduct `json:"products,omitempty"`
}
type MenuProduct ¶
type MenuProduct struct {
ID string `json:"id,omitempty"`
CategoryID string `json:"category_id,omitempty"`
CategoryName string `json:"category_name,omitempty"`
Name string `json:"name,omitempty"`
Description string `json:"description,omitempty"`
ImageURL string `json:"image_url,omitempty"`
ProductPriceID string `json:"product_price_id,omitempty"`
BasePrice *float64 `json:"base_price,omitempty"`
RequiresFlow bool `json:"requires_flow"`
AvailableOptions []Variant `json:"available_options,omitempty"`
}
type RequiredResult ¶
type RequiredResult struct {
Required bool `json:"required"`
}
type RestaurantInfo ¶
type RestaurantInfo struct {
ID string `json:"id,omitempty"`
Name string `json:"name,omitempty"`
URL string `json:"url,omitempty"`
Street string `json:"street,omitempty"`
PostalCode string `json:"postal_code,omitempty"`
City string `json:"city,omitempty"`
Phone string `json:"phone,omitempty"`
Email string `json:"email,omitempty"`
Currency string `json:"currency,omitempty"`
Delivery bool `json:"delivery"`
Takeaway bool `json:"takeaway"`
OnSite bool `json:"onsite"`
OnlineOrdering bool `json:"online_ordering"`
OpenNow bool `json:"open_now"`
MinimumOrderPrice *float64 `json:"minimum_order_price,omitempty"`
MinimumDeliveryCost *float64 `json:"minimum_delivery_cost,omitempty"`
MaximumDeliveryCost *float64 `json:"maximum_delivery_cost,omitempty"`
}
Click to show internal directories.
Click to hide internal directories.