Documentation
¶
Index ¶
- func SetPerRoomLimit(limit int)
- type Directory
- func (directory *Directory) Count(room Room) int
- func (directory *Directory) Delete(room Room, messageId dto.MessageID) error
- func (directory *Directory) DeleteRoom(room Room) error
- func (directory *Directory) List(room Room, query SearchQuery, offset, limit int) ([]dto.Message, int, error)
- func (directory *Directory) Load(room Room, messageId dto.MessageID) (*dto.Message, 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 *dto.Message) (dto.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) DeleteRoom ¶
func (*Directory) RoomDirectory ¶
RoomDirectory create correct path to specific `room`
func (*Directory) RoomsCount ¶
type SearchQuery ¶
type Storage ¶
type Storage interface {
// Store `message` to specific `room`
Store(room Room, message *dto.Message) (dto.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) ([]dto.Message, int, error)
// Count total messages in storage
Count(room Room) int
// Delete delete specific message from storage by `messageId`
Delete(room Room, messageId dto.MessageID) error
// Load find specific message from storage by `messageId`
Load(room Room, messageId dto.MessageID) (*dto.Message, 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.