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.