article

package
v0.0.0-...-fa70ca7 Latest Latest
Warning

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

Go to latest
Published: May 5, 2019 License: MIT Imports: 12 Imported by: 0

Documentation

Index

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 Article

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

func (*Article) CreatedAt

func (a *Article) CreatedAt() time.Time

func (*Article) ID

func (a *Article) ID() string

func (*Article) PubDate

func (a *Article) PubDate() time.Time

func (*Article) SiteID

func (a *Article) SiteID() string

func (*Article) Title

func (a *Article) Title() string

func (*Article) URL

func (a *Article) URL() string

func (*Article) UpdatedAt

func (a *Article) UpdatedAt() time.Time

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

func (*CreateArticleForm) Validate

func (c *CreateArticleForm) Validate(r *http.Request) (string, error)

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

func (*GetArticleForm) Validate

func (g *GetArticleForm) Validate(r *http.Request) (string, error)

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/"`
}

Jump to

Keyboard shortcuts

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