diff --git a/api/user/handle.go b/api/user/handle.go new file mode 100644 index 0000000..8d3a55d --- /dev/null +++ b/api/user/handle.go @@ -0,0 +1,33 @@ +package api_user + +import ( + "git.oblat.lv/alex/triggerssmith/internal/config" + "git.oblat.lv/alex/triggerssmith/internal/user" + "github.com/go-chi/chi/v5" +) + +type userHandler struct { + cfg *config.Config + a *user.Service +} + +func MustRoute(config *config.Config, userService *user.Service) func(chi.Router) { + if config == nil { + panic("config is nil") + } + if userService == nil { + panic("userService is nil") + } + h := &userHandler{ + cfg: config, + a: userService, + } + + return func(r chi.Router) { + r.Get("/", h.getUsers) // /users + r.Get("/{userId}", h.GetUser) // /users/{userId} + r.Post("/", h.CreateUser) // /users + r.Patch("/{userId}", h.updateUser) // /users/{userId} + r.Delete("/{userId}", h.deleteUser) // /users/{userId} + } +}