Documentation
¶
Index ¶
- Constants
- type Article
- type ArticleHandler
- type ArticleModel
- type ArticleRepository
- type CreateArticleForm
- func (c *CreateArticleForm) FieldMap(r *http.Request) binding.FieldMap
- func (c *CreateArticleForm) PubDate() time.Time
- func (c *CreateArticleForm) SiteTitle() string
- func (c *CreateArticleForm) SiteURL() string
- func (c *CreateArticleForm) Title() string
- func (c *CreateArticleForm) URL() string
- func (c *CreateArticleForm) Validate(r *http.Request) (string, error)
- type GetArticleForm
- type Item
Constants ¶
View Source
const ( ErrSinceValidationFailed = "since should be a ISO 8601 format (YYYY-MM-DDTHH:MM:SSZ)" ErrUntilValidationFailed = "until should be a ISO 8601 format (YYYY-MM-DDTHH:MM:SSZ)" ErrLimitValidationFailed = "limit should be a number (min 1 and max 50)" ErrSortValidationFailed = "sort can be a one of asc or desc" )
View Source
const ( ErrTitleValidationFailed = "title should be a string" ErrURLValidationFailed = "url should be a url format (http://)" ErrPubDateValidationFailed = "pub_date should be a ISO 8601 format (YYYY-MM-DDTHH:MM:SSZ)" ErrSiteTitleValidationFailed = "site_title should be a string" ErrSiteURLValidationFailed = "site_url should be a url format (http://)" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ArticleHandler ¶
type ArticleHandler interface {
Get(w http.ResponseWriter, r *http.Request)
Create(w http.ResponseWriter, r *http.Request)
}
func NewArticleHandler ¶
func NewArticleHandler(m ArticleModel) ArticleHandler
type ArticleModel ¶
type ArticleModel interface {
Get(ctx context.Context, g *GetArticleForm) ([]*Item, error)
Create(ctx context.Context, r *http.Request, c *CreateArticleForm) error
}
func NewArticleModel ¶
func NewArticleModel(ar ArticleRepository, sr s.SiteRepository) ArticleModel
type ArticleRepository ¶
type ArticleRepository interface {
GetNewArticles(ctx context.Context, g *GetArticleForm) ([]*Item, error)
GetArticlesBySince(ctx context.Context, g *GetArticleForm) ([]*Item, error)
GetArticlesByUntil(ctx context.Context, g *GetArticleForm) ([]*Item, error)
GetArticlesBySinceAndUntil(ctx context.Context, g *GetArticleForm) ([]*Item, error)
Create(ctx context.Context, a *Article) error
}
func NewArticleRepository ¶
func NewArticleRepository(Conn *sql.DB) ArticleRepository
type CreateArticleForm ¶
type CreateArticleForm struct {
// contains filtered or unexported fields
}
func (*CreateArticleForm) FieldMap ¶
func (c *CreateArticleForm) FieldMap(r *http.Request) binding.FieldMap
func (*CreateArticleForm) PubDate ¶
func (c *CreateArticleForm) PubDate() time.Time
func (*CreateArticleForm) SiteTitle ¶
func (c *CreateArticleForm) SiteTitle() string
func (*CreateArticleForm) SiteURL ¶
func (c *CreateArticleForm) SiteURL() string
func (*CreateArticleForm) Title ¶
func (c *CreateArticleForm) Title() string
func (*CreateArticleForm) URL ¶
func (c *CreateArticleForm) URL() string
type GetArticleForm ¶
type GetArticleForm struct {
// contains filtered or unexported fields
}
func (*GetArticleForm) FieldMap ¶
func (g *GetArticleForm) FieldMap(r *http.Request) binding.FieldMap
func (*GetArticleForm) Limit ¶
func (g *GetArticleForm) Limit() int
func (*GetArticleForm) Since ¶
func (g *GetArticleForm) Since() time.Time
func (*GetArticleForm) Sort ¶
func (g *GetArticleForm) Sort() string
func (*GetArticleForm) Until ¶
func (g *GetArticleForm) Until() time.Time
type Item ¶
type Item struct {
ID string `json:"id" example:"faf9c3a7-b3ee-441f-baec-a5b668948381"`
Title string `json:"title" example:"AWS CDKでサーバーレスアプリケーションのデプロイを試す"`
URL string `json:"url" example:"https://blog.kentarom.com/learn-aws-cdk/"`
PubDate time.Time `json:"pub_date" example:"2019-01-19T14:13:01Z"`
SiteTitle string `json:"site_title" example:"AWS CDKでサーバーレスアプリケーションのデプロイを試す"`
SiteURL string `json:"site_url" example:"https://blog.kentarom.com/learn-aws-cdk/"`
}
Click to show internal directories.
Click to hide internal directories.