v1

package
v1.1.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 13, 2018 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
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"
)

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

type DeleteData struct {
	Message Message `json:"message"`
	Channel uint64  `json:"channel"`
}

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

type MessageDataBot struct {
	Name   string `json:"name"`
	Avatar string `json:"avatar"`
}

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"`
	Items  []MessageDataOrderItem  `json:"items,omitempty"`
}

MessageDataOrder order data from webhook

type MessageDataOrderCost added in v1.1.6

type MessageDataOrderCost struct {
	Value    float32 `json:"value,omitempty"`
	Currency string  `json:"currency"`
}

type MessageDataOrderItem added in v1.1.6

type MessageDataOrderItem struct {
	Name     string `json:"name,omitempty"`
	Url      string `json:"url,omitempty"`
	Quantity string `json:"quantity,omitempty"`
	Price    string `json:"price,omitempty"`
}

type MessageDataOrderQuantity added in v1.1.6

type MessageDataOrderQuantity struct {
	Value float32 `json:"value"`
	Unit  string  `json:"unit"`
}

type MessageDataOrderStatus added in v1.1.6

type MessageDataOrderStatus struct {
	Code string `json:"code,omitempty"`
	Name string `json:"name,omitempty"`
}

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

type MessagesResponse struct {
	MessageID int       `json:"message_id"`
	Time      time.Time `json:"time"`
}

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 New

func New(url string, token string) *MgClient

New initialize client

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,
		},
	},
}

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

func (c *MgClient) DeleteRequest(url string, parameters []byte) ([]byte, int, error)

DeleteRequest implements DELETE Request

func (*MgClient) Error

func (c *MgClient) Error(info []byte) error

func (*MgClient) GetRequest

func (c *MgClient) GetRequest(urlWithParameters string) ([]byte, int, error)

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

func (c *MgClient) PostRequest(url string, parameters []byte) ([]byte, int, error)

PostRequest implements POST Request

func (*MgClient) PutRequest

func (c *MgClient) PutRequest(url string, parameters []byte) ([]byte, int, error)

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,
		},
	},
}

data, status, err := client.UpdateTransportChannel(request)

if err != nil {
	fmt.Printf("%v", err)
}

fmt.Printf("%s\n", data.UpdatedAt)

type Order added in v1.1.8

type Order struct {
	Creating string `json:"creating"`
	Editing  string `json:"editing"`
	Deleting string `json:"deleting"`
}

type Product added in v1.1.8

type Product struct {
	Creating string `json:"creating"`
	Editing  string `json:"editing"`
	Deleting string `json:"deleting"`
}

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

type SendMessage struct {
	Message
	SentAt time.Time `json:"sent_at,omitempty"`
}

SendMessage struct

type SendMessageRequestQuote added in v1.1.0

type SendMessageRequestQuote struct {
	ExternalID string `json:"external_id"`
}

type Status added in v1.1.2

type Status struct {
	Delivered string `json:"delivered"`
	Read      string `json:"read"`
}

Status struct

type TransportRequestMeta added in v1.1.0

type TransportRequestMeta struct {
	ID        uint64 `json:"id"`
	Timestamp int64  `json:"timestamp"`
}

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

type UpdateMessage struct {
	Message
	EditedAt int64 `json:"edited_at,omitempty"`
}

UpdateMessage struct

type UpdateResponse

type UpdateResponse struct {
	ChannelID uint64    `json:"id"`
	UpdatedAt time.Time `json:"updated_at"`
}

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL