diff --git a/README.md b/README.md index 8ff63ad..0147d4f 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,14 @@ func main() { Quoting: ChannelFeatureReceive, Deleting: ChannelFeatureBoth, }, + Product: Product{ + Creating: ChannelFeatureSend, + Deleting: ChannelFeatureSend, + }, + Order: Order{ + Creating: ChannelFeatureBoth, + Deleting: ChannelFeatureSend, + }, }, } diff --git a/v1/client.go b/v1/client.go index 3dbe78e..6e94b0d 100644 --- a/v1/client.go +++ b/v1/client.go @@ -39,6 +39,14 @@ func New(url string, token string) *MgClient { // Quoting: ChannelFeatureReceive, // Deleting: ChannelFeatureSend, // }, +// Product: Product{ +// Creating: ChannelFeatureSend, +// Deleting: ChannelFeatureSend, +// }, +// Order: Order{ +// Creating: ChannelFeatureBoth, +// Deleting: ChannelFeatureSend, +// }, // }, // } // @@ -91,6 +99,14 @@ func (c *MgClient) ActivateTransportChannel(request Channel) (ActivateResponse, // Quoting: ChannelFeatureReceive, // Deleting: ChannelFeatureBoth, // }, +// Product: Product{ +// Creating: ChannelFeatureSend, +// Deleting: ChannelFeatureSend, +// }, +// Order: Order{ +// Creating: ChannelFeatureBoth, +// Deleting: ChannelFeatureSend, +// }, // }, // } // diff --git a/v1/client_test.go b/v1/client_test.go index 91a4870..0a52dc1 100644 --- a/v1/client_test.go +++ b/v1/client_test.go @@ -37,6 +37,14 @@ func TestMgClient_ActivateTransportChannel(t *testing.T) { Quoting: ChannelFeatureReceive, Deleting: ChannelFeatureBoth, }, + Product: Product{ + Creating: ChannelFeatureSend, + Deleting: ChannelFeatureSend, + }, + Order: Order{ + Creating: ChannelFeatureBoth, + Deleting: ChannelFeatureSend, + }, }, } @@ -66,6 +74,14 @@ func TestMgClient_ActivateNewTransportChannel(t *testing.T) { Quoting: ChannelFeatureBoth, Deleting: ChannelFeatureSend, }, + Product: Product{ + Creating: ChannelFeatureSend, + Deleting: ChannelFeatureSend, + }, + Order: Order{ + Creating: ChannelFeatureBoth, + Deleting: ChannelFeatureSend, + }, }, } @@ -107,6 +123,14 @@ func TestMgClient_UpdateTransportChannel(t *testing.T) { Quoting: ChannelFeatureBoth, Deleting: ChannelFeatureBoth, }, + Product: Product{ + Creating: ChannelFeatureSend, + Deleting: ChannelFeatureSend, + }, + Order: Order{ + Creating: ChannelFeatureBoth, + Deleting: ChannelFeatureSend, + }, }, } diff --git a/v1/types.go b/v1/types.go index 02c0014..3bdfb22 100644 --- a/v1/types.go +++ b/v1/types.go @@ -20,6 +20,20 @@ const ( MsgTypeCommand string = "command" MsgTypeOrder string = "order" MsgTypeProduct string = "product" + + MsgOrderStatusCodeNew = "new" + MsgOrderStatusCodeApproval = "approval" + MsgOrderStatusCodeAssembling = "assembling" + MsgOrderStatusCodeDelivery = "delivery" + MsgOrderStatusCodeComplete = "complete" + MsgOrderStatusCodeCancel = "cancel" + + MsgCurrencyRub = "rub" + MsgCurrencyUah = "uah" + MsgCurrencyByr = "byr" + MsgCurrencyKzt = "kzt" + MsgCurrencyUsd = "usd" + MsgCurrencyEur = "eur" ) // MgClient type @@ -204,12 +218,14 @@ type MessageDataProduct struct { // MessageDataOrder order data from webhook type MessageDataOrder struct { - Number string `json:"number"` - Url string `json:"url,omitempty"` - Date string `json:"date,omitempty"` - Cost *MessageDataOrderCost `json:"cost,omitempty"` - Status *MessageDataOrderStatus `json:"status,omitempty"` - Items []MessageDataOrderItem `json:"items,omitempty"` + Number string `json:"number"` + Url string `json:"url,omitempty"` + Date string `json:"date,omitempty"` + Cost *MessageDataOrderCost `json:"cost,omitempty"` + Status *MessageDataOrderStatus `json:"status,omitempty"` + Delivery *MessageDataOrderDelivery `json:"delivery"` + Payments []MessageDataOrderPayment `json:"payment"` + Items []MessageDataOrderItem `json:"items,omitempty"` } type MessageDataOrderStatus struct { @@ -234,6 +250,23 @@ type MessageDataOrderQuantity struct { Unit string `json:"unit"` } +type MessageDataOrderPayment struct { + Name string `json:"name"` + Status *MessageDataOrderPaymentStatus `json:"status"` + Amount *MessageDataOrderCost `json:"amount"` +} + +type MessageDataOrderPaymentStatus struct { + Name string `json:"name"` + Payed bool `json:"payed"` +} + +type MessageDataOrderDelivery struct { + Name string `json:"name"` + Amount *MessageDataOrderCost `json:"amount"` + Address string `json:"address"` +} + // TransportRequestMeta request metadata type TransportRequestMeta struct { ID uint64 `json:"id"`