From 61542af11b25895162c53fba8384b8d613cb4c69 Mon Sep 17 00:00:00 2001 From: Tran Anh Tuan Date: Wed, 13 May 2026 15:46:06 +0700 Subject: [PATCH] feat: restructure protected routes to use AuthMiddlewarey --- internal/routers/router.go | 213 ++++++++++++++++++------------------- 1 file changed, 106 insertions(+), 107 deletions(-) diff --git a/internal/routers/router.go b/internal/routers/router.go index 9b026b7..6dbd93e 100644 --- a/internal/routers/router.go +++ b/internal/routers/router.go @@ -29,130 +29,129 @@ func NewRouter() *gin.Engine { auth.POST(constants.API_PATH_AUTH_LOGIN, utils.AsyncHandler(services.Login)) } - // Protected routes (require JWT authentication) protected := v1.Group("") protected.Use(middlewares.AuthMiddleware()) { protected.GET(constants.API_PATH_PROFILE, utils.AsyncHandler(services.GetProfile)) - } - warehouse := v1.Group(constants.API_GROUP_WAREHOUSE) - { - warehouse.GET("", utils.AsyncHandler(services.WareHouseList)) - warehouse.GET("/:id", utils.AsyncHandler(services.WareHouseGetByID)) - warehouse.POST("", utils.AsyncHandler(services.WareHouseCreate)) - warehouse.PUT("/:id", utils.AsyncHandler(services.WareHouseUpdate)) - warehouse.DELETE("/:id", utils.AsyncHandler(services.WareHouseDelete)) - } + warehouse := protected.Group(constants.API_GROUP_WAREHOUSE) + { + warehouse.GET("", utils.AsyncHandler(services.WareHouseList)) + warehouse.GET("/:id", utils.AsyncHandler(services.WareHouseGetByID)) + warehouse.POST("", utils.AsyncHandler(services.WareHouseCreate)) + warehouse.PUT("/:id", utils.AsyncHandler(services.WareHouseUpdate)) + warehouse.DELETE("/:id", utils.AsyncHandler(services.WareHouseDelete)) + } - room := v1.Group(constants.API_GROUP_ROOM) - { - room.GET("", utils.AsyncHandler(services.RoomList)) - room.GET("/:id", utils.AsyncHandler(services.RoomGetByID)) - room.POST("", utils.AsyncHandler(services.RoomCreate)) - room.PUT("/:id", utils.AsyncHandler(services.RoomUpdate)) - room.DELETE("/:id", utils.AsyncHandler(services.RoomDelete)) - } + room := protected.Group(constants.API_GROUP_ROOM) + { + room.GET("", utils.AsyncHandler(services.RoomList)) + room.GET("/:id", utils.AsyncHandler(services.RoomGetByID)) + room.POST("", utils.AsyncHandler(services.RoomCreate)) + room.PUT("/:id", utils.AsyncHandler(services.RoomUpdate)) + room.DELETE("/:id", utils.AsyncHandler(services.RoomDelete)) + } - cabinet := v1.Group(constants.API_GROUP_CABINET) - { - cabinet.GET("", utils.AsyncHandler(services.CabinetList)) - cabinet.GET("/:id", utils.AsyncHandler(services.CabinetGetByID)) - cabinet.POST("", utils.AsyncHandler(services.CabinetCreate)) - cabinet.PUT("/:id", utils.AsyncHandler(services.CabinetUpdate)) - cabinet.DELETE("/:id", utils.AsyncHandler(services.CabinetDelete)) - } + cabinet := protected.Group(constants.API_GROUP_CABINET) + { + cabinet.GET("", utils.AsyncHandler(services.CabinetList)) + cabinet.GET("/:id", utils.AsyncHandler(services.CabinetGetByID)) + cabinet.POST("", utils.AsyncHandler(services.CabinetCreate)) + cabinet.PUT("/:id", utils.AsyncHandler(services.CabinetUpdate)) + cabinet.DELETE("/:id", utils.AsyncHandler(services.CabinetDelete)) + } - shelve := v1.Group(constants.API_GROUP_SHELF) - { - shelve.GET("", utils.AsyncHandler(services.ShelveList)) - shelve.GET("/:id", utils.AsyncHandler(services.ShelveGetByID)) - shelve.POST("", utils.AsyncHandler(services.ShelveCreate)) - shelve.PUT("/:id", utils.AsyncHandler(services.ShelveUpdate)) - shelve.DELETE("/:id", utils.AsyncHandler(services.ShelveDelete)) - } + shelve := protected.Group(constants.API_GROUP_SHELF) + { + shelve.GET("", utils.AsyncHandler(services.ShelveList)) + shelve.GET("/:id", utils.AsyncHandler(services.ShelveGetByID)) + shelve.POST("", utils.AsyncHandler(services.ShelveCreate)) + shelve.PUT("/:id", utils.AsyncHandler(services.ShelveUpdate)) + shelve.DELETE("/:id", utils.AsyncHandler(services.ShelveDelete)) + } - container := v1.Group(constants.API_GROUP_CONTAINER) - { - container.GET("", utils.AsyncHandler(services.ContainerList)) - container.GET("/:id", utils.AsyncHandler(services.ContainerGetByID)) - container.POST("", utils.AsyncHandler(services.ContainerCreate)) - container.PUT("/:id", utils.AsyncHandler(services.ContainerUpdate)) - container.DELETE("/:id", utils.AsyncHandler(services.ContainerDelete)) - } + container := protected.Group(constants.API_GROUP_CONTAINER) + { + container.GET("", utils.AsyncHandler(services.ContainerList)) + container.GET("/:id", utils.AsyncHandler(services.ContainerGetByID)) + container.POST("", utils.AsyncHandler(services.ContainerCreate)) + container.PUT("/:id", utils.AsyncHandler(services.ContainerUpdate)) + container.DELETE("/:id", utils.AsyncHandler(services.ContainerDelete)) + } - componentType := v1.Group(constants.API_GROUP_COMPONENT_TYPE) - { - componentType.GET("", utils.AsyncHandler(services.ComponentTypeList)) - componentType.GET("/:id", utils.AsyncHandler(services.ComponentTypeGetByID)) - componentType.POST("", utils.AsyncHandler(services.ComponentTypeCreate)) - componentType.PUT("/:id", utils.AsyncHandler(services.ComponentTypeUpdate)) - componentType.DELETE("/:id", utils.AsyncHandler(services.ComponentTypeDelete)) - } + componentType := protected.Group(constants.API_GROUP_COMPONENT_TYPE) + { + componentType.GET("", utils.AsyncHandler(services.ComponentTypeList)) + componentType.GET("/:id", utils.AsyncHandler(services.ComponentTypeGetByID)) + componentType.POST("", utils.AsyncHandler(services.ComponentTypeCreate)) + componentType.PUT("/:id", utils.AsyncHandler(services.ComponentTypeUpdate)) + componentType.DELETE("/:id", utils.AsyncHandler(services.ComponentTypeDelete)) + } - component := v1.Group(constants.API_GROUP_COMPONENT) - { - component.GET("", utils.AsyncHandler(services.ComponentList)) - component.GET("/:id", utils.AsyncHandler(services.ComponentGetByID)) - component.POST("", utils.AsyncHandler(services.ComponentCreate)) - component.PUT("/:id", utils.AsyncHandler(services.ComponentUpdate)) - component.DELETE("/:id", utils.AsyncHandler(services.ComponentDelete)) - } + component := protected.Group(constants.API_GROUP_COMPONENT) + { + component.GET("", utils.AsyncHandler(services.ComponentList)) + component.GET("/:id", utils.AsyncHandler(services.ComponentGetByID)) + component.POST("", utils.AsyncHandler(services.ComponentCreate)) + component.PUT("/:id", utils.AsyncHandler(services.ComponentUpdate)) + component.DELETE("/:id", utils.AsyncHandler(services.ComponentDelete)) + } - componentCode := v1.Group(constants.API_GROUP_COMPONENT_CODE) - { - componentCode.GET("", utils.AsyncHandler(services.ComponentCodeList)) - componentCode.GET("/:id", utils.AsyncHandler(services.ComponentCodeGetByID)) - componentCode.POST("", utils.AsyncHandler(services.ComponentCodeCreate)) - componentCode.PUT("/:id", utils.AsyncHandler(services.ComponentCodeUpdate)) - componentCode.DELETE("/:id", utils.AsyncHandler(services.ComponentCodeDelete)) - } + componentCode := protected.Group(constants.API_GROUP_COMPONENT_CODE) + { + componentCode.GET("", utils.AsyncHandler(services.ComponentCodeList)) + componentCode.GET("/:id", utils.AsyncHandler(services.ComponentCodeGetByID)) + componentCode.POST("", utils.AsyncHandler(services.ComponentCodeCreate)) + componentCode.PUT("/:id", utils.AsyncHandler(services.ComponentCodeUpdate)) + componentCode.DELETE("/:id", utils.AsyncHandler(services.ComponentCodeDelete)) + } - componentItem := v1.Group(constants.API_GROUP_COMPONENT_ITEM) - { - componentItem.GET("", utils.AsyncHandler(services.ComponentItemList)) - componentItem.GET("/find/:componentId", utils.AsyncHandler(services.ComponentItemFind)) - componentItem.GET("/:id", utils.AsyncHandler(services.ComponentItemGetByID)) - componentItem.POST("", utils.AsyncHandler(services.ComponentItemCreate)) - componentItem.PUT("/:id/status", utils.AsyncHandler(services.ComponentItemUpdateStatus)) - componentItem.PUT("/:id", utils.AsyncHandler(services.ComponentItemUpdate)) - componentItem.DELETE("/:id", utils.AsyncHandler(services.ComponentItemDelete)) - } + componentItem := protected.Group(constants.API_GROUP_COMPONENT_ITEM) + { + componentItem.GET("", utils.AsyncHandler(services.ComponentItemList)) + componentItem.GET("/find/:componentId", utils.AsyncHandler(services.ComponentItemFind)) + componentItem.GET("/:id", utils.AsyncHandler(services.ComponentItemGetByID)) + componentItem.POST("", utils.AsyncHandler(services.ComponentItemCreate)) + componentItem.PUT("/:id/status", utils.AsyncHandler(services.ComponentItemUpdateStatus)) + componentItem.PUT("/:id", utils.AsyncHandler(services.ComponentItemUpdate)) + componentItem.DELETE("/:id", utils.AsyncHandler(services.ComponentItemDelete)) + } - invoiceConfig := v1.Group(constants.API_GROUP_INVOICE_CONFIG) - { - invoiceConfig.GET("", utils.AsyncHandler(services.InvoiceConfigList)) - invoiceConfig.GET("/:id", utils.AsyncHandler(services.InvoiceConfigGetByID)) - invoiceConfig.POST("", utils.AsyncHandler(services.InvoiceConfigCreate)) - invoiceConfig.PUT("/:id", utils.AsyncHandler(services.InvoiceConfigUpdate)) - invoiceConfig.DELETE("/:id", utils.AsyncHandler(services.InvoiceConfigDelete)) - } + invoiceConfig := protected.Group(constants.API_GROUP_INVOICE_CONFIG) + { + invoiceConfig.GET("", utils.AsyncHandler(services.InvoiceConfigList)) + invoiceConfig.GET("/:id", utils.AsyncHandler(services.InvoiceConfigGetByID)) + invoiceConfig.POST("", utils.AsyncHandler(services.InvoiceConfigCreate)) + invoiceConfig.PUT("/:id", utils.AsyncHandler(services.InvoiceConfigUpdate)) + invoiceConfig.DELETE("/:id", utils.AsyncHandler(services.InvoiceConfigDelete)) + } - invoiceConfigItem := v1.Group(constants.API_GROUP_INVOICE_CONFIG_ITEM) - { - invoiceConfigItem.GET("", utils.AsyncHandler(services.InvoiceConfigItemList)) - invoiceConfigItem.GET("/:id", utils.AsyncHandler(services.InvoiceConfigItemGetByID)) - invoiceConfigItem.POST("", utils.AsyncHandler(services.InvoiceConfigItemCreate)) - invoiceConfigItem.PUT("/:id", utils.AsyncHandler(services.InvoiceConfigItemUpdate)) - invoiceConfigItem.DELETE("/:id", utils.AsyncHandler(services.InvoiceConfigItemDelete)) - } + invoiceConfigItem := protected.Group(constants.API_GROUP_INVOICE_CONFIG_ITEM) + { + invoiceConfigItem.GET("", utils.AsyncHandler(services.InvoiceConfigItemList)) + invoiceConfigItem.GET("/:id", utils.AsyncHandler(services.InvoiceConfigItemGetByID)) + invoiceConfigItem.POST("", utils.AsyncHandler(services.InvoiceConfigItemCreate)) + invoiceConfigItem.PUT("/:id", utils.AsyncHandler(services.InvoiceConfigItemUpdate)) + invoiceConfigItem.DELETE("/:id", utils.AsyncHandler(services.InvoiceConfigItemDelete)) + } - invoice := v1.Group(constants.API_GROUP_INVOICE) - { - invoice.GET("", utils.AsyncHandler(services.InvoiceList)) - invoice.GET("/:id", utils.AsyncHandler(services.InvoiceGetByID)) - invoice.POST("", utils.AsyncHandler(services.InvoiceCreate)) - invoice.PUT("/:id", utils.AsyncHandler(services.InvoiceUpdate)) - invoice.DELETE("/:id", utils.AsyncHandler(services.InvoiceDelete)) - } + invoice := protected.Group(constants.API_GROUP_INVOICE) + { + invoice.GET("", utils.AsyncHandler(services.InvoiceList)) + invoice.GET("/:id", utils.AsyncHandler(services.InvoiceGetByID)) + invoice.POST("", utils.AsyncHandler(services.InvoiceCreate)) + invoice.PUT("/:id", utils.AsyncHandler(services.InvoiceUpdate)) + invoice.DELETE("/:id", utils.AsyncHandler(services.InvoiceDelete)) + } - alternativeComponent := v1.Group(constants.API_GROUP_ALTERNATIVE_COMPONENT) - { - alternativeComponent.GET("", utils.AsyncHandler(services.AlternativeComponentList)) - alternativeComponent.GET("/:id", utils.AsyncHandler(services.AlternativeComponentGetByID)) - alternativeComponent.POST("", utils.AsyncHandler(services.AlternativeComponentCreate)) - alternativeComponent.PUT("/:id", utils.AsyncHandler(services.AlternativeComponentUpdate)) - alternativeComponent.DELETE("/:id", utils.AsyncHandler(services.AlternativeComponentDelete)) + alternativeComponent := protected.Group(constants.API_GROUP_ALTERNATIVE_COMPONENT) + { + alternativeComponent.GET("", utils.AsyncHandler(services.AlternativeComponentList)) + alternativeComponent.GET("/:id", utils.AsyncHandler(services.AlternativeComponentGetByID)) + alternativeComponent.POST("", utils.AsyncHandler(services.AlternativeComponentCreate)) + alternativeComponent.PUT("/:id", utils.AsyncHandler(services.AlternativeComponentUpdate)) + alternativeComponent.DELETE("/:id", utils.AsyncHandler(services.AlternativeComponentDelete)) + } } }