Documentation ¶
Index ¶
- func Close() error
- func DecodeUid(uid types.Uid) int64
- func EncodeUid(id int64) types.Uid
- func GetAdapterName() string
- func GetAuthHandler(name string) auth.AuthHandler
- func GetLogicalAuthHandler(name string) auth.AuthHandler
- func GetMediaHandler() media.Handler
- func GetUid() types.Uid
- func GetUidString() string
- func GetValidator(name string) validate.Validator
- func InitAuthLogicalNames(config json.RawMessage) error
- func InitDb(jsonconf string, reset bool) error
- func IsOpen() bool
- func Open(workerId int, jsonconf string) error
- func RegisterAdapter(name string, a adapter.Adapter)
- func RegisterAuthScheme(name string, handler auth.AuthHandler)
- func RegisterMediaHandler(name string, mh media.Handler)
- func RegisterValidator(name string, v validate.Validator)
- func UseMediaHandler(name, config string) error
- type DeviceMapper
- type FileMapper
- type MessagesObjMapper
- func (MessagesObjMapper) DeleteList(topic string, delID int, forUser types.Uid, ranges []types.Range) error
- func (MessagesObjMapper) GetAll(topic string, forUser types.Uid, opt *types.QueryOpt) ([]types.Message, error)
- func (MessagesObjMapper) GetDeleted(topic string, forUser types.Uid, opt *types.QueryOpt) ([]types.Range, int, error)
- func (MessagesObjMapper) Save(msg *types.Message) error
- type SubsObjMapper
- func (SubsObjMapper) Create(subs ...*types.Subscription) error
- func (SubsObjMapper) Delete(topic string, user types.Uid) error
- func (SubsObjMapper) Get(topic string, user types.Uid) (*types.Subscription, error)
- func (SubsObjMapper) Update(topic string, user types.Uid, update map[string]interface{}, updateTS bool) error
- type TopicsObjMapper
- func (TopicsObjMapper) Create(topic *types.Topic, owner types.Uid, private interface{}) error
- func (TopicsObjMapper) CreateP2P(initiator, invited *types.Subscription) error
- func (TopicsObjMapper) Delete(topic string) error
- func (TopicsObjMapper) Get(topic string) (*types.Topic, error)
- func (TopicsObjMapper) GetSubs(topic string, opts *types.QueryOpt) ([]types.Subscription, error)
- func (TopicsObjMapper) GetUsers(topic string, opts *types.QueryOpt) ([]types.Subscription, error)
- func (TopicsObjMapper) GetUsersAny(topic string, opts *types.QueryOpt) ([]types.Subscription, error)
- func (TopicsObjMapper) Update(topic string, update map[string]interface{}) error
- type UsersObjMapper
- func (UsersObjMapper) AddAuthRecord(uid types.Uid, authLvl auth.Level, scheme, unique string, secret []byte, ...) (bool, error)
- func (UsersObjMapper) ConfirmCred(id types.Uid, method string) error
- func (UsersObjMapper) Create(user *types.User, private interface{}) (*types.User, error)
- func (UsersObjMapper) DelAuthRecords(uid types.Uid, scheme string) error
- func (UsersObjMapper) Delete(id types.Uid, soft bool) error
- func (UsersObjMapper) FailCred(id types.Uid, method string) error
- func (UsersObjMapper) FindSubs(id types.Uid, required, optional []string) ([]types.Subscription, error)
- func (UsersObjMapper) Get(uid types.Uid) (*types.User, error)
- func (UsersObjMapper) GetAll(uid ...types.Uid) ([]types.User, error)
- func (UsersObjMapper) GetAllCred(id types.Uid) ([]*types.Credential, error)
- func (UsersObjMapper) GetAuthRecord(user types.Uid, scheme string) (string, auth.Level, []byte, time.Time, error)
- func (UsersObjMapper) GetAuthUniqueRecord(scheme, unique string) (types.Uid, auth.Level, []byte, time.Time, error)
- func (UsersObjMapper) GetByCred(method, value string) (types.Uid, error)
- func (UsersObjMapper) GetCred(id types.Uid, method string) (*types.Credential, error)
- func (UsersObjMapper) GetSubs(id types.Uid, opts *types.QueryOpt) ([]types.Subscription, error)
- func (UsersObjMapper) GetTopics(id types.Uid, opts *types.QueryOpt) ([]types.Subscription, error)
- func (UsersObjMapper) GetTopicsAny(id types.Uid, opts *types.QueryOpt) ([]types.Subscription, error)
- func (UsersObjMapper) SaveCred(cred *types.Credential) error
- func (UsersObjMapper) Update(uid types.Uid, update map[string]interface{}) error
- func (UsersObjMapper) UpdateAuthRecord(uid types.Uid, authLvl auth.Level, scheme, unique string, secret []byte, ...) (bool, error)
- func (UsersObjMapper) UpdateLastSeen(uid types.Uid, userAgent string, when time.Time) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DecodeUid ¶ added in v0.14.2
DecodeUid takes an XTEA encrypted Uid and decrypts it into an int64. This is needed for sql compatibility. Tte original int64 values are generated by snowflake which ensures that the top bit is unset.
func EncodeUid ¶ added in v0.14.2
EncodeUid applies XTEA encryption to an int64 value. It's the inverse of DecodeUid.
func GetAdapterName ¶ added in v0.14.6
func GetAdapterName() string
GetAdapterName returns the name of the current adater.
func GetAuthHandler ¶
func GetAuthHandler(name string) auth.AuthHandler
GetAuthHandler returns an auth handler by name irrspectful of logical naming.
func GetLogicalAuthHandler ¶ added in v0.15.7
func GetLogicalAuthHandler(name string) auth.AuthHandler
GetLogicalAuthHandler returns an auth handler by logical name.
func GetMediaHandler ¶ added in v0.15.2
GetMediaHandler returns default media handler.
func GetValidator ¶ added in v0.14.4
GetValidator returns registered validator by name.
func InitAuthLogicalNames ¶ added in v0.15.7
func InitAuthLogicalNames(config json.RawMessage) error
InitAuthLogicalNames initializes authentication mapping "logical handler name":"actual handler name".
func InitDb ¶
InitDb creates a new database instance. If 'reset' is true it will first attempt to drop existing database. If jsconf is nil it will assume that the connection is already open. If it's non-nil, it will use the config string to open the DB connection first.
func IsOpen ¶
func IsOpen() bool
IsOpen checks if persistent storage connection has been initialized.
func Open ¶
Open initializes the persistence system. Adapter holds a connection pool for a database instance.
name - name of the adapter rquested in the config file jsonconf - configuration string
func RegisterAdapter ¶ added in v0.14.2
func RegisterAdapter(name string, a adapter.Adapter)
RegisterAdapter makes a persistence adapter available. If Register is called twice or if the adapter is nil, it panics.
func RegisterAuthScheme ¶
func RegisterAuthScheme(name string, handler auth.AuthHandler)
RegisterAuthScheme registers an authentication scheme handler.
func RegisterMediaHandler ¶ added in v0.15.2
RegisterMediaHandler saves reference to a media handler (file upload-download handler).
func RegisterValidator ¶ added in v0.14.4
RegisterValidator registers validation scheme.
func UseMediaHandler ¶ added in v0.15.2
UseMediaHandler sets specified media handler as default.
Types ¶
type DeviceMapper ¶
type DeviceMapper struct{}
DeviceMapper is a struct to map methods used for handling device IDs, used to generate push notifications.
var Devices DeviceMapper
Devices is an instance of DeviceMapper to map methods to.
func (DeviceMapper) Delete ¶
func (DeviceMapper) Delete(uid types.Uid, deviceID string) error
Delete deletes device record for a given user.
type FileMapper ¶ added in v0.15.2
type FileMapper struct{}
FileMapper is a struct to map methods used for file handling.
var Files FileMapper
Files is an instance of FileMapper to be used for handling file uploads.
func (FileMapper) DeleteUnused ¶ added in v0.15.2
func (FileMapper) DeleteUnused(olderThan time.Time, limit int) error
DeleteUnused removes unused attachments.
func (FileMapper) FinishUpload ¶ added in v0.15.2
FinishUpload marks started upload as successfully finished.
func (FileMapper) Get ¶ added in v0.15.2
func (FileMapper) Get(fid string) (*types.FileDef, error)
Get fetches a file record for a unique file id.
func (FileMapper) StartUpload ¶ added in v0.15.2
func (FileMapper) StartUpload(fd *types.FileDef) error
StartUpload records that the given user initiated a file upload
type MessagesObjMapper ¶
type MessagesObjMapper struct{}
MessagesObjMapper is a struct to hold methods for persistence mapping for the Message object.
var Messages MessagesObjMapper
Messages is an instance of MessagesObjMapper to map methods to.
func (MessagesObjMapper) DeleteList ¶
func (MessagesObjMapper) DeleteList(topic string, delID int, forUser types.Uid, ranges []types.Range) error
DeleteList deletes multiple messages defined by a list of ranges.
func (MessagesObjMapper) GetAll ¶
func (MessagesObjMapper) GetAll(topic string, forUser types.Uid, opt *types.QueryOpt) ([]types.Message, error)
GetAll returns multiple messages.
type SubsObjMapper ¶
type SubsObjMapper struct{}
SubsObjMapper is A struct to hold methods for persistence mapping for the Subscription object.
var Subs SubsObjMapper
Subs is an instance of SubsObjMapper to map methods to.
func (SubsObjMapper) Create ¶
func (SubsObjMapper) Create(subs ...*types.Subscription) error
Create creates multiple subscriptions
func (SubsObjMapper) Delete ¶
func (SubsObjMapper) Delete(topic string, user types.Uid) error
Delete deletes a subscription
func (SubsObjMapper) Get ¶
func (SubsObjMapper) Get(topic string, user types.Uid) (*types.Subscription, error)
Get given subscription
type TopicsObjMapper ¶
type TopicsObjMapper struct{}
TopicsObjMapper is a struct to hold methods for persistence mapping for the topic object.
var Topics TopicsObjMapper
Topics is an instance of TopicsObjMapper to map methods to.
func (TopicsObjMapper) CreateP2P ¶
func (TopicsObjMapper) CreateP2P(initiator, invited *types.Subscription) error
CreateP2P creates a P2P topic by generating two user's subsciptions to each other.
func (TopicsObjMapper) Delete ¶
func (TopicsObjMapper) Delete(topic string) error
Delete deletes topic, messages, attachments, and subscriptions.
func (TopicsObjMapper) Get ¶
func (TopicsObjMapper) Get(topic string) (*types.Topic, error)
Get a single topic with a list of relevant users de-normalized into it
func (TopicsObjMapper) GetSubs ¶
func (TopicsObjMapper) GetSubs(topic string, opts *types.QueryOpt) ([]types.Subscription, error)
GetSubs loads a list of subscriptions to the given topic, user.Public and deleted subscriptions are not loaded
func (TopicsObjMapper) GetUsers ¶
func (TopicsObjMapper) GetUsers(topic string, opts *types.QueryOpt) ([]types.Subscription, error)
GetUsers loads subscriptions for topic plus loads user.Public
func (TopicsObjMapper) GetUsersAny ¶
func (TopicsObjMapper) GetUsersAny(topic string, opts *types.QueryOpt) ([]types.Subscription, error)
GetUsersAny is the same as GetUsers, except it loads deleted subscriptions too.
type UsersObjMapper ¶
type UsersObjMapper struct{}
UsersObjMapper is a users struct to hold methods for persistence mapping for the User object.
var Users UsersObjMapper
Users is the ancor for storing/retrieving User objects
func (UsersObjMapper) AddAuthRecord ¶
func (UsersObjMapper) AddAuthRecord(uid types.Uid, authLvl auth.Level, scheme, unique string, secret []byte, expires time.Time) (bool, error)
AddAuthRecord creates a new authentication record for the given user.
func (UsersObjMapper) ConfirmCred ¶ added in v0.14.4
func (UsersObjMapper) ConfirmCred(id types.Uid, method string) error
ConfirmCred marks credential as confirmed.
func (UsersObjMapper) Create ¶
Create inserts User object into a database, updates creation time and assigns UID
func (UsersObjMapper) DelAuthRecords ¶ added in v0.14.4
func (UsersObjMapper) DelAuthRecords(uid types.Uid, scheme string) error
DelAuthRecords deletes user's all auth records of the given scheme.
func (UsersObjMapper) Delete ¶
func (UsersObjMapper) Delete(id types.Uid, soft bool) error
Delete deletes user records.
func (UsersObjMapper) FailCred ¶ added in v0.14.4
func (UsersObjMapper) FailCred(id types.Uid, method string) error
FailCred increments fail count.
func (UsersObjMapper) FindSubs ¶
func (UsersObjMapper) FindSubs(id types.Uid, required, optional []string) ([]types.Subscription, error)
FindSubs find a list of users and topics for the given tags. Results are formatted as subscriptions.
func (UsersObjMapper) GetAllCred ¶ added in v0.14.4
func (UsersObjMapper) GetAllCred(id types.Uid) ([]*types.Credential, error)
GetAllCred retrieves all confimed credential for the given user.
func (UsersObjMapper) GetAuthRecord ¶
func (UsersObjMapper) GetAuthRecord(user types.Uid, scheme string) (string, auth.Level, []byte, time.Time, error)
GetAuthRecord takes a user ID and a authentication scheme name, fetches unique scheme-dependent identifier and authentication secret.
func (UsersObjMapper) GetAuthUniqueRecord ¶ added in v0.14.6
func (UsersObjMapper) GetAuthUniqueRecord(scheme, unique string) (types.Uid, auth.Level, []byte, time.Time, error)
GetAuthUniqueRecord takes a unique identifier and a authentication scheme name, fetches user ID and authentication secret.
func (UsersObjMapper) GetByCred ¶ added in v0.15.7
func (UsersObjMapper) GetByCred(method, value string) (types.Uid, error)
GetByCred returns user ID for the given validated credential.
func (UsersObjMapper) GetCred ¶ added in v0.14.4
func (UsersObjMapper) GetCred(id types.Uid, method string) (*types.Credential, error)
GetCred gets a list of confirmed credentials.
func (UsersObjMapper) GetSubs ¶
func (UsersObjMapper) GetSubs(id types.Uid, opts *types.QueryOpt) ([]types.Subscription, error)
GetSubs loads a list of subscriptions for the given user
func (UsersObjMapper) GetTopics ¶
func (UsersObjMapper) GetTopics(id types.Uid, opts *types.QueryOpt) ([]types.Subscription, error)
GetTopics load a list of user's subscriptions with Public field copied to subscription
func (UsersObjMapper) GetTopicsAny ¶
func (UsersObjMapper) GetTopicsAny(id types.Uid, opts *types.QueryOpt) ([]types.Subscription, error)
GetTopicsAny load a list of user's subscriptions with Public field copied to subscription. Deleted topics are returned too.
func (UsersObjMapper) SaveCred ¶ added in v0.14.4
func (UsersObjMapper) SaveCred(cred *types.Credential) error
SaveCred saves a credential validation request.
func (UsersObjMapper) Update ¶
func (UsersObjMapper) Update(uid types.Uid, update map[string]interface{}) error
Update is a generic user data update.
func (UsersObjMapper) UpdateAuthRecord ¶
func (UsersObjMapper) UpdateAuthRecord(uid types.Uid, authLvl auth.Level, scheme, unique string, secret []byte, expires time.Time) (bool, error)
UpdateAuthRecord updates authentication record with a new secret and expiration time.
func (UsersObjMapper) UpdateLastSeen ¶
UpdateLastSeen updates LastSeen and UserAgent.