/ api / v1 / feeds / feeds.go
feeds.go
 1  package feeds
 2  
 3  import (
 4  	"github.com/gofiber/fiber/v2"
 5  	"github.com/mrusme/journalist/ent"
 6  	"github.com/mrusme/journalist/lib"
 7  	"go.uber.org/zap"
 8  )
 9  
10  type handler struct {
11  	jctx *lib.JournalistContext
12  
13  	config    *lib.Config
14  	entClient *ent.Client
15  	logger    *zap.Logger
16  }
17  
18  type FeedShowModel struct {
19  	ID    string `json:"id"`
20  	Name  string `json:"name,omitempty" validate:"omitempty,max=32"`
21  	URL   string `json:"url"`
22  	Group string `json:"group,omitempty" validate:"omitempty,max=32"`
23  }
24  
25  type FeedCreateModel struct {
26  	Name     string `json:"name,omitempty" validate:"omitempty,max=32"`
27  	URL      string `json:"url" validate:"required,url"`
28  	Username string `json:"username,omitempty" validate:"omitempty,required_with=password"`
29  	Password string `json:"password,omitempty" validate:"omitempty,required_with=username"`
30  	Group    string `json:"group,omitempty" validate:"omitempty,max=32"`
31  }
32  
33  /* type FeedUpdateModel struct {
34    Password          string        `json:"password,omitempty" validate:"omitempty,min=5"`
35  } */
36  
37  func Register(
38  	jctx *lib.JournalistContext,
39  	fiberRouter *fiber.Router,
40  ) {
41  	endpoint := new(handler)
42  	endpoint.jctx = jctx
43  	endpoint.config = endpoint.jctx.Config
44  	endpoint.entClient = endpoint.jctx.EntClient
45  	endpoint.logger = endpoint.jctx.Logger
46  
47  	feedsRouter := (*fiberRouter).Group("/feeds")
48  	feedsRouter.Get("/", endpoint.List)
49  	feedsRouter.Get("/:id", endpoint.Show)
50  	feedsRouter.Post("/", endpoint.Create)
51  	// feedsRouter.Put("/:id", endpoint.Update)
52  	// feedsRouter.Delete("/:id", endpoint.Destroy)
53  }