Documentation
¶
Index ¶
- type Api
- type Controller
- type CreateFeedsRequest
- type CreateFeedsResource
- type CreateFeedsResponse
- type CreateFeedsResultResource
- type CreateItemResultResource
- type CreateItemsRequest
- type CreateItemsResource
- type CreateItemsResponse
- type ErrorResponse
- type FeedResource
- type GetFeedsRequest
- type GetFeedsResponse
- type GetItemsRequest
- type GetItemsResponse
- type Handler
- type IdService
- type ItemFileResource
- type ItemResource
- type UploadFileResultResource
- type UploadFilesResponse
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Controller ¶
type Controller interface { GetFeeds(ctx context.Context, req *GetFeedsRequest, usr user.User) (*GetFeedsResponse, error) CreateFeeds(ctx context.Context, req *CreateFeedsRequest, usr user.User) (*CreateFeedsResponse, error) GetItems(ctx context.Context, req *GetItemsRequest, usr user.User) (*GetItemsResponse, error) CreateItems(ctx context.Context, req *CreateItemsRequest, usr user.User) (*CreateItemsResponse, error) UploadFiles(ctx context.Context, fs []multipart.File, usr user.User) (*UploadFilesResponse, error) GetRssUrl(ctx context.Context, feedId string) (string, error) }
func NewController ¶
func NewController(store store.Store, fileStorage files.Storage, idService IdService, feedController rss.Controller) Controller
type CreateFeedsRequest ¶
type CreateFeedsRequest struct { Data []*CreateFeedsResource `json:"data"` } // @name CreateFeedsRequest
func (*CreateFeedsRequest) Validate ¶
func (r *CreateFeedsRequest) Validate() error
type CreateFeedsResource ¶
type CreateFeedsResource struct { Title string `json:"title" example:"Bored Owls Online Radio" extensions:"x-order=0"` Link string `json:"link" example:"https://example.com" extensions:"x-order=1"` Authors string `json:"authors" example:"The Owl" extensions:"x-order=2"` Description string `json:"description" example:"Bored owls talk about whatever happens to be on their minds" extensions:"x-order=3"` } // @name CreateFeedsResource
func (*CreateFeedsResource) Validate ¶
func (r *CreateFeedsResource) Validate() error
type CreateFeedsResponse ¶
type CreateFeedsResponse struct { Data []*CreateFeedsResultResource `json:"data"` } // @name CreateFeedsResponse
type CreateFeedsResultResource ¶
type CreateFeedsResultResource struct { Id string `json:"id" example:"feed_2K9BWVNuo3sG4yM322fbP3mB6ls" extensions:"x-order=0"` } // @name CreateFeedsResultResource
type CreateItemResultResource ¶
type CreateItemResultResource struct { Id string `json:"id" example:"item_2K9BWVNuo3sG4yM322fbP3mB6ls" extensions:"x-order=0"` } // @name CreateItemResultResource
type CreateItemsRequest ¶
type CreateItemsRequest struct { Data []*CreateItemsResource `json:"data"` } // @name CreateItemsRequest
func (*CreateItemsRequest) Validate ¶
func (r *CreateItemsRequest) Validate() error
type CreateItemsResource ¶
type CreateItemsResource struct { FileId string `json:"file_id" example:"file_2K9BWVNuo3sG4yM322fbP3mB6ls" extensions:"x-order=0"` FeedId string `json:"feed_id" example:"feed_2K9BWVNuo3sG4yM322fbP3mB6ls" extensions:"x-order=1"` Title string `json:"title" example:"Bored Owls Online Radio" extensions:"x-order=2"` Link string `json:"link" example:"https://example.com" extensions:"x-order=3"` Authors string `json:"authors" example:"The Owl" extensions:"x-order=4"` Description string `json:"description" example:"Bored owls talk about whatever happens to be on their minds" extensions:"x-order=5"` PublishedAt ytime.Time `json:"published_at" swaggertype:"string" format:"date-time" example:"2023-01-01T01:02:03.456Z" extensions:"x-order=6"` } // @name CreateItemsResource
func (*CreateItemsResource) Validate ¶
func (r *CreateItemsResource) Validate() error
type CreateItemsResponse ¶
type CreateItemsResponse struct { Data []*CreateItemResultResource `json:"data"` } // @name CreateItemsResponse
type ErrorResponse ¶
type FeedResource ¶
type FeedResource struct { Id string `json:"id" example:"feed_2K9BWVNuo3sG4yM322fbP3mB6ls" extensions:"x-order=0"` RssUrl string `json:"rss_url" example:"https://example.com/feed.rss" extensions:"x-order=1"` Title string `json:"title" example:"Bored Owls Online Radio" extensions:"x-order=2"` Link string `json:"link" example:"https://example.com" extensions:"x-order=3"` Authors string `json:"authors" example:"The Owl" extensions:"x-order=4"` Description string `json:"description" example:"Bored owls talk about whatever happens to be on their minds" extensions:"x-order=5"` CreatedAt ytime.Time `json:"created_at" swaggertype:"string" format:"date-time" example:"2023-01-01T01:02:03.456Z" extensions:"x-order=6"` UpdatedAt ytime.Time `json:"updated_at" swaggertype:"string" format:"date-time" example:"2023-01-01T01:02:03.456Z" extensions:"x-order=7"` } // @name FeedResource
type GetFeedsRequest ¶
type GetFeedsRequest struct { Ids []string `json:"ids" extensions:"x-order=0"` } // @name GetFeedsRequest
func (*GetFeedsRequest) Validate ¶
func (r *GetFeedsRequest) Validate() error
type GetFeedsResponse ¶
type GetFeedsResponse struct { Data []*FeedResource `json:"data"` } // @name GetFeedsResponse
type GetItemsRequest ¶
type GetItemsResponse ¶
type GetItemsResponse struct { Data []*ItemResource `json:"data"` } // @name GetItemsResponse
type Handler ¶
type Handler interface { GetFeeds(w http.ResponseWriter, r *http.Request) CreateFeeds(w http.ResponseWriter, r *http.Request) GetItems(w http.ResponseWriter, r *http.Request) CreateItems(w http.ResponseWriter, r *http.Request) UploadFiles(w http.ResponseWriter, r *http.Request) GetRssRedirect(w http.ResponseWriter, r *http.Request) }
func NewHandler ¶
func NewHandler(c Controller) Handler
type IdService ¶
type IdService interface { Feed(context.Context) string Item(context.Context) string File(context.Context) string Rss(context.Context) string }
func NewIdService ¶
func NewIdService() IdService
type ItemFileResource ¶
type ItemFileResource struct { Id string `json:"id,omitempty" example:"file_2K9BWVNuo3sG4yM322fbP3mB6ls" extensions:"x-order=0"` Url string `json:"url" example:"https://example.com/file.mp3" extensions:"x-order=1"` Size int64 `json:"size" example:"123456" extensions:"x-order=2"` ContentType string `json:"content_type" example:"audio/mpeg" extensions:"x-order=3"` } // @name ItemFileResource
type ItemResource ¶
type ItemResource struct { Id string `json:"id" example:"item_2K9BWVNuo3sG4yM322fbP3mB6ls" extensions:"x-order=0"` File *ItemFileResource `json:"file,omitempty" extensions:"x-order=1"` FeedId string `json:"feed_id" example:"feed_2K9BWVNuo3sG4yM322fbP3mB6ls" extensions:"x-order=2"` Title string `json:"title" example:"Bored Owls Online Radio" extensions:"x-order=3"` Link string `json:"link" example:"https://example.com" extensions:"x-order=4"` Authors string `json:"authors" example:"The Owl" extensions:"x-order=5"` Description string `json:"description" example:"Bored owls talk about whatever happens to be on their minds" extensions:"x-order=6"` CreatedAt ytime.Time `json:"created_at" swaggertype:"string" format:"date-time" example:"2023-01-01T01:02:03.456Z" extensions:"x-order=7"` UpdatedAt ytime.Time `json:"updated_at" swaggertype:"string" format:"date-time" example:"2023-01-01T01:02:03.456Z" extensions:"x-order=8"` PublishedAt ytime.Time `json:"published_at" swaggertype:"string" format:"date-time" example:"2023-01-01T01:02:03.456Z" extensions:"x-order=9"` } // @name ItemResource
type UploadFilesResponse ¶
type UploadFilesResponse struct { Data []*UploadFileResultResource `json:"data"` } // @name UploadFilesResponse
Click to show internal directories.
Click to hide internal directories.