Documentation
¶
Index ¶
- Constants
- func MakeTimestamp() int64
- type ActivateResponse
- type Channel
- type ChannelSettings
- type ChannelSettingsText
- type DeleteData
- type DeleteResponse
- type Message
- type MessageDataBot
- type MessageDataOrder
- type MessageDataOrderCost
- type MessageDataOrderDelivery
- type MessageDataOrderItem
- type MessageDataOrderPayment
- type MessageDataOrderPaymentStatus
- type MessageDataOrderQuantity
- type MessageDataOrderStatus
- type MessageDataProduct
- type MessageDataUser
- type MessagesResponse
- type MgClient
- func (c *MgClient) ActivateTransportChannel(request Channel) (ActivateResponse, int, error)
- func (c *MgClient) DeactivateTransportChannel(id uint64) (DeleteResponse, int, error)
- func (c *MgClient) DeleteMessage(request DeleteData) (MessagesResponse, int, error)
- func (c *MgClient) DeleteRequest(url string, parameters []byte) ([]byte, int, error)
- func (c *MgClient) Error(info []byte) error
- func (c *MgClient) GetRequest(urlWithParameters string) ([]byte, int, error)
- func (c *MgClient) Messages(request SendData) (MessagesResponse, int, error)
- func (c *MgClient) PostRequest(url string, parameters []byte) ([]byte, int, error)
- func (c *MgClient) PutRequest(url string, parameters []byte) ([]byte, int, error)
- func (c *MgClient) UpdateMessages(request UpdateData) (MessagesResponse, int, error)
- func (c *MgClient) UpdateTransportChannel(request Channel) (UpdateResponse, int, error)
- type Order
- type Product
- type SendData
- type SendMessage
- type SendMessageRequestQuote
- type Status
- type TransportRequestMeta
- type UpdateData
- type UpdateMessage
- type UpdateResponse
- type User
- type WebhookData
- type WebhookRequest
Constants ¶
const ( // ChannelFeatureNone channel can not implement feature ChannelFeatureNone string = "none" // ChannelFeatureReceive channel implement feature on receive ChannelFeatureReceive string = "receive" // ChannelFeatureSend channel implement feature on send ChannelFeatureSend string = "send" // ChannelFeatureBoth channel implement feature on both directions ChannelFeatureBoth string = "both" MsgTypeText string = "text" MsgTypeSystem string = "system" 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" )
Variables ¶
This section is empty.
Functions ¶
func MakeTimestamp ¶ added in v1.1.1
func MakeTimestamp() int64
Types ¶
type ActivateResponse ¶
type ActivateResponse struct { ChannelID uint64 `json:"id"` ActivatedAt time.Time `json:"activated_at"` }
ActivateResponse channel activation response
type Channel ¶
type Channel struct { ID uint64 `json:"id,omitempty"` Type string `json:"type,omitempty"` Name string `json:"name,omitempty"` Settings ChannelSettings `json:"settings,omitempty,brackets"` }
Channel type
type ChannelSettings ¶ added in v1.1.1
type ChannelSettings struct { SpamAllowed bool `json:"spam_allowed"` Status Status `json:"status"` Text ChannelSettingsText `json:"text"` Product Product `json:"product"` Order Order `json:"order"` }
ChannelSettings struct
type ChannelSettingsText ¶ added in v1.1.2
type ChannelSettingsText struct { Creating string `json:"creating"` Editing string `json:"editing"` Quoting string `json:"quoting"` Deleting string `json:"deleting"` }
ChannelSettingsText struct
type DeleteData ¶ added in v1.0.1
DeleteData struct
type DeleteResponse ¶
type DeleteResponse struct { ChannelID uint64 `json:"id"` DectivatedAt time.Time `json:"deactivated_at"` }
DeleteResponse channel deactivation response
type Message ¶
type Message struct { ExternalID string `json:"external_id"` Type string `json:"type,omitempty"` Text string `json:"text,omitempty"` }
Message struct
type MessageDataBot ¶ added in v1.1.3
MessageDataBot bot data from webhook
type MessageDataOrder ¶ added in v1.1.6
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"` Delivery *MessageDataOrderDelivery `json:"delivery"` Payments []MessageDataOrderPayment `json:"payment"` Items []MessageDataOrderItem `json:"items,omitempty"` }
MessageDataOrder order data from webhook
type MessageDataOrderCost ¶ added in v1.1.6
type MessageDataOrderDelivery ¶ added in v1.1.10
type MessageDataOrderDelivery struct { Name string `json:"name"` Price *MessageDataOrderCost `json:"price"` Address string `json:"address"` Comment string `json:"comment,omitempty"` }
type MessageDataOrderItem ¶ added in v1.1.6
type MessageDataOrderItem struct { Name string `json:"name,omitempty"` Url string `json:"url,omitempty"` Img string `json:"img,omitempty"` Quantity *MessageDataOrderQuantity `json:"quantity,omitempty"` Price *MessageDataOrderCost `json:"price,omitempty"` }
type MessageDataOrderPayment ¶ added in v1.1.10
type MessageDataOrderPayment struct { Name string `json:"name"` Status *MessageDataOrderPaymentStatus `json:"status"` Amount *MessageDataOrderCost `json:"amount"` }
type MessageDataOrderPaymentStatus ¶ added in v1.1.10
type MessageDataOrderQuantity ¶ added in v1.1.6
type MessageDataOrderStatus ¶ added in v1.1.6
type MessageDataProduct ¶ added in v1.1.6
type MessageDataProduct struct { ID uint64 `json:"id"` Name string `json:"name"` Article string `json:"article,omitempty"` Url string `json:"url,omitempty"` Img string `json:"img,omitempty"` Cost *MessageDataOrderCost `json:"cost,omitempty"` Quantity *MessageDataOrderQuantity `json:"quantity,omitempty"` }
MessageDataProduct product data from webhook
type MessageDataUser ¶ added in v1.1.3
type MessageDataUser struct { FirstName string `json:"first_name"` LastName string `json:"last_name"` Avatar string `json:"avatar"` }
MessageDataUser user data from webhook
type MessagesResponse ¶
MessagesResponse message event response
type MgClient ¶
type MgClient struct { URL string `json:"url"` Token string `json:"token"` Debug bool `json:"debug"` // contains filtered or unexported fields }
MgClient type
func (*MgClient) ActivateTransportChannel ¶
func (c *MgClient) ActivateTransportChannel(request Channel) (ActivateResponse, int, error)
ActivateTransportChannel implement channel activation
Example:
var client = v1.New("https://token.url", "cb8ccf05e38a47543ad8477d49bcba99be73bff503ea6") request := ActivateRequest{ Type: "telegram", Name: "@my_shopping_bot", Settings: ChannelSettings{ SpamAllowed: false, Status: Status{ Delivered: ChannelFeatureNone, Read: ChannelFeatureReceive, }, Text: ChannelSettingsText{ Creating: ChannelFeatureBoth, Editing: ChannelFeatureBoth, Quoting: ChannelFeatureReceive, Deleting: ChannelFeatureSend, }, Product: Product{ Creating: ChannelFeatureSend, Deleting: ChannelFeatureSend, }, Order: Order{ Creating: ChannelFeatureBoth, Deleting: ChannelFeatureSend, }, }, } data, status, err := client.ActivateTransportChannel(request) if err != nil { fmt.Printf("%v", err) } fmt.Printf("%s\n", data.CreatedAt)
func (*MgClient) DeactivateTransportChannel ¶
func (c *MgClient) DeactivateTransportChannel(id uint64) (DeleteResponse, int, error)
DeactivateTransportChannel implement channel deactivation
Example:
var client = v1.New("https://token.url", "cb8ccf05e38a47543ad8477d49bcba99be73bff503ea6") data, status, err := client.DeactivateTransportChannel(3053450384) if err != nil { fmt.Printf("%v", err) } fmt.Printf("%s\n", data.DeactivatedAt)
func (*MgClient) DeleteMessage ¶
func (c *MgClient) DeleteMessage(request DeleteData) (MessagesResponse, int, error)
DeleteMessage implement delete message
Example:
var client = v1.New("https://token.url", "cb8ccf05e38a47543ad8477d49bcba99be73bff503ea6") msg := DeleteData{ Message{ ExternalID: "274628", }, 10, } data, status, err := client.DeleteMessage(msg) if err != nil { fmt.Printf("%v", err) } fmt.Printf("%s\n", data.MessageID)
func (*MgClient) DeleteRequest ¶
DeleteRequest implements DELETE Request
func (*MgClient) GetRequest ¶
GetRequest implements GET Request
func (*MgClient) Messages ¶
func (c *MgClient) Messages(request SendData) (MessagesResponse, int, error)
Messages implement send message
Example:
var client = v1.New("https://token.url", "cb8ccf05e38a47543ad8477d49bcba99be73bff503ea6") msg := SendData{ SendMessage{ Message{ ExternalID: "274628", Type: "text", Text: "hello!", }, time.Now(), }, User{ ExternalID: "8", Nickname: "@octopus", Firstname: "Joe", }, 10, } data, status, err := client.Messages(msg) if err != nil { fmt.Printf("%v", err) } fmt.Printf("%s\n", data.MessageID)
func (*MgClient) PostRequest ¶
PostRequest implements POST Request
func (*MgClient) PutRequest ¶
PutRequest implements PUT Request
func (*MgClient) UpdateMessages ¶
func (c *MgClient) UpdateMessages(request UpdateData) (MessagesResponse, int, error)
UpdateMessages implement edit message
Example:
var client = v1.New("https://token.url", "cb8ccf05e38a47543ad8477d49bcba99be73bff503ea6") msg := UpdateData{ UpdateMessage{ Message{ ExternalID: "274628", Type: "text", Text: "hello hello!", }, MakeTimestamp(), }, 10, } data, status, err := client.UpdateMessages(msg) if err != nil { fmt.Printf("%v", err) } fmt.Printf("%s\n", data.MessageID)
func (*MgClient) UpdateTransportChannel ¶
func (c *MgClient) UpdateTransportChannel(request Channel) (UpdateResponse, int, error)
UpdateTransportChannel implement channel activation
Example:
var client = v1.New("https://token.url", "cb8ccf05e38a47543ad8477d49bcba99be73bff503ea6") request := ActivateRequest{ ID: 3053450384, Type: "telegram", Name: "@my_shopping_bot", Settings: ChannelSettings{ SpamAllowed: false, Status: Status{ Delivered: ChannelFeatureNone, Read: ChannelFeatureReceive, }, Text: ChannelSettingsText{ Creating: ChannelFeatureBoth, Editing: ChannelFeatureSend, Quoting: ChannelFeatureReceive, Deleting: ChannelFeatureBoth, }, Product: Product{ Creating: ChannelFeatureSend, Deleting: ChannelFeatureSend, }, Order: Order{ Creating: ChannelFeatureBoth, Deleting: ChannelFeatureSend, }, }, } data, status, err := client.UpdateTransportChannel(request) if err != nil { fmt.Printf("%v", err) } fmt.Printf("%s\n", data.UpdatedAt)
type SendData ¶
type SendData struct { Message Message `json:"message"` User User `json:"user"` Channel uint64 `json:"channel"` ExternalChatID string `json:"external_chat_id"` Quote *SendMessageRequestQuote `json:"quote,omitempty"` }
SendData struct
type SendMessage ¶
SendMessage struct
type SendMessageRequestQuote ¶ added in v1.1.0
type SendMessageRequestQuote struct {
ExternalID string `json:"external_id"`
}
type TransportRequestMeta ¶ added in v1.1.0
TransportRequestMeta request metadata
type UpdateData ¶ added in v1.0.1
type UpdateData struct { Message UpdateMessage `json:"message"` Channel uint64 `json:"channel"` }
UpdateData struct
type UpdateMessage ¶
UpdateMessage struct
type UpdateResponse ¶
UpdateResponse channel update response
type User ¶
type User struct { ExternalID string `json:"external_id"` Nickname string `json:"nickname"` Firstname string `json:"first_name,omitempty"` Lastname string `json:"last_name,omitempty"` Avatar string `json:"avatar,omitempty"` ProfileURL string `json:"profile_url,omitempty"` Country string `json:"country,omitempty"` Language string `json:"language,omitempty"` Phone string `json:"phone,omitempty"` Email string `json:"email,omitempty"` }
User struct
type WebhookData ¶ added in v1.1.0
type WebhookData struct { ExternalUserID string `json:"external_user_id"` ExternalMessageID string `json:"external_message_id,omitempty"` ExternalChatID string `json:"external_chat_id"` ChannelID uint64 `json:"channel_id"` Content string `json:"content"` QuoteExternalID string `json:"quote_external_id,omitempty"` QuoteContent string `json:"quote_content,omitempty"` Type string `json:"type"` User *MessageDataUser `json:"user,omitempty"` Bot *MessageDataBot `json:"bot,omitempty"` Product *MessageDataProduct `json:"product,omitempty"` Order *MessageDataOrder `json:"order,omitempty"` }
WebhookData request data
type WebhookRequest ¶ added in v1.1.0
type WebhookRequest struct { Type string `json:"type"` Meta TransportRequestMeta `json:"meta"` Data WebhookData `json:"data"` }
Webhook request