storage

package
v1.5.2 Latest Latest
Warning

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

Go to latest
Published: Sep 30, 2022 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Package storage provides datasource functionality.

Index

Constants

This section is empty.

Variables

View Source
var ErrAddressIsTaken = fmt.Errorf("address is taken")

ErrAddressIsTaken ...

View Source
var ErrNotFound = fmt.Errorf("not found")

ErrNotFound ...

View Source
var ErrReferralCodeNotFound = fmt.Errorf("referral code not found")

ErrReferralCodeNotFound ...

View Source
var ErrReferralTrackingExists = fmt.Errorf("referral tracking exists")

ErrReferralTrackingExists ...

Functions

This section is empty.

Types

type DLoan added in v1.5.0

type DLoan struct {
	ID        int       `db:"id"`
	FirstName string    `db:"first_name"`
	LastName  string    `db:"last_name"`
	Address   string    `db:"address"`
	PDV       float64   `db:"pdv"`
	CreatedAt time.Time `db:"created_at"`
}

DLoan ...

type ReferralStatus added in v1.1.0

type ReferralStatus string

ReferralStatus represents a referral workflow status: registered -> installed -> confirmed.

const (
	// RegisteredReferralStatus means the receiver registered with the sender referral code.
	RegisteredReferralStatus ReferralStatus = "registered"
	// InstalledReferralStatus means the receiver installed the Browser and restored the account with their seed.
	InstalledReferralStatus ReferralStatus = "installed"
	// ConfirmedReferralStatus means the reward has been sent to the sender and receiver.
	ConfirmedReferralStatus ReferralStatus = "confirmed"
)

type ReferralTracking added in v1.1.0

type ReferralTracking struct {
	Sender         string         `db:"sender"`
	Receiver       string         `db:"receiver"`
	Status         ReferralStatus `db:"status"`
	RegisteredAt   time.Time      `db:"registered_at"`
	InstalledAt    sql.NullTime   `db:"installed_at"`
	ConfirmedAt    sql.NullTime   `db:"confirmed_at"`
	SenderReward   sql.NullInt32  `db:"sender_reward"`
	ReceiverReward sql.NullInt32  `db:"receiver_reward"`
}

ReferralTracking ...

type ReferralTrackingStats added in v1.1.0

type ReferralTrackingStats struct {
	Registered int     `db:"registered"`
	Installed  int     `db:"installed"`
	Confirmed  int     `db:"confirmed"`
	Reward     sdk.Int `db:"reward"`
}

ReferralTrackingStats ...

type RegisterStats added in v1.1.0

type RegisterStats struct {
	Date  time.Time `json:"date"`
	Value int       `json:"value"`
}

RegisterStats ...

type Request

type Request struct {
	Owner                    string         `db:"owner"`
	Email                    string         `db:"email"`
	Address                  string         `db:"address"`
	Code                     string         `db:"code"`
	CreatedAt                time.Time      `db:"created_at"`
	ConfirmedAt              sql.NullTime   `db:"confirmed_at"`
	OwnReferralCode          string         `db:"own_referral_code"`
	RegistrationReferralCode sql.NullString `db:"registration_referral_code"`
	ReferralBanned           bool           `db:"referral_banned"`
}

Request ...

type Storage

type Storage interface {
	// InTx runs code in transaction
	InTx(ctx context.Context, f func(s Storage) error) error
	// GetConfirmedRegistrationsTotal return a total number of all confirmed accounts (requests)
	GetConfirmedRegistrationsTotal(ctx context.Context) (int, error)
	// GetConfirmedRegistrationsStats return confirmed accounts stats for the last 30 days
	GetConfirmedRegistrationsStats(ctx context.Context) ([]*RegisterStats, error)
	// GetRequestByOwner returns request by owner.
	GetRequestByOwner(ctx context.Context, owner string) (*Request, error)
	// GetRequestByOwnReferralCode returns request by referral code.
	GetRequestByOwnReferralCode(ctx context.Context, ownReferralCode string) (*Request, error)
	// GetRequestByAddress returns request by address.
	GetRequestByAddress(ctx context.Context, address string) (*Request, error)
	// SetConfirmed sets request confirmed.
	SetConfirmed(ctx context.Context, owner string) error
	// CreateTestnetConfirmedRequest creates a confirmed request. Must be used only in Testnet.
	CreateTestnetConfirmedRequest(ctx context.Context, address string) error
	// UpsertRequest inserts request into storage.
	UpsertRequest(ctx context.Context, owner, email, address, code string, referralCode sql.NullString) error
	// CreateReferralTracking creates a new referral tracking
	CreateReferralTracking(ctx context.Context, receiver string, referralCode string) error
	// TransitionReferralTrackingToInstalled transitions referral tracking of the given referral code receiver as installed
	TransitionReferralTrackingToInstalled(ctx context.Context, receiver string) error
	// TransitionReferralTrackingToConfirmed transitions referral tracking as confirmed
	TransitionReferralTrackingToConfirmed(ctx context.Context, receiver string, senderReward, receiverReward sdk.Int) error
	// GetReferralTrackingByReceiver returns referral tracking by the given receiver address
	GetReferralTrackingByReceiver(ctx context.Context, receiver string) (*ReferralTracking, error)
	// GetReferralTrackingStats returns referral tracking stats: total + 30 last days
	GetReferralTrackingStats(ctx context.Context, sender string) ([]*ReferralTrackingStats, error)
	// GetUnconfirmedReferralTracking returns referral tracking installed more than given days  ago
	GetUnconfirmedReferralTracking(ctx context.Context, days int) ([]*ReferralTracking, error)
	// GetConfirmedReferralTrackingCount returns count of confirmed referrals
	GetConfirmedReferralTrackingCount(ctx context.Context, sender string) (int, error)
	// DoesEmailHaveFraudDomain checks if the given email has fraud domain
	DoesEmailHaveFraudDomain(ctx context.Context, email string) (bool, error)
	// CreateDLoan creates a dLoan.
	CreateDLoan(ctx context.Context, address, firstName, lastName string, pdv float64) error
	// GetDLoans returns a list of DLoans.
	GetDLoans(ctx context.Context, take, skip int) ([]*DLoan, error)
}

Storage provides methods for interacting with database.

Directories

Path Synopsis
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
Package postgres is implementation of storage interface.
Package postgres is implementation of storage interface.

Jump to

Keyboard shortcuts

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