| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 0e56876 commit 20ae57e
17 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -3,6 +3,7 @@ package di | |||
| 3 | 3 | import ( | |
| 4 | 4 | "log" | |
| 5 | 5 | "os" | |
| 6 | + "strings" | ||
| 6 | 7 | ||
| 7 | 8 | "github.com/joho/godotenv" | |
| 8 | 9 | ) | |
@@ -23,3 +24,15 @@ func getEnvWithDefault(key, defaultValue string) string { | |||
| 23 | 24 | ||
| 24 | 25 | return value | |
| 25 | 26 | } | |
| 27 | + | ||
| 28 | + func splitCommaEnv(key, defaultValue string) []string { | ||
| 29 | + value := getEnvWithDefault(key, defaultValue) | ||
| 30 | + parts := strings.Split(value, ",") | ||
| 31 | + result := make([]string, 0, len(parts)) | ||
| 32 | + for _, part := range parts { | ||
| 33 | + if trimmed := strings.TrimSpace(part); trimmed != "" { | ||
| 34 | + result = append(result, trimmed) | ||
| 35 | + } | ||
| 36 | + } | ||
| 37 | + return result | ||
| 38 | + } | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -192,11 +192,11 @@ func (container *Container) App() (app *fiber.App) { | |||
| 192 | 192 | app.Use( | |
| 193 | 193 | cors.New( | |
| 194 | 194 | cors.Config{ | |
| 195 | - AllowOrigins: getEnvWithDefault("CORS_ALLOW_ORIGINS", "*"), | ||
| 196 | - AllowHeaders: getEnvWithDefault("CORS_ALLOW_HEADERS", "*"), | ||
| 197 | - AllowMethods: getEnvWithDefault("CORS_ALLOW_METHODS", "GET,POST,PUT,DELETE,OPTIONS"), | ||
| 195 | + AllowOrigins: splitCommaEnv("CORS_ALLOW_ORIGINS", "*"), | ||
| 196 | + AllowHeaders: splitCommaEnv("CORS_ALLOW_HEADERS", "*"), | ||
| 197 | + AllowMethods: splitCommaEnv("CORS_ALLOW_METHODS", "GET,POST,PUT,DELETE,OPTIONS"), | ||
| 198 | 198 | AllowCredentials: false, | |
| 199 | - ExposeHeaders: getEnvWithDefault("CORS_EXPOSE_HEADERS", "*"), | ||
| 199 | + ExposeHeaders: splitCommaEnv("CORS_EXPOSE_HEADERS", "*"), | ||
| 200 | 200 | }, | |
| 201 | 201 | ), | |
| 202 | 202 | ) | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -38,8 +38,8 @@ func NewBillingHandler( | |||
| 38 | 38 | ||
| 39 | 39 | // RegisterRoutes registers the routes for the MessageHandler | |
| 40 | 40 | func (h *BillingHandler) RegisterRoutes(router fiber.Router, middlewares ...fiber.Handler) { | |
| 41 | - router.Get("/v1/billing/usage-history", h.computeRoute(middlewares, h.UsageHistory)...) | ||
| 42 | - router.Get("/v1/billing/usage", h.computeRoute(middlewares, h.Usage)...) | ||
| 41 | + h.register(router, fiber.MethodGet, "/v1/billing/usage-history", middlewares, h.UsageHistory) | ||
| 42 | + h.register(router, fiber.MethodGet, "/v1/billing/usage", middlewares, h.Usage) | ||
| 43 | 43 | } | |
| 44 | 44 | ||
| 45 | 45 | // UsageHistory returns the usage history of a user | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -46,8 +46,8 @@ func NewBulkMessageHandler( | |||
| 46 | 46 | ||
| 47 | 47 | // RegisterRoutes registers the routes for the MessageHandler | |
| 48 | 48 | func (h *BulkMessageHandler) RegisterRoutes(router fiber.Router, middlewares ...fiber.Handler) { | |
| 49 | - router.Get("/v1/bulk-messages", h.computeRoute(middlewares, h.Index)...) | ||
| 50 | - router.Post("/v1/bulk-messages", h.computeRoute(middlewares, h.Store)...) | ||
| 49 | + h.register(router, fiber.MethodGet, "/v1/bulk-messages", middlewares, h.Index) | ||
| 50 | + h.register(router, fiber.MethodPost, "/v1/bulk-messages", middlewares, h.Store) | ||
| 51 | 51 | } | |
| 52 | 52 | ||
| 53 | 53 | // Index fetches the bulk message order history. | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -57,13 +57,13 @@ func NewDiscordHandler( | |||
| 57 | 57 | // RegisterRoutes registers the routes for the MessageHandler | |
| 58 | 58 | func (h *DiscordHandler) RegisterRoutes(app *fiber.App, authMiddleware fiber.Handler, middlewares ...fiber.Handler) { | |
| 59 | 59 | router := app.Group("discord") | |
| 60 | - router.Post("/event", h.computeRoute(middlewares, h.Event)...) | ||
| 60 | + h.register(router, fiber.MethodPost, "/event", middlewares, h.Event) | ||
| 61 | 61 | ||
| 62 | 62 | authRouter := app.Group("v1/discord-integrations") | |
| 63 | - authRouter.Post("/", h.computeRoute(append(middlewares, authMiddleware), h.Store)...) | ||
| 64 | - authRouter.Get("/", h.computeRoute(append(middlewares, authMiddleware), h.Index)...) | ||
| 65 | - authRouter.Delete("/:discordID", h.computeRoute(append(middlewares, authMiddleware), h.Delete)...) | ||
| 66 | - authRouter.Put("/:discordID", h.computeRoute(append(middlewares, authMiddleware), h.Update)...) | ||
| 63 | + h.register(authRouter, fiber.MethodPost, "/", append(middlewares, authMiddleware), h.Store) | ||
| 64 | + h.register(authRouter, fiber.MethodGet, "/", append(middlewares, authMiddleware), h.Index) | ||
| 65 | + h.register(authRouter, fiber.MethodDelete, "/:discordID", append(middlewares, authMiddleware), h.Delete) | ||
| 66 | + h.register(authRouter, fiber.MethodPut, "/:discordID", append(middlewares, authMiddleware), h.Update) | ||
| 67 | 67 | } | |
| 68 | 68 | ||
| 69 | 69 | // Index returns the discord integrations of a user | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -38,7 +38,7 @@ func NewEventsHandler( | |||
| 38 | 38 | ||
| 39 | 39 | // RegisterRoutes registers the routes for the MessageHandler | |
| 40 | 40 | func (h *EventsHandler) RegisterRoutes(router fiber.Router, middlewares ...fiber.Handler) { | |
| 41 | - router.Post("/v1/events", h.computeRoute(middlewares, h.Dispatch)...) | ||
| 41 | + h.register(router, fiber.MethodPost, "/v1/events", middlewares, h.Dispatch) | ||
| 42 | 42 | } | |
| 43 | 43 | ||
| 44 | 44 | // Dispatch a cloud event | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -123,8 +123,13 @@ func (h *handler) userIDFomContext(c fiber.Ctx) entities.UserID { | |||
| 123 | 123 | return h.userFromContext(c).ID | |
| 124 | 124 | } | |
| 125 | 125 | ||
| 126 | - func (h *handler) computeRoute(middlewares []fiber.Handler, route fiber.Handler) []fiber.Handler { | ||
| 127 | - return append(append([]fiber.Handler{}, middlewares...), route) | ||
| 126 | + func (h *handler) register(router fiber.Router, method, path string, middlewares []fiber.Handler, route fiber.Handler) { | ||
| 127 | + handlers := make([]any, 0, len(middlewares)+1) | ||
| 128 | + for _, middleware := range middlewares { | ||
| 129 | + handlers = append(handlers, middleware) | ||
| 130 | + } | ||
| 131 | + handlers = append(handlers, route) | ||
| 132 | + router.Add([]string{method}, path, handlers[0], handlers[1:]...) | ||
| 128 | 133 | } | |
| 129 | 134 | ||
| 130 | 135 | func (h *handler) mergeErrors(errors ...url.Values) url.Values { | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -41,12 +41,12 @@ func NewHeartbeatHandler( | |||
| 41 | 41 | ||
| 42 | 42 | // RegisterRoutes registers the routes for the HeartbeatHandler | |
| 43 | 43 | func (h *HeartbeatHandler) RegisterRoutes(router fiber.Router, middlewares ...fiber.Handler) { | |
| 44 | - router.Get("/v1/heartbeats", h.computeRoute(middlewares, h.Index)...) | ||
| 44 | + h.register(router, fiber.MethodGet, "/v1/heartbeats", middlewares, h.Index) | ||
| 45 | 45 | } | |
| 46 | 46 | ||
| 47 | 47 | // RegisterPhoneAPIKeyRoutes registers the routes for the HeartbeatHandler | |
| 48 | 48 | func (h *HeartbeatHandler) RegisterPhoneAPIKeyRoutes(router fiber.Router, middlewares ...fiber.Handler) { | |
| 49 | - router.Post("/v1/heartbeats", h.computeRoute(middlewares, h.Store)...) | ||
| 49 | + h.register(router, fiber.MethodPost, "/v1/heartbeats", middlewares, h.Store) | ||
| 50 | 50 | } | |
| 51 | 51 | ||
| 52 | 52 | // Index returns the heartbeats of a phone number | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -39,7 +39,7 @@ func NewIntegration3CxHandler( | |||
| 39 | 39 | // RegisterRoutes registers the routes for the MessageHandler | |
| 40 | 40 | func (h *Integration3CXHandler) RegisterRoutes(app *fiber.App, middlewares ...fiber.Handler) { | |
| 41 | 41 | router := app.Group("integration/3cx/") | |
| 42 | - router.Post("/messages", h.computeRoute(middlewares, h.Messages)...) | ||
| 42 | + h.register(router, fiber.MethodPost, "/messages", middlewares, h.Messages) | ||
| 43 | 43 | } | |
| 44 | 44 | ||
| 45 | 45 | // Messages consumes a 3cx event | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -41,7 +41,7 @@ func NewLemonsqueezyHandler( | |||
| 41 | 41 | // RegisterRoutes registers the routes for the MessageHandler | |
| 42 | 42 | func (h *LemonsqueezyHandler) RegisterRoutes(app *fiber.App, middlewares ...fiber.Handler) { | |
| 43 | 43 | router := app.Group("lemonsqueezy") | |
| 44 | - router.Post("/event", h.computeRoute(middlewares, h.Event)...) | ||
| 44 | + h.register(router, fiber.MethodPost, "/event", middlewares, h.Event) | ||
| 45 | 45 | } | |
| 46 | 46 | ||
| 47 | 47 | // Event handles lemonsqueezy events | |
| Back | FazBrowse Home | New Git URL |
0 commit comments