handler

package
v0.0.0-...-cfe2f6a Latest Latest
Warning

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

Go to latest
Published: Jun 28, 2020 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Handler

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

func NewHandler

func NewHandler(us user.Store, as article.Store, ms media.Store) *Handler

func (*Handler) AddArticleComment

func (h *Handler) AddArticleComment(c echo.Context) error

AddArticleComment godoc @Summary Create a comment for an article @Description Create a comment for an article. Auth is required @ID add-comment @ArticleTags comment @Accept json @Produce json @Param slug path string true "Slug of the article that you want to create a comment for" @Param comment body createCommentRequest true "Comment you want to create" @Success 201 {object} singleCommentResponse @Failure 400 {object} utils.Error @Failure 401 {object} utils.Error @Failure 422 {object} utils.Error @Failure 404 {object} utils.Error @Failure 500 {object} utils.Error @Security ApiKeyAuth @Router /articles/{slug}/comments [post]

func (*Handler) AddMediaComment

func (h *Handler) AddMediaComment(c echo.Context) error

AddArticleComment godoc @Summary Create a comment for an media @Description Create a comment for an media. Auth is required @ID add-comment @ArticleTags comment @Accept json @Produce json @Param slug path string true "Slug of the media that you want to create a comment for" @Param comment body createCommentRequest true "Comment you want to create" @Success 201 {object} singleCommentResponse @Failure 400 {object} utils.Error @Failure 401 {object} utils.Error @Failure 422 {object} utils.Error @Failure 404 {object} utils.Error @Failure 500 {object} utils.Error @Security ApiKeyAuth @Router /medias/{slug}/comments [post]

func (*Handler) ArticleFavorite

func (h *Handler) ArticleFavorite(c echo.Context) error

ArticleFavorite godoc @Summary ArticleFavorite an article @Description ArticleFavorite an article. Auth is required @ID favorite @ArticleTags favorite @Accept json @Produce json @Param slug path string true "Slug of the article that you want to favorite" @Success 200 {object} singleArticleResponse @Failure 400 {object} utils.Error @Failure 401 {object} utils.Error @Failure 422 {object} utils.Error @Failure 404 {object} utils.Error @Failure 500 {object} utils.Error @Security ApiKeyAuth @Router /articles/{slug}/favorite [post]

func (*Handler) ArticleFeed

func (h *Handler) ArticleFeed(c echo.Context) error

ArticleFeed godoc @Summary Get recent articles from users you follow @Description Get most recent articles from users you follow. Use query parameters to limit. Auth is required @ID feed @ArticleTags article @Accept json @Produce json @Param limit query integer false "Limit number of articles returned (default is 20)" @Param offset query integer false "Offset/skip number of articles (default is 0)" @Success 200 {object} articleListResponse @Failure 401 {object} utils.Error @Failure 500 {object} utils.Error @Security ApiKeyAuth @Router /articles/feed [get]

func (*Handler) ArticleTags

func (h *Handler) ArticleTags(c echo.Context) error

ArticleTags godoc @Summary Get tags @Description Get tags @ID tags @ArticleTags tag @Accept json @Produce json @Success 201 {object} tagListResponse @Failure 400 {object} utils.Error @Failure 422 {object} utils.Error @Failure 404 {object} utils.Error @Failure 500 {object} utils.Error @Security ApiKeyAuth @Router /tags [get]

func (*Handler) ArticleUnfavorite

func (h *Handler) ArticleUnfavorite(c echo.Context) error

ArticleUnfavorite godoc @Summary ArticleUnfavorite an article @Description ArticleUnfavorite an article. Auth is required @ID unfavorite @ArticleTags favorite @Accept json @Produce json @Param slug path string true "Slug of the article that you want to unfavorite" @Success 200 {object} singleArticleResponse @Failure 400 {object} utils.Error @Failure 401 {object} utils.Error @Failure 422 {object} utils.Error @Failure 404 {object} utils.Error @Failure 500 {object} utils.Error @Security ApiKeyAuth @Router /articles/{slug}/favorite [delete]

func (*Handler) Articles

func (h *Handler) Articles(c echo.Context) error

Articles godoc @Summary Get recent articles globally @Description Get most recent articles globally. Use query parameters to filter results. Auth is optional @ID get-articles @ArticleTags article @Accept json @Produce json @Param tag query string false "Filter by tag" @Param author query string false "Filter by author (username)" @Param favorited query string false "Filter by favorites of a user (username)" @Param limit query integer false "Limit number of articles returned (default is 20)" @Param offset query integer false "Offset/skip number of articles (default is 0)" @Success 200 {object} articleListResponse @Failure 500 {object} utils.Error @Router /articles [get]

func (*Handler) CreateArticle

func (h *Handler) CreateArticle(c echo.Context) error

CreateArticle godoc @Summary Create an article @Description Create an article. Auth is require @ID create-article @ArticleTags article @Accept json @Produce json @Param article body articleCreateRequest true "Article to create" @Success 201 {object} singleArticleResponse @Failure 401 {object} utils.Error @Failure 422 {object} utils.Error @Failure 500 {object} utils.Error @Security ApiKeyAuth @Router /articles [post]

func (*Handler) CreateMedia

func (h *Handler) CreateMedia(c echo.Context) error

CreateMedia godoc @Summary Create an media @Description Create an media. Auth is require @ID create-media @ArticleTags media @Accept json @Produce json @Param media body mediaCreateRequest true "Media to create" @Success 201 {object} singleMediaResponse @Failure 401 {object} utils.Error @Failure 422 {object} utils.Error @Failure 500 {object} utils.Error @Security ApiKeyAuth @Router /medias [post]

func (*Handler) CurrentUser

func (h *Handler) CurrentUser(c echo.Context) error

CurrentUser godoc @Summary Get the current user @Description Gets the currently logged-in user @ID current-user @ArticleTags user @Accept json @Produce json @Success 200 {object} userResponse @Failure 400 {object} utils.Error @Failure 401 {object} utils.Error @Failure 422 {object} utils.Error @Failure 404 {object} utils.Error @Failure 500 {object} utils.Error @Security ApiKeyAuth @Router /user [get]

func (*Handler) DeleteArticle

func (h *Handler) DeleteArticle(c echo.Context) error

DeleteArticle godoc @Summary Delete an article @Description Delete an article. Auth is required @ID delete-article @ArticleTags article @Accept json @Produce json @Param slug path string true "Slug of the article to delete" @Success 200 {object} map[string]interface{} @Failure 401 {object} utils.Error @Failure 404 {object} utils.Error @Failure 500 {object} utils.Error @Security ApiKeyAuth @Router /articles/{slug} [delete]

func (*Handler) DeleteArticleComment

func (h *Handler) DeleteArticleComment(c echo.Context) error

DeleteArticleComment godoc @Summary Delete a comment for an article @Description Delete a comment for an article. Auth is required @ID delete-comments @ArticleTags comment @Accept json @Produce json @Param slug path string true "Slug of the article that you want to delete a comment for" @Param id path integer true "ID of the comment you want to delete" @Success 200 {object} map[string]interface{} @Failure 400 {object} utils.Error @Failure 401 {object} utils.Error @Failure 422 {object} utils.Error @Failure 404 {object} utils.Error @Failure 500 {object} utils.Error @Security ApiKeyAuth @Router /articles/{slug}/comments/{id} [delete]

func (*Handler) DeleteMedia

func (h *Handler) DeleteMedia(c echo.Context) error

DeleteMedia godoc @Summary Delete an media @Description Delete an media. Auth is required @ID delete-media @ArticleTags media @Accept json @Produce json @Param slug path string true "Slug of the media to delete" @Success 200 {object} map[string]interface{} @Failure 401 {object} utils.Error @Failure 404 {object} utils.Error @Failure 500 {object} utils.Error @Security ApiKeyAuth @Router /medias/{slug} [delete]

func (*Handler) DeleteMediaComment

func (h *Handler) DeleteMediaComment(c echo.Context) error

DeleteArticleComment godoc @Summary Delete a comment for an media @Description Delete a comment for an media. Auth is required @ID delete-comments @ArticleTags comment @Accept json @Produce json @Param slug path string true "Slug of the media that you want to delete a comment for" @Param id path integer true "ID of the comment you want to delete" @Success 200 {object} map[string]interface{} @Failure 400 {object} utils.Error @Failure 401 {object} utils.Error @Failure 422 {object} utils.Error @Failure 404 {object} utils.Error @Failure 500 {object} utils.Error @Security ApiKeyAuth @Router /medias/{slug}/comments/{id} [delete]

func (*Handler) DeleteUser

func (h *Handler) DeleteUser(c echo.Context) error

DeleteUser godoc @Summary Delete current user @Description Delete user information for current user @ID delete-user @ArticleTags user @Accept json @Produce json @Param user body userDeleteRequest true "User details to update. At least **one** field is required." @Success 200 {object} userResponse @Failure 400 {object} utils.Error @Failure 401 {object} utils.Error @Failure 422 {object} utils.Error @Failure 404 {object} utils.Error @Failure 500 {object} utils.Error @Security ApiKeyAuth @Router /user [put]

func (*Handler) Follow

func (h *Handler) Follow(c echo.Context) error

Follow godoc @Summary Follow a user @Description Follow a user by username @ID follow @ArticleTags follow @Accept json @Produce json @Param username path string true "Username of the profile you want to follow" @Success 200 {object} profileResponse @Failure 400 {object} utils.Error @Failure 401 {object} utils.Error @Failure 422 {object} utils.Error @Failure 404 {object} utils.Error @Failure 500 {object} utils.Error @Security ApiKeyAuth @Router /users/{username}/follow [post]

func (*Handler) GetArticle

func (h *Handler) GetArticle(c echo.Context) error

GetArticle godoc @Summary Get an article @Description Get an article. Auth not required @ID get-article @ArticleTags article @Accept json @Produce json @Param slug path string true "Slug of the article to get" @Success 200 {object} singleArticleResponse @Failure 400 {object} utils.Error @Failure 500 {object} utils.Error @Router /articles/{slug} [get]

func (*Handler) GetArticleComments

func (h *Handler) GetArticleComments(c echo.Context) error

GetArticleComments godoc @Summary Get the comments for an article @Description Get the comments for an article. Auth is optional @ID get-comments @ArticleTags comment @Accept json @Produce json @Param slug path string true "Slug of the article that you want to get comments for" @Success 200 {object} commentListResponse @Failure 422 {object} utils.Error @Failure 500 {object} utils.Error @Router /articles/{slug}/comments [get]

func (*Handler) GetMedia

func (h *Handler) GetMedia(c echo.Context) error

GetMedia godoc @Summary Get an media @Description Get an media. Auth not required @ID get-media @ArticleTags media @Accept json @Produce json @Param slug path string true "Slug of the media to get" @Success 200 {object} singleMediaResponse @Failure 400 {object} utils.Error @Failure 500 {object} utils.Error @Router /medias/{slug} [get]

func (*Handler) GetMediaComments

func (h *Handler) GetMediaComments(c echo.Context) error

GetArticleComments godoc @Summary Get the comments for an media @Description Get the comments for an media. Auth is optional @ID get-comments @ArticleTags comment @Accept json @Produce json @Param slug path string true "Slug of the media that you want to get comments for" @Success 200 {object} commentListResponse @Failure 422 {object} utils.Error @Failure 500 {object} utils.Error @Router /medias/{slug}/comments [get]

func (*Handler) GetProfile

func (h *Handler) GetProfile(c echo.Context) error

GetProfile godoc @Summary Get a profile @Description Get a profile of a user of the system. Auth is optional @ID get-profile @ArticleTags profile @Accept json @Produce json @Param username path string true "Username of the profile to get" @Success 200 {object} userResponse @Failure 400 {object} utils.Error @Failure 401 {object} utils.Error @Failure 422 {object} utils.Error @Failure 404 {object} utils.Error @Failure 500 {object} utils.Error @Security ApiKeyAuth @Router /users/{username} [get]

func (*Handler) Login

func (h *Handler) Login(c echo.Context) error

Login godoc @Summary Login for existing user @Description Login for existing user @ID login @ArticleTags user @Accept json @Produce json @Param user body userLoginRequest true "Credentials to use" @Success 200 {object} userResponse @Failure 400 {object} utils.Error @Failure 401 {object} utils.Error @Failure 422 {object} utils.Error @Failure 404 {object} utils.Error @Failure 500 {object} utils.Error @Router /users/login [post]

func (*Handler) MediaFavorite

func (h *Handler) MediaFavorite(c echo.Context) error

ArticleFavorite godoc @Summary ArticleFavorite an media @Description ArticleFavorite an media. Auth is required @ID favorite @ArticleTags favorite @Accept json @Produce json @Param slug path string true "Slug of the media that you want to favorite" @Success 200 {object} singleMediaResponse @Failure 400 {object} utils.Error @Failure 401 {object} utils.Error @Failure 422 {object} utils.Error @Failure 404 {object} utils.Error @Failure 500 {object} utils.Error @Security ApiKeyAuth @Router /medias/{slug}/favorite [post]

func (*Handler) MediaFeed

func (h *Handler) MediaFeed(c echo.Context) error

ArticleFeed godoc @Summary Get recent medias from users you follow @Description Get most recent medias from users you follow. Use query parameters to limit. Auth is required @ID feed @ArticleTags media @Accept json @Produce json @Param limit query integer false "Limit number of medias returned (default is 20)" @Param offset query integer false "Offset/skip number of medias (default is 0)" @Success 200 {object} mediaListResponse @Failure 401 {object} utils.Error @Failure 500 {object} utils.Error @Security ApiKeyAuth @Router /medias/feed [get]

func (*Handler) MediaTags

func (h *Handler) MediaTags(c echo.Context) error

ArticleTags godoc @Summary Get tags @Description Get tags @ID tags @ArticleTags tag @Accept json @Produce json @Success 201 {object} tagListResponse @Failure 400 {object} utils.Error @Failure 422 {object} utils.Error @Failure 404 {object} utils.Error @Failure 500 {object} utils.Error @Security ApiKeyAuth @Router /tags [get]

func (*Handler) MediaUnfavorite

func (h *Handler) MediaUnfavorite(c echo.Context) error

ArticleUnfavorite godoc @Summary ArticleUnfavorite an media @Description ArticleUnfavorite an media. Auth is required @ID unfavorite @ArticleTags favorite @Accept json @Produce json @Param slug path string true "Slug of the media that you want to unfavorite" @Success 200 {object} singleMediaResponse @Failure 400 {object} utils.Error @Failure 401 {object} utils.Error @Failure 422 {object} utils.Error @Failure 404 {object} utils.Error @Failure 500 {object} utils.Error @Security ApiKeyAuth @Router /medias/{slug}/favorite [delete]

func (*Handler) Medias

func (h *Handler) Medias(c echo.Context) error

Medias godoc @Summary Get recent medias globally @Description Get most recent medias globally. Use query parameters to filter results. Auth is optional @ID get-medias @ArticleTags media @Accept json @Produce json @Param tag query string false "Filter by tag" @Param author query string false "Filter by author (username)" @Param favorited query string false "Filter by favorites of a user (username)" @Param limit query integer false "Limit number of medias returned (default is 20)" @Param offset query integer false "Offset/skip number of medias (default is 0)" @Success 200 {object} mediaListResponse @Failure 500 {object} utils.Error @Router /medias [get]

func (*Handler) Register

func (h *Handler) Register(v1 *echo.Group)

func (*Handler) SignUp

func (h *Handler) SignUp(c echo.Context) error

SignUp godoc @Summary Register a new user @Description Register a new user @ID sign-up @ArticleTags user @Accept json @Produce json @Param user body userRegisterRequest true "User info for registration" @Success 201 {object} userResponse @Failure 400 {object} utils.Error @Failure 404 {object} utils.Error @Failure 500 {object} utils.Error @Router /users [post]

func (*Handler) Unfollow

func (h *Handler) Unfollow(c echo.Context) error

Unfollow godoc @Summary Unfollow a user @Description Unfollow a user by username @ID unfollow @ArticleTags follow @Accept json @Produce json @Param username path string true "Username of the profile you want to unfollow" @Success 201 {object} userResponse @Failure 400 {object} utils.Error @Failure 401 {object} utils.Error @Failure 422 {object} utils.Error @Failure 404 {object} utils.Error @Failure 500 {object} utils.Error @Security ApiKeyAuth @Router /users/{username}/follow [delete]

func (*Handler) UpdateArticle

func (h *Handler) UpdateArticle(c echo.Context) error

UpdateArticle godoc @Summary Update an article @Description Update an article. Auth is required @ID update-article @ArticleTags article @Accept json @Produce json @Param slug path string true "Slug of the article to update" @Param article body articleUpdateRequest true "Article to update" @Success 200 {object} singleArticleResponse @Failure 400 {object} utils.Error @Failure 401 {object} utils.Error @Failure 422 {object} utils.Error @Failure 404 {object} utils.Error @Failure 500 {object} utils.Error @Security ApiKeyAuth @Router /articles/{slug} [put]

func (*Handler) UpdateMedia

func (h *Handler) UpdateMedia(c echo.Context) error

UpdateMedia godoc @Summary Update an media @Description Update an media. Auth is required @ID update-media @ArticleTags media @Accept json @Produce json @Param slug path string true "Slug of the media to update" @Param media body mediaUpdateRequest true "Media to update" @Success 200 {object} singleMediaResponse @Failure 400 {object} utils.Error @Failure 401 {object} utils.Error @Failure 422 {object} utils.Error @Failure 404 {object} utils.Error @Failure 500 {object} utils.Error @Security ApiKeyAuth @Router /medias/{slug} [put]

func (*Handler) UpdateUser

func (h *Handler) UpdateUser(c echo.Context) error

UpdateUser godoc @Summary Update current user @Description Update user information for current user @ID update-user @ArticleTags user @Accept json @Produce json @Param user body userUpdateRequest true "User details to update. At least **one** field is required." @Success 200 {object} userResponse @Failure 400 {object} utils.Error @Failure 401 {object} utils.Error @Failure 422 {object} utils.Error @Failure 404 {object} utils.Error @Failure 500 {object} utils.Error @Security ApiKeyAuth @Router /user [put]

func (*Handler) UsersList

func (h *Handler) UsersList(c echo.Context) error

ArticleFeed godoc @Summary Get recent articles from users you follow @Description Get most recent articles from users you follow. Use query parameters to limit. Auth is required @ID feed @ArticleTags article @Accept json @Produce json @Param limit query integer false "Limit number of articles returned (default is 20)" @Param offset query integer false "Offset/skip number of articles (default is 0)" @Success 200 {object} articleListResponse @Failure 401 {object} utils.Error @Failure 500 {object} utils.Error @Security ApiKeyAuth @Router /articles/feed [get]

Jump to

Keyboard shortcuts

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