Documentation ¶
Index ¶
- Variables
- func Consume(ctx context.Context, group sarama.ConsumerGroup, settings *config.Settings, ...) error
- func GetWeekNum(t time.Time) int
- func GetWeekNumForCron(t time.Time) int
- func NumToWeekEnd(n int) time.Time
- func NumToWeekStart(n int) time.Time
- type ActivityResp
- type Client
- type ContractEventStreamConsumer
- type DeviceActivityClient
- type DeviceData
- type DeviceDataClient
- type DeviceIntegrationsResp
- type DeviceListResp
- type DevicesClient
- type IntegrationsGetter
- type LevelInfo
- type RewardsTask
- type StreakInput
- type StreakOutput
- type TokenConfig
- type Transfer
- type TransferStatusProcessor
Constants ¶
This section is empty.
Variables ¶
View Source
var LevelInfos = []*LevelInfo{
{Level: 1, MinWeeks: 0, Points: 0},
{Level: 2, MinWeeks: 4, Points: 1000},
{Level: 3, MinWeeks: 21, Points: 2000},
{Level: 4, MinWeeks: 36, Points: 3000},
}
Functions ¶
func Consume ¶ added in v1.0.0
func Consume(ctx context.Context, group sarama.ConsumerGroup, settings *config.Settings, statusProc *TransferStatusProcessor) error
func GetWeekNum ¶
GetWeekNum calculates the number of the week in which the given time lies for DIMO point issuance, which at the time of writing starts at 2022-01-31 05:00 UTC. Indexing is zero-based.
func GetWeekNumForCron ¶
GetWeekNumForCron calculates the week number for the current run of the cron job. We expect the job to run every Monday at 05:00 UTC, but due to skew we just round the time.
func NumToWeekEnd ¶
func NumToWeekStart ¶
Types ¶
type ActivityResp ¶
type Client ¶ added in v1.0.0
type Client struct { Producer sarama.SyncProducer Consumer sarama.ConsumerGroup RequestTopic string StatusTopic string ContractAddress common.Address // contains filtered or unexported fields }
func (*Client) BatchTransfer ¶ added in v1.0.0
type ContractEventStreamConsumer ¶ added in v1.5.0
func NewEventConsumer ¶ added in v1.5.0
func NewEventConsumer(db db.Store, logger *zerolog.Logger, tc *TokenConfig) (*ContractEventStreamConsumer, error)
func (*ContractEventStreamConsumer) Cleanup ¶ added in v1.5.0
func (c *ContractEventStreamConsumer) Cleanup(sarama.ConsumerGroupSession) error
func (*ContractEventStreamConsumer) ConsumeClaim ¶ added in v1.5.0
func (c *ContractEventStreamConsumer) ConsumeClaim(session sarama.ConsumerGroupSession, claim sarama.ConsumerGroupClaim) error
func (*ContractEventStreamConsumer) Setup ¶ added in v1.5.0
func (c *ContractEventStreamConsumer) Setup(sarama.ConsumerGroupSession) error
type DeviceActivityClient ¶ added in v1.5.0
type DeviceActivityClient interface {
DescribeActiveDevices(start, end time.Time) ([]*DeviceData, error)
}
type DeviceData ¶
type DeviceDataClient ¶
type DeviceDataClient interface { GetLastActivity(userDeviceID string) (lastActivity time.Time, seen bool, err error) DescribeActiveDevices(start, end time.Time) ([]*DeviceData, error) GetIntegrations(userDeviceID string, start, end time.Time) (ints []string, err error) }
func NewDeviceDataClient ¶
func NewDeviceDataClient(settings *config.Settings) DeviceDataClient
type DeviceIntegrationsResp ¶
type DeviceListResp ¶
type DeviceListResp struct { Aggregations struct { ActiveDevices struct { AfterKey struct { Subject *string `json:"subject"` } `json:"after_key"` Buckets []struct { Key struct { Subject string `json:"subject"` } `json:"key"` Integrations struct { Buckets []struct { Key string `json:"key"` } `json:"buckets"` } `json:"integrations"` UnitIDs struct { Buckets []struct { Key string `json:"key"` } `json:"buckets"` } `json:"unit_ids"` } `json:"buckets"` } `json:"active_devices"` } `json:"aggregations"` }
type DevicesClient ¶ added in v1.5.0
type DevicesClient interface {
GetUserDevice(ctx context.Context, in *pb_devices.GetUserDeviceRequest, opts ...grpc.CallOption) (*pb_devices.UserDevice, error)
}
type IntegrationsGetter ¶ added in v1.5.0
type IntegrationsGetter interface {
GetIntegrations(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*pb_defs.GetIntegrationResponse, error)
}
type RewardsTask ¶
type RewardsTask struct { Logger *zerolog.Logger DataService DeviceActivityClient DB db.Store TransferService Transfer DevicesClient DevicesClient DefsClient IntegrationsGetter }
func (*RewardsTask) Calculate ¶
func (t *RewardsTask) Calculate(issuanceWeek int) error
type StreakInput ¶
type StreakOutput ¶
func ComputeStreak ¶
func ComputeStreak(i StreakInput) StreakOutput
func FakeStreak ¶ added in v1.3.0
func FakeStreak(connectionStreak int) StreakOutput
type TokenConfig ¶ added in v1.5.0
type Transfer ¶ added in v1.0.0
Click to show internal directories.
Click to hide internal directories.