api

package
v0.8.7 Latest Latest
Warning

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

Go to latest
Published: Apr 24, 2018 License: MIT Imports: 27 Imported by: 0

Documentation

Index

Constants

View Source
const AUTHORS_SOURCES_SQL = `` /* 679-byte string literal not displayed */
View Source
const SOURCE_HIERARCHY_SQL = `` /* 1490-byte string literal not displayed */

args: 0,1,3,4 language 2 roots clause, "parent_id is NULL", "id = 8392", etc... 5 depth (int)

View Source
const TAG_HIERARCHY_SQL = `` /* 810-byte string literal not displayed */

args: 0,2 language 1 roots clause, "parent_id is NULL", "id = 8392", etc... 3 depth (int)

Variables

View Source
var SECURE_PUBLISHED_MOD = qm.Where(fmt.Sprintf("secure=%d AND published IS TRUE", consts.SEC_PUBLIC))

Functions

func AutocompleteHandler

func AutocompleteHandler(c *gin.Context)

func ClickHandler added in v0.8.0

func ClickHandler(c *gin.Context)

func CollectionHandler

func CollectionHandler(c *gin.Context)

func CollectionsHandler

func CollectionsHandler(c *gin.Context)

func ContentUnitHandler

func ContentUnitHandler(c *gin.Context)

func ContentUnitsHandler

func ContentUnitsHandler(c *gin.Context)

func HealthCheckHandler added in v0.8.2

func HealthCheckHandler(c *gin.Context)

func HomePageHandler added in v0.6.6

func HomePageHandler(c *gin.Context)

func IsRuneQuotationMark

func IsRuneQuotationMark(r rune) bool

func IsTokenEnd

func IsTokenEnd(i int, runes []rune, lastQuote rune, lastQuoteIdx int) bool

func IsTokenStart

func IsTokenStart(i int, runes []rune, lastQuote rune) bool

func LatestLessonHandler added in v0.6.6

func LatestLessonHandler(c *gin.Context)

func LessonsHandler

func LessonsHandler(c *gin.Context)

func ParseQuery

func ParseQuery(q string) search.Query

Parses query and extracts terms and filters.

func Ping added in v0.8.2

func Ping(ctx context.Context, db *sql.DB) error

func PublishersHandler added in v0.6.5

func PublishersHandler(c *gin.Context)

func RecentlyUpdatedHandler

func RecentlyUpdatedHandler(c *gin.Context)

func SearchHandler

func SearchHandler(c *gin.Context)

func SemiQuasiDataHandler added in v0.7.3

func SemiQuasiDataHandler(c *gin.Context)

func SetupRoutes

func SetupRoutes(router *gin.Engine)

func SourcesHierarchyHandler

func SourcesHierarchyHandler(c *gin.Context)

func StatsCUClassHandler added in v0.8.7

func StatsCUClassHandler(c *gin.Context)

func TagsHierarchyHandler

func TagsHierarchyHandler(c *gin.Context)

func Tokenize

func Tokenize(str string) []string

Tokenizes string to work with user friendly escapings of quotes (see tests).

Types

type Author

type Author struct {
	Code     string      `json:"id"`
	Name     string      `json:"name"`
	FullName null.String `json:"full_name,omitempty"`
	Children []*Source   `json:"children,omitempty"`
}
type Banner struct {
	Section   string `json:"section"`
	Header    string `json:"header"`
	SubHeader string `json:"sub_header"`
	Url       string `json:"url"`
	Image     string `json:"image"`
}

type BaseRequest

type BaseRequest struct {
	Language string `json:"language" form:"language" binding:"omitempty,len=2"`
}

type Collection

type Collection struct {
	ID              string         `json:"id"`
	ContentType     string         `json:"content_type"`
	Name            string         `json:"name,omitempty"`
	Description     string         `json:"description,omitempty"`
	FilmDate        *utils.Date    `json:"film_date,omitempty"`
	StartDate       *utils.Date    `json:"start_date,omitempty"`
	EndDate         *utils.Date    `json:"end_date,omitempty"`
	Country         string         `json:"country,omitempty"`
	City            string         `json:"city,omitempty"`
	FullAddress     string         `json:"full_address,omitempty"`
	Genres          []string       `json:"genres,omitempty"`
	DefaultLanguage string         `json:"default_language,omitempty"`
	HolidayID       string         `json:"holiday_id,omitempty"`
	ContentUnits    []*ContentUnit `json:"content_units,omitempty"`
}

type CollectionUpdateStatus

type CollectionUpdateStatus struct {
	UID        string     `json:"id"`
	LastUpdate utils.Date `json:"last_update"`
	UnitsCount int        `json:"units_count"`
}

type CollectionsFilter added in v0.6.5

type CollectionsFilter struct {
	Collections []string `json:"collections" form:"collection" binding:"omitempty,dive,len=8"`
}

type CollectionsRequest

type CollectionsRequest struct {
	ListRequest
	IDsFilter
	ContentTypesFilter
	DateRangeFilter
	WithUnits bool `json:"with_units" form:"with_units"`
}

type CollectionsResponse

type CollectionsResponse struct {
	ListResponse
	Collections []*Collection `json:"collections"`
}

func NewCollectionsResponse

func NewCollectionsResponse() *CollectionsResponse

type ContentTypesFilter

type ContentTypesFilter struct {
	ContentTypes []string `json:"content_types" form:"content_type" binding:"omitempty"`
}

type ContentUnit

type ContentUnit struct {
	ID               string                  `json:"id"`
	ContentType      string                  `json:"content_type"`
	NameInCollection string                  `json:"name_in_collection,omitempty"`
	FilmDate         *utils.Date             `json:"film_date,omitempty"`
	Name             string                  `json:"name,omitempty"`
	Description      string                  `json:"description,omitempty"`
	Duration         float64                 `json:"duration,omitempty"`
	OriginalLanguage string                  `json:"original_language,omitempty"`
	Files            []*File                 `json:"files,omitempty"`
	Collections      map[string]*Collection  `json:"collections,omitempty"`
	Sources          []string                `json:"sources,omitempty"`
	Tags             []string                `json:"tags,omitempty"`
	Publishers       []string                `json:"publishers,omitempty"`
	SourceUnits      map[string]*ContentUnit `json:"source_units,omitempty"`
	DerivedUnits     map[string]*ContentUnit `json:"derived_units,omitempty"`
}

type ContentUnitsResponse

type ContentUnitsResponse struct {
	ListResponse
	ContentUnits []*ContentUnit `json:"content_units"`
}

func NewContentUnitsResponse

func NewContentUnitsResponse() *ContentUnitsResponse

type DateRangeFilter

type DateRangeFilter struct {
	StartDate string `json:"start_date" form:"start_date" binding:"omitempty"`
	EndDate   string `json:"end_date" form:"end_date" binding:"omitempty"`
}

func (*DateRangeFilter) Range

func (drf *DateRangeFilter) Range() (time.Time, time.Time, error)

type File

type File struct {
	ID        string  `json:"id"`
	Name      string  `json:"name"`
	Size      int64   `json:"size"`
	Duration  float64 `json:"duration,omitempty"`
	Language  string  `json:"language,omitempty"`
	MimeType  string  `json:"mimetype,omitempty"`
	Type      string  `json:"type,omitempty"`
	SubType   string  `json:"subtype,omitempty"`
	VideoSize string  `json:"video_size,omitempty"`
}

type GenresProgramsFilter

type GenresProgramsFilter struct {
	Genres   []string `json:"genres" form:"genre" binding:"omitempty"`
	Programs []string `json:"programs" form:"program" binding:"omitempty,dive,len=8"`
}

type HierarchyRequest

type HierarchyRequest struct {
	BaseRequest
	RootUID string `json:"root" form:"root" binding:"omitempty,len=8"`
	Depth   int    `json:"depth" form:"depth"`
}

type HomeResponse added in v0.6.9

type HomeResponse struct {
	LatestDailyLesson  *Collection    `json:"latest_daily_lesson"`
	LatestContentUnits []*ContentUnit `json:"latest_units"`
	Banner             *Banner        `json:"banner"`
}

type HttpError

type HttpError struct {
	Code int
	Err  error
	Type gin.ErrorType
}

func NewBadRequestError

func NewBadRequestError(err error) *HttpError

func NewHttpError

func NewHttpError(code int, err error, t gin.ErrorType) *HttpError

func NewInternalError

func NewInternalError(err error) *HttpError

func NewNotFoundError

func NewNotFoundError() *HttpError

func (HttpError) Abort

func (e HttpError) Abort(c *gin.Context)

func (HttpError) Error

func (e HttpError) Error() string

type IDsFilter

type IDsFilter struct {
	IDs []string `json:"ids" form:"id" binding:"omitempty"`
}

type ItemRequest

type ItemRequest struct {
	BaseRequest
	UID string
}

type ListRequest

type ListRequest struct {
	BaseRequest
	PageNumber int    `json:"page_no" form:"page_no" binding:"omitempty,min=1"`
	PageSize   int    `json:"page_size" form:"page_size" binding:"omitempty,min=1"`
	StartIndex int    `json:"start_index" form:"start_index" binding:"omitempty,min=1"`
	StopIndex  int    `json:"stop_index" form:"stop_index" binding:"omitempty,min=1"`
	OrderBy    string `json:"order_by" form:"order_by" binding:"omitempty"`
	GroupBy    string `json:"-"`
}

type ListResponse

type ListResponse struct {
	Total int64 `json:"total"`
}

type Publisher added in v0.6.5

type Publisher struct {
	UID         string      `json:"id"`
	Name        null.String `json:"name"`
	Description null.String `json:"description,omitempty"`
	ID          int64       `json:"-"`
}

type PublishersFilter added in v0.6.5

type PublishersFilter struct {
	Publishers []string `json:"publishers" form:"publisher" binding:"omitempty,dive,len=8"`
}

type PublishersRequest added in v0.6.5

type PublishersRequest struct {
	ListRequest
}

type PublishersResponse added in v0.6.5

type PublishersResponse struct {
	ListResponse
	Publishers []*Publisher `json:"publishers"`
}

func NewPublishersResponse added in v0.6.5

func NewPublishersResponse() *PublishersResponse

type SemiQuasiData added in v0.7.3

type SemiQuasiData struct {
	Authors    []*Author    `json:"sources"`
	Tags       []*Tag       `json:"tags"`
	Publishers []*Publisher `json:"publishers"`
}

type Source

type Source struct {
	UID         string      `json:"id"`
	ParentUID   string      `json:"parent_id"`
	Type        string      `json:"type"`
	Name        null.String `json:"name"`
	Description null.String `json:"description,omitempty"`
	Children    []*Source   `json:"children,omitempty"`
	ID          int64       `json:"-"`
	ParentID    null.Int64  `json:"-"`
	Position    null.Int    `json:"-"`
}

type SourcesFilter

type SourcesFilter struct {
	Authors []string `json:"authors" form:"author" binding:"omitempty"`
	Sources []string `json:"sources" form:"source" binding:"omitempty,dive,len=8"`
}

type StatsCUClassResponse added in v0.8.7

type StatsCUClassResponse struct {
	Sources map[string]int64 `json:"sources"`
	Tags    map[string]int64 `json:"tags"`
	Persons map[string]int64 `json:"persons"`
}

func NewStatsCUClassResponse added in v0.8.7

func NewStatsCUClassResponse() *StatsCUClassResponse

type Tag

type Tag struct {
	UID       string      `json:"id"`
	ParentUID string      `json:"parent_id"`
	Label     null.String `json:"label"`
	Children  []*Tag      `json:"children,omitempty"`
	ID        int64       `json:"-"`
	ParentID  null.Int64  `json:"-"`
}

type TagsFilter

type TagsFilter struct {
	Tags []string `json:"tags" form:"tag" binding:"omitempty,dive,len=8"`
}

Jump to

Keyboard shortcuts

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