public

package
v0.6.3 Latest Latest
Warning

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

Go to latest
Published: Nov 20, 2020 License: GPL-3.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Breadcrumb struct {
	ID       int    `db:"id" json:"id"`
	URL      string `db:"url" json:"url"`
	UseInURL bool   `db:"use" json:"useInURL"`
	Name     string `db:"name" json:"name"`
	SeriesID int    `db:"series_id" json:"-"` // Here since needed
}

Breadcrumb generic to be used for both series and video as a breadcrumb

type BreadcrumbItem struct {
	Video  *VideoItem `json:"video,omitempty"`
	Series *Series    `json:"series,omitempty"`
}

BreadcrumbItem is either a video or a series

type BreadcrumbRepo interface {
	VideoBreadcrumb(ctx context.Context, videoID int) ([]Breadcrumb, error)
	SeriesBreadcrumb(ctx context.Context, seriesID int) ([]Breadcrumb, error)
	Find(ctx context.Context, path string) (*BreadcrumbItem, error)
}

BreadcrumbRepo represents all breadcrumb interactions

type Series

type Series struct {
	SeriesMeta
	ImmediateChildSeries []SeriesMeta `json:"childSeries"`
	ChildVideos          []VideoMeta  `json:"videos"`
}

Series provides basic information about a series this is useful when you want to know the current series and see it's immediate children.

type SeriesMeta

type SeriesMeta struct {
	SeriesID    int         `db:"series_id" json:"id"`
	URL         string      `db:"url" json:"url"`
	SeriesName  string      `db:"name" json:"name"`
	Description string      `db:"description" json:"description"`
	Thumbnail   null.String `db:"thumbnail" json:"thumbnail"`
	Depth       int         `db:"depth" json:"-"`
}

SeriesMeta is used as a children object for a series

type SeriesRepo

type SeriesRepo interface {
	GetSeries(ctx context.Context, seriesID int) (Series, error)
	GetSeriesMeta(ctx context.Context, seriesID int) (Series, error)
	GetSeriesImmediateChildrenSeries(ctx context.Context, seriesID int) ([]SeriesMeta, error)
	GetSeriesFromPath(ctx context.Context, path string) (Series, error)
}

SeriesRepo represents all series interactions

type Store

type Store struct {
	// contains filtered or unexported fields
}

Store encapsulates our dependency

func NewStore

func NewStore(db *sqlx.DB) *Store

NewStore creates our data store

func (*Store) Find

func (m *Store) Find(ctx context.Context, path string) (*BreadcrumbItem, error)

Find returns either a series or video for a given path TODO be consistent with creator's find in terms of variables

func (*Store) GetSeries

func (m *Store) GetSeries(ctx context.Context, seriesID int) (Series, error)

GetSeries provides the immediate children of children and videos

func (*Store) GetSeriesFromPath

func (m *Store) GetSeriesFromPath(ctx context.Context, path string) (Series, error)

GetSeriesFromPath returns a series from a url path

func (*Store) GetSeriesImmediateChildrenSeries

func (m *Store) GetSeriesImmediateChildrenSeries(ctx context.Context, seriesID int) ([]SeriesMeta, error)

GetSeriesImmediateChildrenSeries returns series directly below the chosen series

func (*Store) GetSeriesMeta

func (m *Store) GetSeriesMeta(ctx context.Context, seriesID int) (Series, error)

GetSeriesMeta provides basic information for only the selected series TODO probably want to swap this to return SeriesMeta instead

func (*Store) GetVideo

func (m *Store) GetVideo(ctx context.Context, videoID int) (*VideoItem, error)

GetVideo returns a VideoItem, including the files, based on a given VideoItem ID.

func (*Store) ListTeams

func (s *Store) ListTeams(ctx context.Context) (*[]Team, error)

ListTeams returns a list of the ystv teams and their current members.

func (*Store) ListVideo

func (m *Store) ListVideo(ctx context.Context, offset int, page int) (*[]VideoMeta, error)

ListVideo returns all video metadata

func (*Store) SeriesBreadcrumb

func (m *Store) SeriesBreadcrumb(ctx context.Context, seriesID int) ([]Breadcrumb, error)

SeriesBreadcrumb will return the breadcrumb from SeriesID to root

func (*Store) VideoBreadcrumb

func (m *Store) VideoBreadcrumb(ctx context.Context, videoID int) ([]Breadcrumb, error)

VideoBreadcrumb returns the absolute path from a VideoID

func (*Store) VideoOfSeries

func (m *Store) VideoOfSeries(ctx context.Context, seriesID int) ([]VideoMeta, error)

VideoOfSeries returns all the videos belonging to a series

type Team

type Team struct {
	Name        string       `json:"name"`
	Description string       `json:"description"`
	Members     []TeamMember `json:"members"`
}

Team a group in ystv

type TeamMember

type TeamMember struct {
	Name     string `json:"name"`
	Position string `json:"position"`
	Email    string `json:"email"`
}

TeamMember a position within a group

type TeamRepo

type TeamRepo interface {
	ListTeams(ctx context.Context) (*[]Team, error)
}

TeamRepo represents all team interactions

type VideoFile

type VideoFile struct {
	URI      string `json:"uri"`
	MimeType string `db:"mime_type" json:"mimeType"`
	Mode     string `db:"mode" json:"mode"`
	Width    int    `db:"width" json:"width"`
	Height   int    `db:"height" json:"height"`
}

VideoFile represents each file that a video item has stored.

type VideoItem

type VideoItem struct {
	VideoMeta
	Files []VideoFile `json:"files"`
}

VideoItem represents public info about video item.

type VideoMeta

type VideoMeta struct {
	VideoID       int         `db:"video_id" json:"id"`
	SeriesID      int         `db:"series_id" json:"seriesID"`
	Name          string      `db:"name" json:"name"`
	URL           string      `db:"url" json:"url"`
	Description   string      `db:"description" json:"description"`
	Thumbnail     null.String `db:"thumbnail" json:"thumbnail"`
	BroadcastDate string      `db:"broadcast_date" json:"broadcastDate"`
	Views         int         `db:"views" json:"views"`
	Duration      null.Int    `db:"duration" json:"duration"`
}

VideoMeta represents basic information about the videoitem used for listing.

type VideoRepo

type VideoRepo interface {
	ListVideo(ctx context.Context, offset int, page int) (*[]VideoMeta, error)
	GetVideo(ctx context.Context, videoID int) (*VideoItem, error)
	VideoOfSeries(ctx context.Context, seriesID int) ([]VideoMeta, error)
}

VideoRepo represents all video interactions

Jump to

Keyboard shortcuts

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