Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BlockList ¶
type BlockList interface { // InsertBlockListItem inserts a block list item entity into storage if not previously inserted. InsertBlockListItem(ctx context.Context, item *model.BlockListItem) error // DeleteBlockListItem deletes a block list item entity from storage. DeleteBlockListItem(ctx context.Context, item *model.BlockListItem) error // FetchBlockListItems retrieves from storage all block list item entities associated to a given user. FetchBlockListItems(ctx context.Context, username string) ([]model.BlockListItem, error) }
BlockList defines storage operations for user's block list
type Container ¶
type Container interface { // User method returns repository.User concrete implementation. User() User // Roster method returns repository.Roster concrete implementation. Roster() Roster // Presences method returns repository.Presences concrete implementation. Presences() Presences // VCard method returns repository.VCard concrete implementation. VCard() VCard // Private method returns repository.Private concrete implementation. Private() Private // BlockList method returns repository.BlockList concrete implementation. BlockList() BlockList // PubSub method returns repository.PubSub concrete implementation. PubSub() PubSub // Offline method returns repository.Offline concrete implementation. Offline() Offline // Close closes underlying storage resources, commonly shared across repositories. Close(ctx context.Context) error // IsClusterCompatible tells whether or not container instance can be safely used across multiple cluster nodes. IsClusterCompatible() bool }
Container interface brings together all repository instances.
type Offline ¶
type Offline interface { // InsertOfflineMessage inserts a new message element into user's offline queue. InsertOfflineMessage(ctx context.Context, message *xmpp.Message, username string) error // CountOfflineMessages returns current length of user's offline queue. CountOfflineMessages(ctx context.Context, username string) (int, error) // FetchOfflineMessages retrieves from storage current user offline queue. FetchOfflineMessages(ctx context.Context, username string) ([]xmpp.Message, error) // DeleteOfflineMessages clears a user offline queue. DeleteOfflineMessages(ctx context.Context, username string) error }
Offline defines storage operations for offline messages
type Presences ¶ added in v0.10.1
type Presences interface { // UpsertPresence inserts or updates a presence and links it to certain allocation. // On insertion 'inserted' return parameter will be true. UpsertPresence(ctx context.Context, presence *xmpp.Presence, jid *jid.JID, allocationID string) (inserted bool, err error) // FetchPresence retrieves from storage a previously registered presence. FetchPresence(ctx context.Context, jid *jid.JID) (*capsmodel.PresenceCaps, error) // FetchPresencesMatchingJID retrives all storage presences matching a certain JID FetchPresencesMatchingJID(ctx context.Context, jid *jid.JID) ([]capsmodel.PresenceCaps, error) // DeletePresence removes from storage a concrete registered presence. DeletePresence(ctx context.Context, jid *jid.JID) error // DeleteAllocationPresences removes from storage all presences associated to a given allocation. DeleteAllocationPresences(ctx context.Context, allocationID string) error // ClearPresences wipes out all storage presences. ClearPresences(ctx context.Context) error // UpsertCapabilities inserts capabilities associated to a node+ver pair, or updates them if previously inserted.. UpsertCapabilities(ctx context.Context, caps *capsmodel.Capabilities) error // FetchCapabilities fetches capabilities associated to a give node and ver. FetchCapabilities(ctx context.Context, node, ver string) (*capsmodel.Capabilities, error) }
type Private ¶
type Private interface { // FetchPrivateXML retrieves from storage a private element. FetchPrivateXML(ctx context.Context, namespace string, username string) ([]xmpp.XElement, error) // UpsertPrivateXML inserts a new private element into storage, or updates it if previously inserted. UpsertPrivateXML(ctx context.Context, privateXML []xmpp.XElement, namespace string, username string) error }
Private defines operations for private storage.
type PubSub ¶
type PubSub interface { // FetchHosts returns all host identifiers. FetchHosts(ctx context.Context) (hosts []string, err error) // UpsertNode inserts a new pubsub node entity into storage, or updates it if previously inserted. UpsertNode(ctx context.Context, node *pubsubmodel.Node) error // FetchNode retrieves from storage a pubsub node entity. FetchNode(ctx context.Context, host, name string) (*pubsubmodel.Node, error) // FetchNodes retrieves from storage all node entities associated with a host. FetchNodes(ctx context.Context, host string) ([]pubsubmodel.Node, error) // FetchSubscribedNodes retrieves from storage all nodes to which a given jid is subscribed. FetchSubscribedNodes(ctx context.Context, jid string) ([]pubsubmodel.Node, error) // DeleteNode deletes a pubsub node from storage. DeleteNode(ctx context.Context, host, name string) error // UpsertNodeItem inserts a new pubsub node item entity into storage, or updates it if previously inserted. UpsertNodeItem(ctx context.Context, item *pubsubmodel.Item, host, name string, maxNodeItems int) error // FetchNodeItems retrieves all items associated to a node. FetchNodeItems(ctx context.Context, host, name string) ([]pubsubmodel.Item, error) // FetchNodeItemsWithIDs retrieves all items matching any of the passed identifiers. FetchNodeItemsWithIDs(ctx context.Context, host, name string, identifiers []string) ([]pubsubmodel.Item, error) // FetchNodeLastItem retrieves last published node item. FetchNodeLastItem(ctx context.Context, host, name string) (*pubsubmodel.Item, error) // UpsertNodeAffiliation inserts a new pubsub node affiliation into storage, or updates it if previously inserted. UpsertNodeAffiliation(ctx context.Context, affiliation *pubsubmodel.Affiliation, host, name string) error // FetchNodeAffiliation retrieves a concrete node affiliation from storage. FetchNodeAffiliation(ctx context.Context, host, name, jid string) (*pubsubmodel.Affiliation, error) // FetchNodeAffiliations retrieves all affiliations associated to a node. FetchNodeAffiliations(ctx context.Context, host, name string) ([]pubsubmodel.Affiliation, error) // DeleteNodeAffiliation deletes a pubsub node affiliation from storage. DeleteNodeAffiliation(ctx context.Context, jid, host, name string) error // UpsertNodeSubscription inserts a new pubsub node subscription into storage, or updates it if previously inserted. UpsertNodeSubscription(ctx context.Context, subscription *pubsubmodel.Subscription, host, name string) error // FetchNodeSubscriptions retrieves all subscriptions associated to a node. FetchNodeSubscriptions(ctx context.Context, host, name string) ([]pubsubmodel.Subscription, error) // DeleteNodeSubscription deletes a pubsub node subscription from storage. DeleteNodeSubscription(ctx context.Context, jid, host, name string) error }
PubSub defines storage operations for pubsub management.
type Roster ¶
type Roster interface { // UpsertRosterItem inserts a new roster item entity into storage, or updates it if previously inserted. UpsertRosterItem(ctx context.Context, ri *rostermodel.Item) (rostermodel.Version, error) // DeleteRosterItem deletes a roster item entity from storage. DeleteRosterItem(ctx context.Context, username, jid string) (rostermodel.Version, error) // FetchRosterItems retrieves from storage all roster item entities associated to a given user. FetchRosterItems(ctx context.Context, username string) ([]rostermodel.Item, rostermodel.Version, error) // FetchRosterItemsInGroups retrieves from storage all roster item entities associated to a given user and a set of groups. FetchRosterItemsInGroups(ctx context.Context, username string, groups []string) ([]rostermodel.Item, rostermodel.Version, error) // FetchRosterItem retrieves from storage a roster item entity. FetchRosterItem(ctx context.Context, username, jid string) (*rostermodel.Item, error) // UpsertRosterNotification inserts a new roster notification entity into storage, or updates it if previously inserted. UpsertRosterNotification(ctx context.Context, rn *rostermodel.Notification) error // DeleteRosterNotification deletes a roster notification entity from storage. DeleteRosterNotification(ctx context.Context, contact, jid string) error // FetchRosterNotification retrieves from storage a roster notification entity. FetchRosterNotification(ctx context.Context, contact string, jid string) (*rostermodel.Notification, error) // FetchRosterNotifications retrieves from storage all roster notifications associated to a given user. FetchRosterNotifications(ctx context.Context, contact string) ([]rostermodel.Notification, error) // FetchRosterGroups retrieves all groups associated to a user roster. FetchRosterGroups(ctx context.Context, username string) ([]string, error) }
Roster defines storage operations for user's roster.
type User ¶
type User interface { // UpsertUser inserts a new user entity into storage, or updates it if previously inserted. UpsertUser(ctx context.Context, user *model.User) error // DeleteUser deletes a user entity from storage. DeleteUser(ctx context.Context, username string) error // FetchUser retrieves a user entity from storage. FetchUser(ctx context.Context, username string) (*model.User, error) // UserExists tells whether or not a user exists within storage. UserExists(ctx context.Context, username string) (bool, error) }
User defines user repository operations
type VCard ¶
type VCard interface { // UpsertVCard inserts a new vCard element into storage, or updates it in case it's been previously inserted. UpsertVCard(ctx context.Context, vCard xmpp.XElement, username string) error // FetchVCard retrieves from storage a vCard element associated to a given user. FetchVCard(ctx context.Context, username string) (xmpp.XElement, error) }
VCard defines storage operations for vCards
Click to show internal directories.
Click to hide internal directories.