1
0
Fork 0
forked from 0x2E/fusion
fusion/api/feed.go
2024-03-06 16:54:13 +08:00

109 lines
1.8 KiB
Go

package api
import (
"net/http"
"github.com/0x2e/fusion/server"
"github.com/labstack/echo/v4"
)
type feedAPI struct {
srv *server.Feed
}
func newFeedAPI(srv *server.Feed) *feedAPI {
return &feedAPI{
srv: srv,
}
}
func (f feedAPI) All(c echo.Context) error {
resp, err := f.srv.All()
if err != nil {
return err
}
return c.JSON(http.StatusOK, resp)
}
func (f feedAPI) Get(c echo.Context) error {
var req server.ReqFeedGet
if err := bindAndValidate(&req, c); err != nil {
return err
}
resp, err := f.srv.Get(&req)
if err != nil {
return err
}
return c.JSON(http.StatusOK, resp)
}
func (f feedAPI) Create(c echo.Context) error {
var req server.ReqFeedCreate
if err := bindAndValidate(&req, c); err != nil {
return err
}
if err := f.srv.Create(&req); err != nil {
return err
}
return c.NoContent(http.StatusCreated)
}
func (f feedAPI) CheckValidity(c echo.Context) error {
var req server.ReqFeedCheckValidity
if err := bindAndValidate(&req, c); err != nil {
return err
}
resp, err := f.srv.CheckValidity(&req)
if err != nil {
return err
}
return c.JSON(http.StatusCreated, resp)
}
func (f feedAPI) Update(c echo.Context) error {
var req server.ReqFeedUpdate
if err := bindAndValidate(&req, c); err != nil {
return err
}
err := f.srv.Update(&req)
if err != nil {
return err
}
return c.NoContent(http.StatusNoContent)
}
func (f feedAPI) Delete(c echo.Context) error {
var req server.ReqFeedDelete
if err := bindAndValidate(&req, c); err != nil {
return err
}
if err := f.srv.Delete(&req); err != nil {
return err
}
return c.NoContent(http.StatusNoContent)
}
func (f feedAPI) Refresh(c echo.Context) error {
var req server.ReqFeedRefresh
if err := bindAndValidate(&req, c); err != nil {
return err
}
if err := f.srv.Refresh(&req); err != nil {
return err
}
return c.NoContent(http.StatusNoContent)
}