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 }