diff --git a/pkg/api/routes.go b/pkg/api/routes.go index 5d7eec7..2fdb9a1 100644 --- a/pkg/api/routes.go +++ b/pkg/api/routes.go @@ -21,6 +21,11 @@ func Routes(s *gin.Engine, db *pg.DB) { transactionType := ver.Group("transaction-type", middleware.Auth) subscription := ver.Group("subscription", middleware.Auth) subscriptionType := ver.Group("subscription-type", middleware.Auth) + + s.NoRoute(func(c *gin.Context) { + c.JSON(404, gin.H{"code": "PAGE_NOT_FOUND", "message": "Page not found"}) + }) + apiService := services.ApiService{Db: db} usersService := services.UsersService{Db: db} diff --git a/pkg/controllers/subscriptions.go b/pkg/controllers/subscriptions.go index 30c4b0c..fd41880 100644 --- a/pkg/controllers/subscriptions.go +++ b/pkg/controllers/subscriptions.go @@ -16,12 +16,16 @@ func NewSubscriptionController(as *services.SubscriptionService, s *gin.RouterGr wc := new(SubscriptionController) wc.SubscriptionService = as - s.PUT("/end/:id", wc.End) s.POST("", wc.New) s.PUT("/:id", wc.Edit) s.GET("/:id", wc.Get) s.GET("", wc.GetAll) + se := s.Group("/end") + { + se.POST("", wc.End) + } + return wc } @@ -72,7 +76,13 @@ func (wc *SubscriptionController) End(c *gin.Context) { auth := c.MustGet("auth") body.Id = auth.(*models.Auth).Id - id := c.Param("id") + end := new(models.SubscriptionEnd) + if err := c.ShouldBind(end); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } + + id := end.Id fr := wc.SubscriptionService.End(c, id) diff --git a/pkg/middleware/cors.go b/pkg/middleware/cors.go index 55c7ece..23d62cc 100644 --- a/pkg/middleware/cors.go +++ b/pkg/middleware/cors.go @@ -8,7 +8,7 @@ func CORSMiddleware() gin.HandlerFunc { c.Writer.Header().Set("Access-Control-Allow-Credentials", "true") c.Writer.Header().Set("Access-Control-Allow-Headers", "Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, accept, origin, Cache-Control, X-Requested-With") c.Writer.Header().Set("Access-Control-Allow-Methods", "POST, OPTIONS, GET, PUT") - + if c.Request.Method == "OPTIONS" { c.AbortWithStatus(204) return diff --git a/pkg/models/subscriptions.go b/pkg/models/subscriptions.go index 3d7e856..ce7f29f 100644 --- a/pkg/models/subscriptions.go +++ b/pkg/models/subscriptions.go @@ -45,6 +45,10 @@ type NewSubscriptionBody struct { Amount json.Number `json:"amount" form:"amount"` } +type SubscriptionEnd struct { + Id string `json:"id" form:"id"` +} + func (cm *Subscription) ToTrans() *Transaction { trans := new(Transaction) trans.Init()