database

package
v0.0.0-...-998d507 Latest Latest
Warning

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

Go to latest
Published: Apr 29, 2024 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ActiveUserStats

type ActiveUserStats struct {
	Date                    time.Time
	TotalNumDevices         int64
	TotalNumUsers           int64
	DailyActiveSubmitUsers  int64
	DailyActiveQueryUsers   int64
	WeeklyActiveSubmitUsers int64
	WeeklyActiveQueryUsers  int64
	DailyInstalls           int64
	DailyUninstalls         int64
}

type DB

type DB struct {
	*gorm.DB
}

func OpenPostgres

func OpenPostgres(dsn string, config *gorm.Config) (*DB, error)

func OpenSQLite

func OpenSQLite(dsn string, config *gorm.Config) (*DB, error)

func (*DB) AddDatabaseTables

func (db *DB) AddDatabaseTables() error

func (*DB) AddHistoryEntries

func (db *DB) AddHistoryEntries(ctx context.Context, entries ...*shared.EncHistoryEntry) error

func (*DB) AddHistoryEntriesForAllDevices

func (db *DB) AddHistoryEntriesForAllDevices(ctx context.Context, sourceDeviceId string, devices []*Device, entries []*shared.EncHistoryEntry) error

func (*DB) AllHistoryEntriesForUser

func (db *DB) AllHistoryEntriesForUser(ctx context.Context, userID string) ([]*shared.EncHistoryEntry, error)

func (*DB) ApplyDeletionRequestsToBackend

func (db *DB) ApplyDeletionRequestsToBackend(ctx context.Context, requests []*shared.DeletionRequest) (int64, error)

func (*DB) Clean

func (db *DB) Clean(ctx context.Context) error

func (*DB) Close

func (db *DB) Close() error

func (*DB) CountActiveInstalls

func (db *DB) CountActiveInstalls(ctx context.Context, since time.Duration) (int64, error)

func (*DB) CountAllDevices

func (db *DB) CountAllDevices(ctx context.Context) (int64, error)

func (*DB) CountApproximateHistoryEntries

func (db *DB) CountApproximateHistoryEntries(ctx context.Context) (int64, error)

func (*DB) CountDevicesForUser

func (db *DB) CountDevicesForUser(ctx context.Context, userID string) (int64, error)

func (*DB) CountQueryUsers

func (db *DB) CountQueryUsers(ctx context.Context, since time.Duration) (int64, error)

func (*DB) CreateDevice

func (db *DB) CreateDevice(ctx context.Context, device *Device) error

func (*DB) CreateIndices

func (db *DB) CreateIndices() error

func (*DB) CreateUsageData

func (db *DB) CreateUsageData(ctx context.Context, usageData *UsageData) error

func (*DB) DateOfLastRegistration

func (db *DB) DateOfLastRegistration(ctx context.Context) (string, error)

func (*DB) DeepClean

func (db *DB) DeepClean(ctx context.Context) error

func (*DB) DeleteMessagesFromBackend

func (db *DB) DeleteMessagesFromBackend(ctx context.Context, userId string, deletedMessages []shared.MessageIdentifier) (int64, error)

func (*DB) DeletionRequestCreate

func (db *DB) DeletionRequestCreate(ctx context.Context, request *shared.DeletionRequest) error

func (*DB) DeletionRequestInc

func (db *DB) DeletionRequestInc(ctx context.Context, userID, deviceID string) error

func (*DB) DeletionRequestsForUserAndDevice

func (db *DB) DeletionRequestsForUserAndDevice(ctx context.Context, userID, deviceID string) ([]*shared.DeletionRequest, error)

func (*DB) DevicesForUser

func (db *DB) DevicesForUser(ctx context.Context, userID string) ([]*Device, error)

func (*DB) DistinctUsers

func (db *DB) DistinctUsers(ctx context.Context) (int64, error)

func (*DB) DumpRequestCreate

func (db *DB) DumpRequestCreate(ctx context.Context, req *shared.DumpRequest) error

func (*DB) DumpRequestDeleteForUserAndDevice

func (db *DB) DumpRequestDeleteForUserAndDevice(ctx context.Context, userID, deviceID string) error

func (*DB) DumpRequestForUserAndDevice

func (db *DB) DumpRequestForUserAndDevice(ctx context.Context, userID, deviceID string) ([]*shared.DumpRequest, error)

func (*DB) FeedbackCreate

func (db *DB) FeedbackCreate(ctx context.Context, feedback *shared.Feedback) error

func (*DB) GenerateAndStoreActiveUserStats

func (db *DB) GenerateAndStoreActiveUserStats(ctx context.Context) error

func (*DB) HistoryEntriesForDevice

func (db *DB) HistoryEntriesForDevice(ctx context.Context, deviceID string, limit int) ([]*shared.EncHistoryEntry, error)

func (*DB) IncrementEntryReadCountsForDevice

func (db *DB) IncrementEntryReadCountsForDevice(ctx context.Context, deviceID string) error

func (*DB) Ping

func (db *DB) Ping() error

func (*DB) SetMaxIdleConns

func (db *DB) SetMaxIdleConns(n int) error

func (*DB) Stats

func (db *DB) Stats() (sql.DBStats, error)

func (*DB) UninstallDevice

func (db *DB) UninstallDevice(ctx context.Context, userId, deviceId string) (int64, error)

func (*DB) Unsafe_DeleteAllHistoryEntries

func (db *DB) Unsafe_DeleteAllHistoryEntries(ctx context.Context) error

func (*DB) UpdateUsageData

func (db *DB) UpdateUsageData(ctx context.Context, userId, deviceId string, lastUsed time.Time, lastIP string) error

UpdateUsageData updates the entry for a given userID/deviceID pair with the lastUsed and lastIP values

func (*DB) UpdateUsageDataClientVersion

func (db *DB) UpdateUsageDataClientVersion(ctx context.Context, userID, deviceID string, version string) error

func (*DB) UpdateUsageDataForNumEntriesHandled

func (db *DB) UpdateUsageDataForNumEntriesHandled(ctx context.Context, userId, deviceId string, numEntriesHandled int) error

func (*DB) UpdateUsageDataNumberQueries

func (db *DB) UpdateUsageDataNumberQueries(ctx context.Context, userID, deviceID string) error

func (*DB) UsageDataFindByUserAndDevice

func (db *DB) UsageDataFindByUserAndDevice(ctx context.Context, userId, deviceId string) ([]UsageData, error)

func (*DB) UsageDataStats

func (db *DB) UsageDataStats(ctx context.Context) ([]*UsageDataStats, error)

func (*DB) UsageDataTotal

func (db *DB) UsageDataTotal(ctx context.Context) (int64, error)

func (*DB) UserAlreadyExist

func (db *DB) UserAlreadyExist(ctx context.Context, userID string) (bool, error)

type Device

type Device struct {
	UserId   string `json:"user_id"`
	DeviceId string `json:"device_id"`
	// The IP address that was used to register the device. Recorded so
	// that I can count how many people are using hishtory and roughly
	// from where. If you would like this deleted, please email me at
	// david@daviddworken.com and I can clear it from your device entries.
	RegistrationIp   string    `json:"registration_ip"`
	RegistrationDate time.Time `json:"registration_date"`
	// Test devices, that should be aggressively cleaned from the DB
	IsIntegrationTestDevice bool `json:"is_integration_test_device"`
	// Whether this device was uninstalled
	UninstallDate time.Time `json:"uninstall_date"`
}

type UsageData

type UsageData struct {
	UserId            string    `json:"user_id" gorm:"not null; uniqueIndex:usageDataUniqueIndex"`
	DeviceId          string    `json:"device_id"  gorm:"not null; uniqueIndex:usageDataUniqueIndex"`
	LastUsed          time.Time `json:"last_used"`
	LastIp            string    `json:"last_ip"`
	NumEntriesHandled int       `json:"num_entries_handled"`
	LastQueried       time.Time `json:"last_queried"`
	NumQueries        int       `json:"num_queries"`
	Version           string    `json:"version"`
}

type UsageDataStats

type UsageDataStats struct {
	RegistrationDate time.Time
	NumDevices       int
	NumEntries       int
	LastUsedDate     time.Time
	IpAddresses      string
	NumQueries       int
	LastQueried      time.Time
	Versions         string
}

Jump to

Keyboard shortcuts

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