database

package
v2.0.0-...-91315bd Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 27, 2024 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package database is a generated GoMock package.

Package database is a generated GoMock package.

Index

Constants

View Source
const ExpirationSet string = "leaderboard::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

type Member

type Member struct {
	Member string
	Score  float64
	Rank   int64
	TTL    time.Time
}

Member is a struct to be used by users operations

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

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) GetRank

func (m *MockDatabase) GetRank(ctx context.Context, leaderboard, member, order string) (int, error)

GetRank mocks base method.

func (*MockDatabase) GetTotalMembers

func (m *MockDatabase) GetTotalMembers(ctx context.Context, leaderboard string) (int, error)

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

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

type Redis struct {
	redis.Client
}

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

func (r *Redis) ExpireMembers(ctx context.Context, leaderboard string, members []string) error

ExpireMembers remove members from leaderboard

func (*Redis) GetExpirationLeaderboards

func (r *Redis) GetExpirationLeaderboards(ctx context.Context) ([]string, error)

GetExpirationLeaderboards return leaderboards registerd with members to expire

func (*Redis) GetLeaderboardExpiration

func (r *Redis) GetLeaderboardExpiration(ctx context.Context, leaderboard string) (int64, error)

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) GetRank

func (r *Redis) GetRank(ctx context.Context, leaderboard, member, order string) (int, error)

GetRank find member positon on leaderboard

func (*Redis) GetTotalMembers

func (r *Redis) GetTotalMembers(ctx context.Context, leaderboard string) (int, error)

GetTotalMembers return total members in a leaderboard

func (*Redis) Healthcheck

func (r *Redis) Healthcheck(ctx context.Context) error

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

func (r *Redis) RemoveLeaderboard(ctx context.Context, leaderboard string) error

RemoveLeaderboard delete leaderboard key from redis

func (*Redis) RemoveLeaderboardFromExpireList

func (r *Redis) RemoveLeaderboardFromExpireList(ctx context.Context, leaderboard string) error

RemoveLeaderboardFromExpireList remove from leaderboard expiration list the leaderboard

func (*Redis) RemoveMembers

func (r *Redis) RemoveMembers(ctx context.Context, leaderboard string, members ...string) error

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
	Username       string
	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

Directories

Path Synopsis
Package redis is a generated GoMock package.
Package redis is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL