package sparkles import ( "net/http" "github.com/xlgmokha/x/pkg/serde" "gitlab.com/mokhax/sparkled/pkg/db" "gitlab.com/mokhax/sparkled/pkg/domain" ) type Controller struct { db db.Repository } func New(db db.Repository) *Controller { return &Controller{db: db} } func (c *Controller) MountTo(mux *http.ServeMux) { mux.HandleFunc("GET /sparkles", c.Index) mux.HandleFunc("POST /sparkles", c.Create) } func (c *Controller) Index(w http.ResponseWriter, r *http.Request) { serde.ToHTTP(w, r, c.db.All()) } func (c *Controller) Create(w http.ResponseWriter, r *http.Request) { sparkle, _ := serde.FromHTTP[*domain.Sparkle](r) c.db.Save(sparkle) w.WriteHeader(http.StatusCreated) }