Documentation
¶
Overview ¶
Package database is a generated GoMock package.
Package database is a generated GoMock package.
Index ¶
- Constants
- type Database
- type Expiration
- type GeneralError
- type InvalidOrderError
- type LeaderboardWithoutMemberToExpireError
- type Member
- type MemberNotFoundError
- type MockDatabase
- func (m *MockDatabase) EXPECT() *MockDatabaseMockRecorder
- func (m *MockDatabase) GetLeaderboardExpiration(ctx context.Context, leaderboard string) (int64, error)
- func (m *MockDatabase) GetMemberIDsWithScoreInsideRange(ctx context.Context, leaderboard, min, max string, offset, count int) ([]string, error)
- func (m *MockDatabase) GetMembers(ctx context.Context, leaderboard, order string, includeTTL bool, ...) ([]*Member, error)
- func (m *MockDatabase) GetOrderedMembers(ctx context.Context, leaderboard string, start, stop int, order string) ([]*Member, error)
- func (m *MockDatabase) GetRank(ctx context.Context, leaderboard, member, order string) (int, error)
- func (m *MockDatabase) GetTotalMembers(ctx context.Context, leaderboard string) (int, error)
- func (m *MockDatabase) Healthcheck(ctx context.Context) error
- func (m *MockDatabase) IncrementMemberScore(ctx context.Context, leaderboard, member string, increment float64) error
- func (m *MockDatabase) RemoveLeaderboard(ctx context.Context, leaderboard string) error
- func (m *MockDatabase) RemoveMembers(ctx context.Context, leaderboard string, members ...string) error
- func (m *MockDatabase) SetLeaderboardExpiration(ctx context.Context, leaderboard string, expireAt time.Time) error
- func (m *MockDatabase) SetMembers(ctx context.Context, leaderboard string, databaseMembers []*Member) error
- func (m *MockDatabase) SetMembersTTL(ctx context.Context, leaderboard string, databaseMembers []*Member) error
- type MockDatabaseMockRecorder
- func (mr *MockDatabaseMockRecorder) GetLeaderboardExpiration(ctx, leaderboard interface{}) *gomock.Call
- func (mr *MockDatabaseMockRecorder) GetMemberIDsWithScoreInsideRange(ctx, leaderboard, min, max, offset, count interface{}) *gomock.Call
- func (mr *MockDatabaseMockRecorder) GetMembers(ctx, leaderboard, order, includeTTL interface{}, members ...interface{}) *gomock.Call
- func (mr *MockDatabaseMockRecorder) GetOrderedMembers(ctx, leaderboard, start, stop, order interface{}) *gomock.Call
- func (mr *MockDatabaseMockRecorder) GetRank(ctx, leaderboard, member, order interface{}) *gomock.Call
- func (mr *MockDatabaseMockRecorder) GetTotalMembers(ctx, leaderboard interface{}) *gomock.Call
- func (mr *MockDatabaseMockRecorder) Healthcheck(ctx interface{}) *gomock.Call
- func (mr *MockDatabaseMockRecorder) IncrementMemberScore(ctx, leaderboard, member, increment interface{}) *gomock.Call
- func (mr *MockDatabaseMockRecorder) RemoveLeaderboard(ctx, leaderboard interface{}) *gomock.Call
- func (mr *MockDatabaseMockRecorder) RemoveMembers(ctx, leaderboard interface{}, members ...interface{}) *gomock.Call
- func (mr *MockDatabaseMockRecorder) SetLeaderboardExpiration(ctx, leaderboard, expireAt interface{}) *gomock.Call
- func (mr *MockDatabaseMockRecorder) SetMembers(ctx, leaderboard, databaseMembers interface{}) *gomock.Call
- func (mr *MockDatabaseMockRecorder) SetMembersTTL(ctx, leaderboard, databaseMembers interface{}) *gomock.Call
- type MockExpiration
- func (m *MockExpiration) EXPECT() *MockExpirationMockRecorder
- func (m *MockExpiration) ExpireMembers(ctx context.Context, leaderboard string, members []string) error
- func (m *MockExpiration) GetEpirationLeaderboards(ctx context.Context) ([]string, error)
- func (m *MockExpiration) GetMembersToExpire(ctx context.Context, leaderboard string, amount int, maxTime time.Time) ([]string, error)
- func (m *MockExpiration) RemoveLeaderboardFromExpireList(ctx context.Context, leaderboard string) error
- type MockExpirationMockRecorder
- func (mr *MockExpirationMockRecorder) ExpireMembers(ctx, leaderboard, members interface{}) *gomock.Call
- func (mr *MockExpirationMockRecorder) GetEpirationLeaderboards(ctx interface{}) *gomock.Call
- func (mr *MockExpirationMockRecorder) GetMembersToExpire(ctx, leaderboard, amount, maxTime interface{}) *gomock.Call
- func (mr *MockExpirationMockRecorder) RemoveLeaderboardFromExpireList(ctx, leaderboard interface{}) *gomock.Call
- type Redis
- func (r *Redis) ExpireMembers(ctx context.Context, leaderboard string, members []string) error
- func (r *Redis) GetExpirationLeaderboards(ctx context.Context) ([]string, error)
- func (r *Redis) GetLeaderboardExpiration(ctx context.Context, leaderboard string) (int64, error)
- func (r *Redis) GetMemberIDsWithScoreInsideRange(ctx context.Context, leaderboard string, min, max string, offset, count int) ([]string, error)
- func (r *Redis) GetMembers(ctx context.Context, leaderboard, order string, includeTTL bool, ...) ([]*Member, error)
- func (r *Redis) GetMembersToExpire(ctx context.Context, leaderboard string, amount int, maxTime time.Time) ([]string, error)
- func (r *Redis) GetOrderedMembers(ctx context.Context, leaderboard string, start, stop int, order string) ([]*Member, error)
- func (r *Redis) GetRank(ctx context.Context, leaderboard, member, order string) (int, error)
- func (r *Redis) GetTotalMembers(ctx context.Context, leaderboard string) (int, error)
- func (r *Redis) Healthcheck(ctx context.Context) error
- func (r *Redis) IncrementMemberScore(ctx context.Context, leaderboard, member string, increment float64) error
- func (r *Redis) RemoveLeaderboard(ctx context.Context, leaderboard string) error
- func (r *Redis) RemoveLeaderboardFromExpireList(ctx context.Context, leaderboard string) error
- func (r *Redis) RemoveMembers(ctx context.Context, leaderboard string, members ...string) error
- func (r *Redis) SetLeaderboardExpiration(ctx context.Context, leaderboard string, expireAt time.Time) error
- func (r *Redis) SetMembers(ctx context.Context, leaderboard string, databaseMembers []*Member) error
- func (r *Redis) SetMembersTTL(ctx context.Context, leaderboard string, databaseMembers []*Member) error
- type RedisOptions
- type TTLNotFoundError
Constants ¶
const ExpirationSet string = "expiration-sets"
ExpirationSet is used to list expirations set that worker will use to remove members
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Database ¶
type Database interface { GetLeaderboardExpiration(ctx context.Context, leaderboard string) (int64, error) GetMemberIDsWithScoreInsideRange(ctx context.Context, leaderboard string, min, max string, offset, count int) ([]string, error) GetMembers(ctx context.Context, leaderboard, order string, includeTTL bool, members ...string) ([]*Member, error) GetOrderedMembers(ctx context.Context, leaderboard string, start, stop int, order string) ([]*Member, error) GetRank(ctx context.Context, leaderboard, member, order string) (int, error) GetTotalMembers(ctx context.Context, leaderboard string) (int, error) Healthcheck(ctx context.Context) error IncrementMemberScore(ctx context.Context, leaderboard, member string, increment float64) error RemoveLeaderboard(ctx context.Context, leaderboard string) error RemoveMembers(ctx context.Context, leaderboard string, members ...string) error SetLeaderboardExpiration(ctx context.Context, leaderboard string, expireAt time.Time) error SetMembers(ctx context.Context, leaderboard string, databaseMembers []*Member) error SetMembersTTL(ctx context.Context, leaderboard string, databaseMembers []*Member) error }
Database interface standardize database calls
type Expiration ¶
type Expiration interface { GetExpirationLeaderboards(ctx context.Context) ([]string, error) GetMembersToExpire(ctx context.Context, leaderboard string, amount int, maxTime time.Time) ([]string, error) RemoveLeaderboardFromExpireList(ctx context.Context, leaderboard string) error ExpireMembers(ctx context.Context, leaderboard string, members []string) error }
Expiration interface standardize expiration database calls
type GeneralError ¶
type GeneralError struct {
// contains filtered or unexported fields
}
GeneralError create a redis error that is not handled
func NewGeneralError ¶
func NewGeneralError(msg string) *GeneralError
NewGeneralError create a new redis error that isnt handled
func (*GeneralError) Error ¶
func (ue *GeneralError) Error() string
type InvalidOrderError ¶
type InvalidOrderError struct {
// contains filtered or unexported fields
}
InvalidOrderError is an error when an invalid order was gave
func NewInvalidOrderError ¶
func NewInvalidOrderError(order string) *InvalidOrderError
NewInvalidOrderError create a new InvalidOrderError
func (*InvalidOrderError) Error ¶
func (ioe *InvalidOrderError) Error() string
type LeaderboardWithoutMemberToExpireError ¶
type LeaderboardWithoutMemberToExpireError struct {
// contains filtered or unexported fields
}
LeaderboardWithoutMemberToExpireError is an error throw when leaderboard doesn't have member to expire
func NewLeaderboardWithoutMemberToExpireError ¶
func NewLeaderboardWithoutMemberToExpireError(leaderboard string) *LeaderboardWithoutMemberToExpireError
NewLeaderboardWithoutMemberToExpireError create a new KeyNotFoundError
func (*LeaderboardWithoutMemberToExpireError) Error ¶
func (lwmtee *LeaderboardWithoutMemberToExpireError) Error() string
type MemberNotFoundError ¶
type MemberNotFoundError struct {
// contains filtered or unexported fields
}
MemberNotFoundError is an error throw when leaderboard not have member
func NewMemberNotFoundError ¶
func NewMemberNotFoundError(leaderboard, member string) *MemberNotFoundError
NewMemberNotFoundError create a new MemberNotFoundError
func (*MemberNotFoundError) Error ¶
func (mnfe *MemberNotFoundError) Error() string
type MockDatabase ¶
type MockDatabase struct {
// contains filtered or unexported fields
}
MockDatabase is a mock of Database interface.
func NewMockDatabase ¶
func NewMockDatabase(ctrl *gomock.Controller) *MockDatabase
NewMockDatabase creates a new mock instance.
func (*MockDatabase) EXPECT ¶
func (m *MockDatabase) EXPECT() *MockDatabaseMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockDatabase) GetLeaderboardExpiration ¶
func (m *MockDatabase) GetLeaderboardExpiration(ctx context.Context, leaderboard string) (int64, error)
GetLeaderboardExpiration mocks base method.
func (*MockDatabase) GetMemberIDsWithScoreInsideRange ¶
func (m *MockDatabase) GetMemberIDsWithScoreInsideRange(ctx context.Context, leaderboard, min, max string, offset, count int) ([]string, error)
GetMemberIDsWithScoreInsideRange mocks base method.
func (*MockDatabase) GetMembers ¶
func (m *MockDatabase) GetMembers(ctx context.Context, leaderboard, order string, includeTTL bool, members ...string) ([]*Member, error)
GetMembers mocks base method.
func (*MockDatabase) GetOrderedMembers ¶
func (m *MockDatabase) GetOrderedMembers(ctx context.Context, leaderboard string, start, stop int, order string) ([]*Member, error)
GetOrderedMembers mocks base method.
func (*MockDatabase) GetTotalMembers ¶
GetTotalMembers mocks base method.
func (*MockDatabase) Healthcheck ¶
func (m *MockDatabase) Healthcheck(ctx context.Context) error
Healthcheck mocks base method.
func (*MockDatabase) IncrementMemberScore ¶
func (m *MockDatabase) IncrementMemberScore(ctx context.Context, leaderboard, member string, increment float64) error
IncrementMemberScore mocks base method.
func (*MockDatabase) RemoveLeaderboard ¶
func (m *MockDatabase) RemoveLeaderboard(ctx context.Context, leaderboard string) error
RemoveLeaderboard mocks base method.
func (*MockDatabase) RemoveMembers ¶
func (m *MockDatabase) RemoveMembers(ctx context.Context, leaderboard string, members ...string) error
RemoveMembers mocks base method.
func (*MockDatabase) SetLeaderboardExpiration ¶
func (m *MockDatabase) SetLeaderboardExpiration(ctx context.Context, leaderboard string, expireAt time.Time) error
SetLeaderboardExpiration mocks base method.
func (*MockDatabase) SetMembers ¶
func (m *MockDatabase) SetMembers(ctx context.Context, leaderboard string, databaseMembers []*Member) error
SetMembers mocks base method.
func (*MockDatabase) SetMembersTTL ¶
func (m *MockDatabase) SetMembersTTL(ctx context.Context, leaderboard string, databaseMembers []*Member) error
SetMembersTTL mocks base method.
type MockDatabaseMockRecorder ¶
type MockDatabaseMockRecorder struct {
// contains filtered or unexported fields
}
MockDatabaseMockRecorder is the mock recorder for MockDatabase.
func (*MockDatabaseMockRecorder) GetLeaderboardExpiration ¶
func (mr *MockDatabaseMockRecorder) GetLeaderboardExpiration(ctx, leaderboard interface{}) *gomock.Call
GetLeaderboardExpiration indicates an expected call of GetLeaderboardExpiration.
func (*MockDatabaseMockRecorder) GetMemberIDsWithScoreInsideRange ¶
func (mr *MockDatabaseMockRecorder) GetMemberIDsWithScoreInsideRange(ctx, leaderboard, min, max, offset, count interface{}) *gomock.Call
GetMemberIDsWithScoreInsideRange indicates an expected call of GetMemberIDsWithScoreInsideRange.
func (*MockDatabaseMockRecorder) GetMembers ¶
func (mr *MockDatabaseMockRecorder) GetMembers(ctx, leaderboard, order, includeTTL interface{}, members ...interface{}) *gomock.Call
GetMembers indicates an expected call of GetMembers.
func (*MockDatabaseMockRecorder) GetOrderedMembers ¶
func (mr *MockDatabaseMockRecorder) GetOrderedMembers(ctx, leaderboard, start, stop, order interface{}) *gomock.Call
GetOrderedMembers indicates an expected call of GetOrderedMembers.
func (*MockDatabaseMockRecorder) GetRank ¶
func (mr *MockDatabaseMockRecorder) GetRank(ctx, leaderboard, member, order interface{}) *gomock.Call
GetRank indicates an expected call of GetRank.
func (*MockDatabaseMockRecorder) GetTotalMembers ¶
func (mr *MockDatabaseMockRecorder) GetTotalMembers(ctx, leaderboard interface{}) *gomock.Call
GetTotalMembers indicates an expected call of GetTotalMembers.
func (*MockDatabaseMockRecorder) Healthcheck ¶
func (mr *MockDatabaseMockRecorder) Healthcheck(ctx interface{}) *gomock.Call
Healthcheck indicates an expected call of Healthcheck.
func (*MockDatabaseMockRecorder) IncrementMemberScore ¶
func (mr *MockDatabaseMockRecorder) IncrementMemberScore(ctx, leaderboard, member, increment interface{}) *gomock.Call
IncrementMemberScore indicates an expected call of IncrementMemberScore.
func (*MockDatabaseMockRecorder) RemoveLeaderboard ¶
func (mr *MockDatabaseMockRecorder) RemoveLeaderboard(ctx, leaderboard interface{}) *gomock.Call
RemoveLeaderboard indicates an expected call of RemoveLeaderboard.
func (*MockDatabaseMockRecorder) RemoveMembers ¶
func (mr *MockDatabaseMockRecorder) RemoveMembers(ctx, leaderboard interface{}, members ...interface{}) *gomock.Call
RemoveMembers indicates an expected call of RemoveMembers.
func (*MockDatabaseMockRecorder) SetLeaderboardExpiration ¶
func (mr *MockDatabaseMockRecorder) SetLeaderboardExpiration(ctx, leaderboard, expireAt interface{}) *gomock.Call
SetLeaderboardExpiration indicates an expected call of SetLeaderboardExpiration.
func (*MockDatabaseMockRecorder) SetMembers ¶
func (mr *MockDatabaseMockRecorder) SetMembers(ctx, leaderboard, databaseMembers interface{}) *gomock.Call
SetMembers indicates an expected call of SetMembers.
func (*MockDatabaseMockRecorder) SetMembersTTL ¶
func (mr *MockDatabaseMockRecorder) SetMembersTTL(ctx, leaderboard, databaseMembers interface{}) *gomock.Call
SetMembersTTL indicates an expected call of SetMembersTTL.
type MockExpiration ¶
type MockExpiration struct {
// contains filtered or unexported fields
}
MockExpiration is a mock of Expiration interface.
func NewMockExpiration ¶
func NewMockExpiration(ctrl *gomock.Controller) *MockExpiration
NewMockExpiration creates a new mock instance.
func (*MockExpiration) EXPECT ¶
func (m *MockExpiration) EXPECT() *MockExpirationMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockExpiration) ExpireMembers ¶
func (m *MockExpiration) ExpireMembers(ctx context.Context, leaderboard string, members []string) error
ExpireMembers mocks base method.
func (*MockExpiration) GetEpirationLeaderboards ¶
func (m *MockExpiration) GetEpirationLeaderboards(ctx context.Context) ([]string, error)
GetEpirationLeaderboards mocks base method.
func (*MockExpiration) GetMembersToExpire ¶
func (m *MockExpiration) GetMembersToExpire(ctx context.Context, leaderboard string, amount int, maxTime time.Time) ([]string, error)
GetMembersToExpire mocks base method.
func (*MockExpiration) RemoveLeaderboardFromExpireList ¶
func (m *MockExpiration) RemoveLeaderboardFromExpireList(ctx context.Context, leaderboard string) error
RemoveLeaderboardFromExpireList mocks base method.
type MockExpirationMockRecorder ¶
type MockExpirationMockRecorder struct {
// contains filtered or unexported fields
}
MockExpirationMockRecorder is the mock recorder for MockExpiration.
func (*MockExpirationMockRecorder) ExpireMembers ¶
func (mr *MockExpirationMockRecorder) ExpireMembers(ctx, leaderboard, members interface{}) *gomock.Call
ExpireMembers indicates an expected call of ExpireMembers.
func (*MockExpirationMockRecorder) GetEpirationLeaderboards ¶
func (mr *MockExpirationMockRecorder) GetEpirationLeaderboards(ctx interface{}) *gomock.Call
GetEpirationLeaderboards indicates an expected call of GetEpirationLeaderboards.
func (*MockExpirationMockRecorder) GetMembersToExpire ¶
func (mr *MockExpirationMockRecorder) GetMembersToExpire(ctx, leaderboard, amount, maxTime interface{}) *gomock.Call
GetMembersToExpire indicates an expected call of GetMembersToExpire.
func (*MockExpirationMockRecorder) RemoveLeaderboardFromExpireList ¶
func (mr *MockExpirationMockRecorder) RemoveLeaderboardFromExpireList(ctx, leaderboard interface{}) *gomock.Call
RemoveLeaderboardFromExpireList indicates an expected call of RemoveLeaderboardFromExpireList.
type Redis ¶
Redis is a type that implements Database interface with redis client
func NewRedisDatabase ¶
func NewRedisDatabase(options RedisOptions) *Redis
NewRedisDatabase create a database based on redis
func (*Redis) ExpireMembers ¶
ExpireMembers remove members from leaderboard
func (*Redis) GetExpirationLeaderboards ¶
GetExpirationLeaderboards return leaderboards registerd with members to expire
func (*Redis) GetLeaderboardExpiration ¶
GetLeaderboardExpiration return leaderboard expiration time
func (*Redis) GetMemberIDsWithScoreInsideRange ¶
func (r *Redis) GetMemberIDsWithScoreInsideRange(ctx context.Context, leaderboard string, min, max string, offset, count int) ([]string, error)
GetMemberIDsWithScoreInsideRange find members with score close to
func (*Redis) GetMembers ¶
func (r *Redis) GetMembers(ctx context.Context, leaderboard, order string, includeTTL bool, members ...string) ([]*Member, error)
GetMembers return members from leaderboard
func (*Redis) GetMembersToExpire ¶
func (r *Redis) GetMembersToExpire(ctx context.Context, leaderboard string, amount int, maxTime time.Time) ([]string, error)
GetMembersToExpire get members in the leaderboard to expire
func (*Redis) GetOrderedMembers ¶
func (r *Redis) GetOrderedMembers(ctx context.Context, leaderboard string, start, stop int, order string) ([]*Member, error)
GetOrderedMembers call redis ZRange if order is asc, if desc call redis ZRevRange
func (*Redis) GetTotalMembers ¶
GetTotalMembers return total members in a leaderboard
func (*Redis) Healthcheck ¶
Healthcheck is a function that call redis ping to understand if redis is ok
func (*Redis) IncrementMemberScore ¶
func (r *Redis) IncrementMemberScore(ctx context.Context, leaderboard, member string, increment float64) error
IncrementMemberScore add to member score the value in parameter
func (*Redis) RemoveLeaderboard ¶
RemoveLeaderboard delete leaderboard key from redis
func (*Redis) RemoveLeaderboardFromExpireList ¶
RemoveLeaderboardFromExpireList remove from leaderboard expiration list the leaderboard
func (*Redis) RemoveMembers ¶
RemoveMembers delete from redis members
func (*Redis) SetLeaderboardExpiration ¶
func (r *Redis) SetLeaderboardExpiration(ctx context.Context, leaderboard string, expireAt time.Time) error
SetLeaderboardExpiration will set leaderboard expiration time
func (*Redis) SetMembers ¶
func (r *Redis) SetMembers(ctx context.Context, leaderboard string, databaseMembers []*Member) error
SetMembers will set member score and ttl
func (*Redis) SetMembersTTL ¶
func (r *Redis) SetMembersTTL(ctx context.Context, leaderboard string, databaseMembers []*Member) error
SetMembersTTL set member ttl in an OrderedSet and add this to expiration_worker set
The TTL is a different ordered set than the original leaderboard, with key being leaderboard name and suffix ":ttl", for example to a leaderboard named test your orederedset with time to expire will be "test:ttl" Note: the worker expiration set is expiration_set
type RedisOptions ¶
type RedisOptions struct { ClusterEnabled bool Addrs []string Host string Port int Password string DB int }
RedisOptions is a struct to create a new redis client
type TTLNotFoundError ¶
type TTLNotFoundError struct {
// contains filtered or unexported fields
}
TTLNotFoundError is an error throw when key has not TTL
func NewTTLNotFoundError ¶
func NewTTLNotFoundError(leaderboard string) *TTLNotFoundError
NewTTLNotFoundError create a new KeyNotFoundError
func (*TTLNotFoundError) Error ¶
func (tnfe *TTLNotFoundError) Error() string