From a04b7865382b8ed9bf9b5914e35c3001cf1c5a69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=20Jurmanovi=C4=87?= Date: Tue, 25 May 2021 21:47:53 +0200 Subject: [PATCH] secret code middleware for migration --- pkg/controllers/api.go | 2 +- pkg/middleware/secretCode.go | 30 ++++++++++++++++++++++++++++++ pkg/utl/configs/configs.go | 7 ++++--- 3 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 pkg/middleware/secretCode.go diff --git a/pkg/controllers/api.go b/pkg/controllers/api.go index 5215a5c..4173996 100644 --- a/pkg/controllers/api.go +++ b/pkg/controllers/api.go @@ -16,7 +16,7 @@ func NewApiController(as *services.ApiService, s *gin.RouterGroup) *ApiControlle ac.ApiService = as s.GET("", ac.getFirst) - s.POST("migrate", middleware.Auth, ac.postMigrate) + s.POST("migrate", middleware.SecretCode, ac.postMigrate) return ac } diff --git a/pkg/middleware/secretCode.go b/pkg/middleware/secretCode.go new file mode 100644 index 0000000..7750109 --- /dev/null +++ b/pkg/middleware/secretCode.go @@ -0,0 +1,30 @@ +package middleware + +import ( + "os" + "wallet-api/pkg/models" + "wallet-api/pkg/utl/configs" + + "github.com/gin-gonic/gin" +) + +func SecretCode(c *gin.Context) { + exceptionReturn := new(models.Exception) + secretCode := ExtractCode(c) + secret := os.Getenv("SECRET_CODE") + if secret == "" { + secret = configs.SecretCode + } + if secret != secretCode { + exceptionReturn.ErrorCode = "401101" + exceptionReturn.StatusCode = 401 + exceptionReturn.Message = "Invalid secret code" + c.AbortWithStatusJSON(exceptionReturn.StatusCode, exceptionReturn) + } + c.Next() +} + +func ExtractCode(c *gin.Context) string { + secret := c.GetHeader("SECRET_CODE") + return secret +} diff --git a/pkg/utl/configs/configs.go b/pkg/utl/configs/configs.go index 14b38f9..6f21a63 100644 --- a/pkg/utl/configs/configs.go +++ b/pkg/utl/configs/configs.go @@ -1,7 +1,8 @@ package configs const ( - Version = "0.0.1" - Prefix = "v1" - Secret = "Donde4sta" + Version = "0.0.1" + Prefix = "v1" + Secret = "Donde4sta" + SecretCode = "brasno" )