messaging

package module
v0.0.0-...-503825f Latest Latest
Warning

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

Go to latest
Published: May 20, 2021 License: MIT Imports: 11 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SetLogger

func SetLogger(l Logger)

SetLogger sets logger for the package.

func Transact

func Transact(db *sqlx.DB, txFn func(*sqlx.Tx) error) (err error)

Transact creates and executes a transaction.

Types

type Channel

type Channel struct {
	ID   keys.ID `json:"id" msgpack:"id"`
	Team keys.ID `json:"team,omitempty" msgpack:"team,omitempty"`

	// From channel info
	Name        string `json:"name,omitempty" msgpack:"name,omitempty"`
	Description string `json:"desc,omitempty" msgpack:"desc,omitempty"`
	Topic       string `json:"topic,omitempty" msgpack:"topic,omitempty"`

	// From last message
	Snippet          string `json:"snippet,omitempty" msgpack:"snippet,omitempty"`
	MessageIndex     int64  `json:"midx,omitempty" msgpack:"midx,omitempty"`
	MessageTimestamp int64  `json:"mts,omitempty" msgpack:"mts,omitempty"`

	// Local read status
	ReadIndex int64 `json:"readIndex,omitempty" msgpack:"readIndex,omitempty"`
}

func NewChannelFromAPI

func NewChannelFromAPI(c *api.Channel, channelKey *keys.EdX25519Key) (*Channel, error)

type LogLevel

type LogLevel int

LogLevel ...

const (
	// DebugLevel ...
	DebugLevel LogLevel = 3
	// InfoLevel ...
	InfoLevel LogLevel = 2
	// WarnLevel ...
	WarnLevel LogLevel = 1
	// ErrLevel ...
	ErrLevel LogLevel = 0
)

func (LogLevel) String

func (l LogLevel) String() string

type Logger

type Logger interface {
	Debugf(format string, args ...interface{})
	Infof(format string, args ...interface{})
	Warningf(format string, args ...interface{})
	Errorf(format string, args ...interface{})
	Fatalf(format string, args ...interface{})
}

Logger interface used in this package.

func NewLogger

func NewLogger(lev LogLevel) Logger

NewLogger ...

type Messenger

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

Messenger ...

func NewMessenger

func NewMessenger(path string, mk *[32]byte) (*Messenger, error)

func (*Messenger) AddChannel

func (m *Messenger) AddChannel(c *Channel) error

func (*Messenger) AddMessages

func (m *Messenger) AddMessages(cid keys.ID, messages []*api.Message) error

func (*Messenger) AddPending

func (m *Messenger) AddPending(msg *api.Message) error

Add a pending message.

func (*Messenger) Channel

func (m *Messenger) Channel(channel keys.ID) (*Channel, error)

func (*Messenger) Channels

func (m *Messenger) Channels() ([]*Channel, error)

func (*Messenger) Close

func (m *Messenger) Close() error

func (*Messenger) DeleteChannel

func (m *Messenger) DeleteChannel(ctx context.Context, kid keys.ID) error

func (*Messenger) Messages

func (m *Messenger) Messages(channel keys.ID) ([]*api.Message, error)

func (*Messenger) Search

func (m *Messenger) Search(text string) ([]*SearchResult, error)

func (*Messenger) UpdateChannel

func (m *Messenger) UpdateChannel(c *Channel) error

func (*Messenger) User

func (m *Messenger) User(kid keys.ID) (*User, error)

func (*Messenger) UserAdd

func (m *Messenger) UserAdd(user *User) error

type SearchResult

type SearchResult struct {
	ID string
}

type User

type User struct {
	KID      keys.ID `json:"kid"`
	Username string  `json:"username"`
}

Jump to

Keyboard shortcuts

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