From 8c38107ff2872a6fbce7a4fa0635ce813f422af9 Mon Sep 17 00:00:00 2001 From: nquidox Date: Mon, 23 Feb 2026 20:02:17 +0300 Subject: [PATCH] initial --- internal/merch/controller.go | 34 ++++++++++++++++++++++++++++++++++ internal/merch/handler.go | 25 +++++++++++++++++++++++++ internal/merch/model.go | 1 + internal/merch/repository.go | 15 +++++++++++++++ internal/merch/service.go | 11 +++++++++++ 5 files changed, 86 insertions(+) create mode 100644 internal/merch/controller.go create mode 100644 internal/merch/handler.go create mode 100644 internal/merch/model.go create mode 100644 internal/merch/repository.go create mode 100644 internal/merch/service.go diff --git a/internal/merch/controller.go b/internal/merch/controller.go new file mode 100644 index 0000000..4a8c1fc --- /dev/null +++ b/internal/merch/controller.go @@ -0,0 +1,34 @@ +package merch + +import "github.com/gin-gonic/gin" + +type controller struct { + service *service +} + +func newController(s *service) *controller { + return &controller{ + service: s, + } +} + +func (h *Handler) RegisterRoutes(r *gin.RouterGroup) { + merchGroup := r.Group("/merch") + + merchGroup.POST("/create", h.controller.create) + merchGroup.GET("/:id", h.controller.getOne) + merchGroup.GET("/list", h.controller.getMany) + merchGroup.PUT("/update", h.controller.update) + merchGroup.DELETE("/delete", h.controller.delete) + +} + +func (co *controller) create(c *gin.Context) {} + +func (co *controller) getOne(c *gin.Context) {} + +func (co *controller) getMany(c *gin.Context) {} + +func (co *controller) update(c *gin.Context) {} + +func (co *controller) delete(c *gin.Context) {} diff --git a/internal/merch/handler.go b/internal/merch/handler.go new file mode 100644 index 0000000..8f0c462 --- /dev/null +++ b/internal/merch/handler.go @@ -0,0 +1,25 @@ +package merch + +import ( + "database/sql" + "github.com/gin-gonic/gin" +) + +type Handler struct { + controller *controller +} + +type Deps struct { + DB *sql.DB + Group *gin.RouterGroup +} + +func New(db *sql.DB) *Handler { + r := newRepo(db) + s := newService(r) + c := newController(s) + + return &Handler{ + controller: c, + } +} diff --git a/internal/merch/model.go b/internal/merch/model.go new file mode 100644 index 0000000..3344354 --- /dev/null +++ b/internal/merch/model.go @@ -0,0 +1 @@ +package merch diff --git a/internal/merch/repository.go b/internal/merch/repository.go new file mode 100644 index 0000000..0562192 --- /dev/null +++ b/internal/merch/repository.go @@ -0,0 +1,15 @@ +package merch + +import "database/sql" + +type Repository interface{} + +type repo struct { + db *sql.DB +} + +func newRepo(db *sql.DB) Repository { + return repo{ + db: db, + } +} diff --git a/internal/merch/service.go b/internal/merch/service.go new file mode 100644 index 0000000..921348d --- /dev/null +++ b/internal/merch/service.go @@ -0,0 +1,11 @@ +package merch + +type service struct { + repo Repository +} + +func newService(repo Repository) *service { + return &service{ + repo: repo, + } +}