Documentation
¶
Index ¶
- func SetPerRoomLimit(limit int)
- type Directory
- func (directory *Directory) Count(room Room) int
- func (directory *Directory) Delete(room Room, messageId smtpMessage.MessageID) error
- func (directory *Directory) DeleteRoom(room Room) error
- func (directory *Directory) List(room Room, query SearchQuery, offset, limit int) ([]smtpMessage.SMTPMail, int, error)
- func (directory *Directory) Load(room Room, messageId smtpMessage.MessageID) (*smtpMessage.SMTPMail, error)
- func (directory *Directory) RoomDirectory(room Room) string
- func (directory *Directory) RoomsCount() int
- func (directory *Directory) RoomsList(offset, limit int) ([]Room, error)
- func (directory *Directory) Store(room Room, message *smtpMessage.SMTPMail) (smtpMessage.MessageID, error)
- type Message
- type Mongo
- func (mongoClient *Mongo) Count(room Room) int
- func (mongoClient *Mongo) Delete(room Room, messageId smtpMessage.MessageID) error
- func (mongoClient *Mongo) DeleteRoom(room Room) error
- func (mongoClient *Mongo) List(room Room, query SearchQuery, offset, limit int) ([]smtpMessage.SMTPMail, int, error)
- func (mongoClient *Mongo) Load(room Room, messageId smtpMessage.MessageID) (*smtpMessage.SMTPMail, error)
- func (mongoClient *Mongo) RoomName(room Room) string
- func (mongoClient *Mongo) RoomsCount() int
- func (mongoClient *Mongo) RoomsList(offset, limit int) ([]Room, error)
- func (mongoClient *Mongo) Store(room Room, message *smtpMessage.SMTPMail) (smtpMessage.MessageID, error)
- type Room
- type SearchQuery
- type Storage
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SetPerRoomLimit ¶
func SetPerRoomLimit(limit int)
Types ¶
type Directory ¶
type Directory struct {
Path string
}
Directory store messages in local directory
func CreateDirectoryStorage ¶
func (*Directory) Delete ¶
func (directory *Directory) Delete(room Room, messageId smtpMessage.MessageID) error
func (*Directory) DeleteRoom ¶
func (*Directory) List ¶
func (directory *Directory) List(room Room, query SearchQuery, offset, limit int) ([]smtpMessage.SMTPMail, int, error)
func (*Directory) Load ¶
func (directory *Directory) Load(room Room, messageId smtpMessage.MessageID) (*smtpMessage.SMTPMail, error)
func (*Directory) RoomDirectory ¶
RoomDirectory create correct path to specific `room`
func (*Directory) RoomsCount ¶
func (*Directory) Store ¶
func (directory *Directory) Store(room Room, message *smtpMessage.SMTPMail) (smtpMessage.MessageID, error)
type Message ¶ added in v1.0.16
type Message struct {
ID smtpMessage.MessageID `bson:"id"`
Room string `bson:"room"`
From []*mail.Address `bson:"from"`
To []*mail.Address `bson:"to"`
Subject string `bson:"subject"`
Date time.Time `bson:"date"`
Message *smtpMessage.SMTPMessage `bson:"message"`
}
type Mongo ¶ added in v1.0.16
type Mongo struct {
Collection *mongo.Collection
}
func CreateMongoDbStorage ¶ added in v1.0.16
func CreateMongoDbStorage(collection *mongo.Collection) *Mongo
func (*Mongo) Delete ¶ added in v1.0.16
func (mongoClient *Mongo) Delete(room Room, messageId smtpMessage.MessageID) error
func (*Mongo) DeleteRoom ¶ added in v1.0.16
func (*Mongo) List ¶ added in v1.0.16
func (mongoClient *Mongo) List(room Room, query SearchQuery, offset, limit int) ([]smtpMessage.SMTPMail, int, error)
func (*Mongo) Load ¶ added in v1.0.16
func (mongoClient *Mongo) Load(room Room, messageId smtpMessage.MessageID) (*smtpMessage.SMTPMail, error)
func (*Mongo) RoomsCount ¶ added in v1.0.16
func (*Mongo) Store ¶ added in v1.0.16
func (mongoClient *Mongo) Store(room Room, message *smtpMessage.SMTPMail) (smtpMessage.MessageID, error)
type SearchQuery ¶
type Storage ¶
type Storage interface {
// Store `message` to specific `room`
Store(room Room, message *smtpMessage.SMTPMail) (smtpMessage.MessageID, error)
// List retrieve list of messages based on `query` starting with `offset` index and count limited by `limit`
// `query` - represents of key->value map, where key is search parameter
List(room Room, query SearchQuery, offset, limit int) ([]smtpMessage.SMTPMail, int, error)
// Count total messages in storage
Count(room Room) int
// Delete delete specific message from storage by `messageId`
Delete(room Room, messageId smtpMessage.MessageID) error
// Load find specific message from storage by `messageId`
Load(room Room, messageId smtpMessage.MessageID) (*smtpMessage.SMTPMail, error)
// RoomsList returns list of rooms in system
RoomsList(offset, limit int) ([]Room, error)
// RoomsCount total count rooms in storage
RoomsCount() int
// DeleteRoom delete all messages in room from storage
DeleteRoom(room Room) error
}
Storage interface represents a backend flow to store or retrieve messages
Click to show internal directories.
Click to hide internal directories.