playlist

package
v0.0.0-...-d841f61 Latest Latest
Warning

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

Go to latest
Published: Jun 11, 2021 License: AGPL-3.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewApi

func NewApi(
	store Store,
	actionLogger logger.ActionLogger,
) common.CrudAPI

Types

type AggregationResult

type AggregationResult struct {
	Data       []Playlist `bson:"data" json:"data"`
	TotalCount int64      `bson:"total_count" json:"total_count"`
}

func (*AggregationResult) GetData

func (r *AggregationResult) GetData() interface{}

func (*AggregationResult) GetTotal

func (r *AggregationResult) GetTotal() int64

type EditRequest

type EditRequest struct {
	ID         string                 `json:"-"`
	Author     string                 `json:"author" swaggerignore:"true"`
	Name       string                 `json:"name" binding:"required,max=255"`
	Enabled    *bool                  `json:"enabled" binding:"required"`
	Fullscreen *bool                  `json:"fullscreen" binding:"required"`
	TabsList   []string               `json:"tabs_list" binding:"required,notblank"`
	Interval   types.DurationWithUnit `json:"interval" binding:"required"`
}

type ListRequest

type ListRequest struct {
	pagination.FilteredQuery
	SortBy string   `json:"sort_by" form:"sort_by" binding:"oneoforempty=name enabled fullscreen interval"`
	Ids    []string `form:"-"`
}

type Playlist

type Playlist struct {
	ID         string                 `bson:"_id,omitempty" json:"_id"`
	Author     string                 `bson:"author" json:"author,omitempty"`
	Name       string                 `bson:"name" json:"name"`
	Enabled    bool                   `bson:"enabled" json:"enabled"`
	Fullscreen bool                   `bson:"fullscreen" json:"fullscreen"`
	TabsList   []string               `bson:"tabs_list" json:"tabs_list"`
	Interval   types.DurationWithUnit `bson:"interval" json:"interval"`
	Created    types.CpsTime          `bson:"created,omitempty" json:"created,omitempty" swaggertype:"integer"`
	Updated    types.CpsTime          `bson:"updated,omitempty" json:"updated,omitempty" swaggertype:"integer"`
}

type Store

type Store interface {
	Find(r ListRequest) (*AggregationResult, error)
	GetById(id string) (*Playlist, error)
	Insert(userID string, r EditRequest) (*Playlist, error)
	Update(r EditRequest) (*Playlist, error)
	Delete(id string) (bool, error)
}

func NewStore

func NewStore(dbClient mongo.DbClient) Store

type Validator

type Validator interface {
	ValidateEditRequest(ctx context.Context, sl validator.StructLevel)
}

func NewPlaylistValidator

func NewPlaylistValidator(dbClient mongo.DbClient) Validator

Jump to

Keyboard shortcuts

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