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.