bot

package module
v1.1.5 Latest Latest
Warning

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

Go to latest
Published: Jun 5, 2020 License: Apache-2.0 Imports: 31 Imported by: 43

README

bot-api-go-client

Installation

Install using the "go get" command:

go get github.com/MixinNetwork/bot-api-go-client

Documentation

Index

Constants

View Source
const (
	MessageCategoryPlainText             = "PLAIN_TEXT"
	MessageCategoryPlainImage            = "PLAIN_IMAGE"
	MessageCategoryPlainData             = "PLAIN_DATA"
	MessageCategoryPlainSticker          = "PLAIN_STICKER"
	MessageCategoryPlainLive             = "PLAIN_LIVE"
	MessageCategoryPlainContact          = "PLAIN_CONTACT"
	MessageCategoryPlainPost             = "PLAIN_POST"
	MessageCategorySystemConversation    = "SYSTEM_CONVERSATION"
	MessageCategorySystemAccountSnapshot = "SYSTEM_ACCOUNT_SNAPSHOT"
	MessageCategoryMessageRecall         = "MESSAGE_RECALL"
	MessageCategoryAppButtonGroup        = "APP_BUTTON_GROUP"
)

Variables

View Source
var Nil = uuid.Nil

Functions

func Chunked

func Chunked(source []interface{}, size int) [][]interface{}

func CreateTransfer

func CreateTransfer(ctx context.Context, in *TransferInput, uid, sid, sessionKey, pin, pinToken string) error

func DeleteAddress added in v1.1.5

func DeleteAddress(ctx context.Context, addressId, uid, sid, sessionKey, pin, pinToken string) error

func EncryptPIN

func EncryptPIN(ctx context.Context, pin, pinToken, sessionId, privateKey string, iterator uint64) (string, error)

func OAuthGetAccessToken

func OAuthGetAccessToken(ctx context.Context, clientId, clientSecret string, authorizationCode string, codeVerifier string) (string, string, error)

func PostAcknowledgements added in v1.1.5

func PostAcknowledgements(ctx context.Context, requests []*ReceiptAcknowledgementRequest, clientId, sessionId, secret string) error

func PostMessage

func PostMessage(ctx context.Context, conversationId, recipientId, messageId, category, data string, clientId, sessionId, secret string) error

func PostMessages

func PostMessages(ctx context.Context, messages []*MessageRequest, clientId, sessionId, secret string) error

func Request

func Request(ctx context.Context, method, path string, body []byte, accessToken string) ([]byte, error)

func SignAuthenticationToken

func SignAuthenticationToken(uid, sid, privateKey, method, uri, body string) (string, error)

func UniqueConversationId

func UniqueConversationId(userId, recipientId string) string

func UpdatePin

func UpdatePin(ctx context.Context, oldEncryptedPin, encryptedPin, uid, sid, sessionKey string) error

func UuidFromBytes

func UuidFromBytes(input []byte) (uuid.UUID, error)

func UuidFromString

func UuidFromString(id string) (uuid.UUID, error)

func UuidNewV4

func UuidNewV4() uuid.UUID

Types

type Address

type Address struct {
	AddressId   string `json:"address_id"`
	AssetId     string `json:"asset_id"`
	Label       string `json:"label"`
	Destination string `json:"destination"`
	Tag         string `json:"tag"`
	Fee         string `json:"fee"`
	Reserve     string `json:"reserve"`
	UpdatedAt   string `json:"updated_at"`
}

func CreateAddress

func CreateAddress(ctx context.Context, in *AddressInput, uid, sid, sessionKey, pin, pinToken string) (*Address, error)

func GetAddressesByAssetId added in v1.1.5

func GetAddressesByAssetId(ctx context.Context, assetId, uid, sid, sessionKey string) ([]*Address, error)

func ReadAddress added in v1.1.5

func ReadAddress(ctx context.Context, addressId, uid, sid, sessionKey string) (*Address, error)

type AddressInput

type AddressInput struct {
	AssetId     string
	Label       string
	Destination string
	Tag         string
}

type Asset

type Asset struct {
	AssetId       string `json:"asset_id"`
	ChainId       string `json:"chain_id"`
	Symbol        string `json:"symbol"`
	Name          string `json:"name"`
	IconURL       string `json:"icon_url"`
	PriceBTC      string `json:"price_btc"`
	PriceUSD      string `json:"price_usd"`
	Balance       string `json:"balance"`
	Destination   string `json:"destination"`
	Tag           string `json:"tag"`
	Confirmations int    `json:"confirmations"`
}

func AssetList

func AssetList(ctx context.Context, accessToken string) ([]*Asset, error)

func AssetSearch added in v1.1.5

func AssetSearch(ctx context.Context, name string) ([]*Asset, error)

func AssetShow

func AssetShow(ctx context.Context, assetId string, accessToken string) (*Asset, error)

type Attachment

type Attachment struct {
	Type         string `json:"type"`
	AttachmentId string `json:"attachment_id"`
	ViewURL      string `json:"view_url"`
	UploadUrl    string `json:"upload_url"`
}

func AttachmentShow added in v1.1.5

func AttachmentShow(ctx context.Context, uid, sid, key, id string) (*Attachment, error)

func CreateAttachment added in v1.1.5

func CreateAttachment(ctx context.Context, uid, sid, key string) (*Attachment, error)

type BlazeClient

type BlazeClient struct {
	// contains filtered or unexported fields
}

func NewBlazeClient

func NewBlazeClient(uid, sid, key string) *BlazeClient

func (*BlazeClient) Loop

func (b *BlazeClient) Loop(ctx context.Context, listener BlazeListener) error

func (*BlazeClient) SendAppButton

func (b *BlazeClient) SendAppButton(ctx context.Context, conversationId, recipientId, label, action, color string) error

func (*BlazeClient) SendContact

func (b *BlazeClient) SendContact(ctx context.Context, conversationId, recipientId, contactId string) error

func (*BlazeClient) SendMessage

func (b *BlazeClient) SendMessage(ctx context.Context, conversationId, recipientId, messageId, category, content, representativeId string) error

func (*BlazeClient) SendPlainText

func (b *BlazeClient) SendPlainText(ctx context.Context, msg MessageView, content string) error

func (*BlazeClient) SendPost added in v1.1.5

func (b *BlazeClient) SendPost(ctx context.Context, msg MessageView, content string) error

type BlazeListener

type BlazeListener interface {
	OnMessage(ctx context.Context, msg MessageView, userId string) error
}

type BlazeMessage

type BlazeMessage struct {
	Id     string                 `json:"id"`
	Action string                 `json:"action"`
	Params map[string]interface{} `json:"params,omitempty"`
	Data   json.RawMessage        `json:"data,omitempty"`
	Error  *Error                 `json:"error,omitempty"`
}

type Conversation

type Conversation struct {
	ConversationId string    `json:"conversation_id"`
	CreatorId      string    `json:"creator_id"`
	Category       string    `json:"category"`
	Name           string    `json:"name"`
	IconURL        string    `json:"icon_url"`
	Announcement   string    `json:"announcement"`
	CreatedAt      time.Time `json:"created_at"`

	Participants []Participant `json:"participants"`
}

func ConversationShow

func ConversationShow(ctx context.Context, conversationId string, accessToken string) (*Conversation, error)

func CreateConversation

func CreateConversation(ctx context.Context, category, conversationId string, name, announcement string, participants []Participant, uid, sid, key string) (*Conversation, error)

type Error

type Error struct {
	Status      int         `json:"status"`
	Code        int         `json:"code"`
	Description string      `json:"description"`
	Extra       interface{} `json:"extra,omitempty"`
	// contains filtered or unexported fields
}

func AuthorizationError

func AuthorizationError(ctx context.Context) Error

func BadDataError

func BadDataError(ctx context.Context) Error

func BlazeServerError

func BlazeServerError(ctx context.Context, err error) Error

func ForbiddenError

func ForbiddenError(ctx context.Context) Error

func ServerError

func ServerError(ctx context.Context, err error) Error

func (Error) Error

func (sessionError Error) Error() string

type LiveMessagePayload added in v1.1.5

type LiveMessagePayload struct {
	Width    int    `json:"width"`
	Height   int    `json:"height"`
	ThumbUrl string `json:"thumb_url"`
	Url      string `json:"url"`
}

type MessageRequest

type MessageRequest struct {
	ConversationId   string `json:"conversation_id"`
	RecipientId      string `json:"recipient_id"`
	MessageId        string `json:"message_id"`
	Category         string `json:"category"`
	Data             string `json:"data"`
	RepresentativeId string `json:"representative_id"`
	QuoteMessageId   string `json:"quote_message_id"`
}

type MessageView

type MessageView struct {
	ConversationId   string    `json:"conversation_id"`
	UserId           string    `json:"user_id"`
	MessageId        string    `json:"message_id"`
	Category         string    `json:"category"`
	Data             string    `json:"data"`
	RepresentativeId string    `json:"representative_id"`
	QuoteMessageId   string    `json:"quote_message_id"`
	Status           string    `json:"status"`
	Source           string    `json:"source"`
	CreatedAt        time.Time `json:"created_at"`
	UpdatedAt        time.Time `json:"updated_at"`
}

type Participant

type Participant struct {
	UserId    string    `json:"user_id"`
	Role      string    `json:"role"`
	CreatedAt time.Time `json:"created_at"`
}

type RawTransaction

type RawTransaction struct {
	Type            string    `json:"type"`
	SnapshotId      string    `json:"snapshot_id"`
	OpponentKey     string    `json:"opponent_key"`
	AssetId         string    `json:"asset_id"`
	Amount          string    `json:"amount"`
	TraceId         string    `json:"trace_id"`
	Memo            string    `json:"memo"`
	State           string    `json:"state"`
	CreatedAt       time.Time `json:"created_at"`
	TransactionHash string    `json:"transaction_hash"`
	SnapshotHash    string    `json:"snapshot_hash"`
	SnapshotAt      time.Time `json:"snapshot_at"`
}

func CreateTransaction

func CreateTransaction(ctx context.Context, in *TransferInput, uid, sid, sessionKey, pin, pinToken string) (*RawTransaction, error)

type RecallMessagePayload added in v1.1.5

type RecallMessagePayload struct {
	MessageId string `json:"message_id"`
}

type ReceiptAcknowledgementRequest added in v1.1.5

type ReceiptAcknowledgementRequest struct {
	MessageId string `json:"message_id"`
	Status    string `json:"status"`
}

type Snapshot added in v1.1.5

type Snapshot struct {
	Type           string    `json:"type"`
	SnapshotId     string    `json:"snapshot_id"`
	AssetId        string    `json:"asset_id"`
	Amount         string    `json:"amount"`
	OpeningBalance string    `json:"opening_balance"`
	ClosingBalance string    `json:"closing_balance"`
	CreatedAt      time.Time `json:"created_at"`
	// deposit &  withdrawal
	TransactionHash string `json:"transaction_hash,omitempty"`
	OutputIndex     int64  `json:"output_index,omitempty"`
	Sender          string `json:"sender,omitempty"`
	Receiver        string `json:"receiver,omitempty"`
	// transfer
	OpponentId    string `json:"opponent_id,omitempty"`
	TraceId       string `json:"trace_id,omitempty"`
	Memo          string `json:"memo,omitempty"`
	Confirmations int64  `json:"confirmations,omitempty"`
	State         string `json:"state,omitempty"`
	Fee           struct {
		Amount  string `json:"amount"`
		AssetId string `json:"asset_id"`
	} `json:"fee,omitempty"`
}

func CreateWithdrawal

func CreateWithdrawal(ctx context.Context, in *WithdrawalInput, uid, sid, sessionKey, pin, pinToken string) (*Snapshot, error)

func NetworkSnapshot added in v1.1.5

func NetworkSnapshot(ctx context.Context, snapshotId string) (*Snapshot, error)

func NetworkSnapshotByToken added in v1.1.5

func NetworkSnapshotByToken(ctx context.Context, snapshotId, accessToken string) (*Snapshot, error)

func NetworkSnapshots added in v1.1.5

func NetworkSnapshots(ctx context.Context, limit int, offset, assetId, order string) ([]*Snapshot, error)

func NetworkSnapshotsByToken added in v1.1.5

func NetworkSnapshotsByToken(ctx context.Context, limit int, offset, assetId, order, accessToken string) ([]*Snapshot, error)

func ReadTransferByTrace added in v1.1.5

func ReadTransferByTrace(ctx context.Context, traceId, uid, sid, sessionKey string) (*Snapshot, error)

func SnapshotById added in v1.1.5

func SnapshotById(ctx context.Context, snapshotId string, uid, sid, sessionKey string) (*Snapshot, error)

func SnapshotByToken added in v1.1.5

func SnapshotByToken(ctx context.Context, snapshotId string, accessToken string) (*Snapshot, error)

func Snapshots added in v1.1.5

func Snapshots(ctx context.Context, limit int, offset, assetId, uid, sid, sessionKey string) ([]*Snapshot, error)

func SnapshotsByToken added in v1.1.5

func SnapshotsByToken(ctx context.Context, limit int, offset, assetId, accessToken string) ([]*Snapshot, error)

type Transaction added in v1.1.5

type Transaction struct {
	Type            string `json:"type"`
	TransactionId   string `json:"transaction_id"`
	TransactionHash string `json:"transaction_hash"`
	Sender          string `json:"sender"`
	ChainId         string `json:"chain_id"`
	AssetId         string `json:"asset_id"`
	Amount          string `json:"amount"`
	Destination     string `json:"destination"`
	Tag             string `json:"tag"`
	Confirmations   int    `json:"confirmations"`
	Threshold       int    `json:"threshold"`
	CreatedAt       string `json:"created_at"`
}

func ExternalTranactions added in v1.1.5

func ExternalTranactions(ctx context.Context, asset, destination, tag string) ([]*Transaction, error)

type TransferInput

type TransferInput struct {
	AssetId     string
	RecipientId string
	Amount      number.Decimal
	TraceId     string
	Memo        string
	OpponentKey string
}

type TransferView

type TransferView struct {
	Type          string    `json:"type"`
	SnapshotId    string    `json:"snapshot_id"`
	CounterUserId string    `json:"counter_user_id"`
	AssetId       string    `json:"asset_id"`
	Amount        string    `json:"amount"`
	TraceId       string    `json:"trace_id"`
	Memo          string    `json:"memo"`
	CreatedAt     time.Time `json:"created_at"`
}

type User

type User struct {
	UserId         string `json:"user_id"`
	SessionId      string `json:"session_id"`
	PinToken       string `json:"pin_token"`
	IdentityNumber string `json:"identity_number"`
	Phone          string `json:"phone"`
	FullName       string `json:"full_name"`
	AvatarURL      string `json:"avatar_url"`
	DeviceStatus   string `json:"device_status"`
	CreatedAt      string `json:"created_at"`
}

func CreateUser

func CreateUser(ctx context.Context, sessionSecret, fullName, uid, sid, sessionKey string) (*User, error)

func GetUser added in v1.1.5

func GetUser(ctx context.Context, userId, uid, sid, sessionKey string) (*User, error)

func SearchUser added in v1.1.5

func SearchUser(ctx context.Context, mixinId, uid, sid, sessionKey string) (*User, error)

func UpdatePreference added in v1.1.4

func UpdatePreference(ctx context.Context, uid, sid, privateKey string, messageSource, conversationSource, currency string, threshold float64) (*User, error)

func UpdateUserMe added in v1.1.5

func UpdateUserMe(ctx context.Context, uid, sid, privateKey, fullName, avatarBase64 string) (*User, error)

func UserMe

func UserMe(ctx context.Context, accessToken string) (*User, error)

func VerifyPIN added in v1.1.5

func VerifyPIN(ctx context.Context, uid, pin, pinToken, sessionId, privateKey string) (*User, error)

type WithdrawalInput

type WithdrawalInput struct {
	AddressId string
	Amount    number.Decimal
	TraceId   string
	Memo      string
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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