Documentation
¶
Index ¶
- func NewDB(config *DBConfig) (*sql.DB, error)
- type Activity
- type ActivityData
- type ActivityID
- type DBConfig
- type DBStore
- func (d *DBStore) AppendActivities(sub *Subscription, data []*ActivityData) ([]*Activity, error)
- func (d *DBStore) CreateSubscription(sub *Subscription) (*Subscription, error)
- func (d *DBStore) DeleteSubscription(token SubscriptionToken) (bool, error)
- func (d *DBStore) GetUser(userID UserID) (*User, error)
- func (d *DBStore) ListActivityForUser(userID UserID, to ActivityID, limit int) ([]*Activity, error)
- func (d *DBStore) ListSubscriptionsForUser(userID UserID) ([]*Subscription, error)
- func (d *DBStore) ListSubscriptionsToCheck(from time.Time, limit int) ([]*Subscription, error)
- func (d *DBStore) UpdateSubscriptions(subs []*Subscription) error
- func (d *DBStore) UpsertUser(user *User) (*User, error)
- type InMemoryUserStore
- type PlaylistID
- type PlaylistStore
- type Subscription
- type SubscriptionID
- type SubscriptionToken
- type TrackAdded
- type TrackMetadata
- type User
- type UserID
- type UserStore
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Activity ¶
type Activity struct {
ID ActivityID `db:"id"`
UniqueID string `db:"unique_id"`
SubscriptionToken SubscriptionToken `db:"subscription_token"`
UserID UserID `db:"user_id"`
Data *ActivityData `db:"data"`
CreatedAt time.Time `db:"created_at"`
}
type ActivityData ¶
type ActivityData struct {
PlaylistID PlaylistID `json:"playlist_id"`
PlaylistOwnerID UserID `json:"playlist_owner_id"`
TrackAdded *TrackAdded `json:"track_added,omitempty"`
TrackMetadata *TrackMetadata `json:"track_metadata"`
ActorUserID UserID `json:"actor_user_id,omitempty"`
OccuredAt time.Time `json:"occurred_at"`
}
func (*ActivityData) Scan ¶
func (a *ActivityData) Scan(src interface{}) error
func (*ActivityData) UniqueID ¶
func (a *ActivityData) UniqueID() string
type DBStore ¶
type DBStore struct {
// contains filtered or unexported fields
}
func NewDBStore ¶
func (*DBStore) AppendActivities ¶
func (d *DBStore) AppendActivities(sub *Subscription, data []*ActivityData) ([]*Activity, error)
func (*DBStore) CreateSubscription ¶
func (d *DBStore) CreateSubscription(sub *Subscription) (*Subscription, error)
func (*DBStore) DeleteSubscription ¶
func (d *DBStore) DeleteSubscription(token SubscriptionToken) (bool, error)
func (*DBStore) ListActivityForUser ¶
func (*DBStore) ListSubscriptionsForUser ¶
func (d *DBStore) ListSubscriptionsForUser(userID UserID) ([]*Subscription, error)
func (*DBStore) ListSubscriptionsToCheck ¶
func (*DBStore) UpdateSubscriptions ¶
func (d *DBStore) UpdateSubscriptions(subs []*Subscription) error
type InMemoryUserStore ¶
type InMemoryUserStore struct {
// contains filtered or unexported fields
}
func (*InMemoryUserStore) GetUser ¶
func (i *InMemoryUserStore) GetUser(userID UserID) (*User, error)
func (*InMemoryUserStore) UpsertUser ¶
func (i *InMemoryUserStore) UpsertUser(user *User) (*User, error)
type PlaylistID ¶
type PlaylistID string
type PlaylistStore ¶
type PlaylistStore interface {
CreateSubscription(sub *Subscription) (*Subscription, error)
UpdateSubscriptions(subs []*Subscription) error
DeleteSubscription(token SubscriptionToken) (bool, error)
ListSubscriptionsForUser(userID UserID) ([]*Subscription, error)
ListSubscriptionsToCheck(from time.Time, limit int) ([]*Subscription, error)
AppendActivities(sub *Subscription, data []*ActivityData) ([]*Activity, error)
ListActivityForUser(userID UserID, to ActivityID, limit int) ([]*Activity, error)
}
type Subscription ¶
type Subscription struct {
Token SubscriptionToken `db:"token"`
UserID UserID `db:"user_id"`
PlaylistID PlaylistID `db:"playlist_id"`
PlaylistOwnerID UserID `db:"playlist_owner_id"`
PlaylistName string `db:"playlist_name"`
PlaylistVersion string `db:"playlist_version"`
PlaylistTracks []byte `db:"playlist_tracks"`
NextCheckAt *time.Time `db:"next_check_at"`
CreatedAt time.Time `db:"created_at"`
UpdatedAt time.Time `db:"updated_at"`
}
func (*Subscription) PlaylistTrackIDs ¶
func (s *Subscription) PlaylistTrackIDs() []string
type SubscriptionID ¶
type SubscriptionID int64
type SubscriptionToken ¶
type SubscriptionToken string
type TrackAdded ¶
type TrackAdded struct {
}
type TrackMetadata ¶
type User ¶
type User struct {
ID UserID `db:"id"`
AccessToken string `db:"access_token"`
RefreshToken string `db:"refresh_token"`
ExpiresAt time.Time `db:"expires_at"`
Name string `db:"name"`
Email string `db:"email"`
LastSeenActivityID *ActivityID `db:"last_seen_activity_id"`
CreatedAt time.Time `db:"created_at"`
UpdatedAt time.Time `db:"updated_at"`
}
Click to show internal directories.
Click to hide internal directories.