v1

package
v1.1.1 Latest Latest
Warning

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

Go to latest
Published: Aug 17, 2018 License: MIT Imports: 9 Imported by: 6

Documentation

Index

Constants

View Source
const (
	ChannelFeatureNone    string = "none"
	ChannelFeatureReceive string = "receive"
	ChannelFeatureSend    string = "send"
	ChannelFeatureBoth    string = "both"

	MsgModeNever  string = "never"
	MsgModeAlways string = "always"
)

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"`
	Events   []string        `json:"events,omitempty,brackets"`
	Settings ChannelSettings `json:"settings,omitempty,brackets"`
}

Channel type

type ChannelFeatures added in v1.1.1

type ChannelFeatures struct {
	StatusDelivered string `json:"status_delivered"`
	StatusRead      string `json:"status_read"`
	MessageDeleting string `json:"message_deleting"`
	MessageEditing  string `json:"message_editing"`
	MessageQuoting  string `json:"message_quoting"`
	ImageMessage    string `json:"image_message"`
	FileMessage     string `json:"file_message"`
}

ChannelFeatures struct

type ChannelSettings added in v1.1.1

type ChannelSettings struct {
	Features           ChannelFeatures `json:"features"`
	ReceiveMessageMode string          `json:"receive_message_mode"`
	SpamAllowed        bool            `json:"spam_allowed"`
}

ChannelSettings 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 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",
	Events: []string{
		"message_sent",
		"message_read",
	},
	Settings: ChannelSettings{
		ReceiveMessageMode: MsgModeAlways,
		SpamAllowed: false,
		Features: ChannelFeatures{
			StatusDelivered: ChannelFeatureNone,
			MessageDeleting: ChannelFeatureSend,
			MessageEditing:  ChannelFeatureBoth,
			MessageQuoting:  ChannelFeatureBoth,
			ImageMessage:    ChannelFeatureReceive,
		},
	},
}

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",
	Events: []string{
		"message_sent",
		"message_read",
	},
	Settings: ChannelSettings{
		ReceiveMessageMode: MsgModeNever,
		SpamAllowed: false,
		Features: ChannelFeatures{
			StatusDelivered: ChannelFeatureNone,
			MessageDeleting: ChannelFeatureSend,
			MessageEditing:  ChannelFeatureBoth,
			MessageQuoting:  ChannelFeatureBoth,
			ImageMessage:    ChannelFeatureReceive,
		},
	},
}

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        SendMessage              `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 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"`
}

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"`
}

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