feat: restructure protected routes to use AuthMiddlewarey

This commit is contained in:
Tran Anh Tuan
2026-05-13 15:46:06 +07:00
parent d2bb7aa3aa
commit 61542af11b

View File

@@ -29,130 +29,129 @@ func NewRouter() *gin.Engine {
auth.POST(constants.API_PATH_AUTH_LOGIN, utils.AsyncHandler(services.Login)) auth.POST(constants.API_PATH_AUTH_LOGIN, utils.AsyncHandler(services.Login))
} }
// Protected routes (require JWT authentication)
protected := v1.Group("") protected := v1.Group("")
protected.Use(middlewares.AuthMiddleware()) protected.Use(middlewares.AuthMiddleware())
{ {
protected.GET(constants.API_PATH_PROFILE, utils.AsyncHandler(services.GetProfile)) protected.GET(constants.API_PATH_PROFILE, utils.AsyncHandler(services.GetProfile))
}
warehouse := v1.Group(constants.API_GROUP_WAREHOUSE) warehouse := protected.Group(constants.API_GROUP_WAREHOUSE)
{ {
warehouse.GET("", utils.AsyncHandler(services.WareHouseList)) warehouse.GET("", utils.AsyncHandler(services.WareHouseList))
warehouse.GET("/:id", utils.AsyncHandler(services.WareHouseGetByID)) warehouse.GET("/:id", utils.AsyncHandler(services.WareHouseGetByID))
warehouse.POST("", utils.AsyncHandler(services.WareHouseCreate)) warehouse.POST("", utils.AsyncHandler(services.WareHouseCreate))
warehouse.PUT("/:id", utils.AsyncHandler(services.WareHouseUpdate)) warehouse.PUT("/:id", utils.AsyncHandler(services.WareHouseUpdate))
warehouse.DELETE("/:id", utils.AsyncHandler(services.WareHouseDelete)) warehouse.DELETE("/:id", utils.AsyncHandler(services.WareHouseDelete))
} }
room := v1.Group(constants.API_GROUP_ROOM) room := protected.Group(constants.API_GROUP_ROOM)
{ {
room.GET("", utils.AsyncHandler(services.RoomList)) room.GET("", utils.AsyncHandler(services.RoomList))
room.GET("/:id", utils.AsyncHandler(services.RoomGetByID)) room.GET("/:id", utils.AsyncHandler(services.RoomGetByID))
room.POST("", utils.AsyncHandler(services.RoomCreate)) room.POST("", utils.AsyncHandler(services.RoomCreate))
room.PUT("/:id", utils.AsyncHandler(services.RoomUpdate)) room.PUT("/:id", utils.AsyncHandler(services.RoomUpdate))
room.DELETE("/:id", utils.AsyncHandler(services.RoomDelete)) room.DELETE("/:id", utils.AsyncHandler(services.RoomDelete))
} }
cabinet := v1.Group(constants.API_GROUP_CABINET) cabinet := protected.Group(constants.API_GROUP_CABINET)
{ {
cabinet.GET("", utils.AsyncHandler(services.CabinetList)) cabinet.GET("", utils.AsyncHandler(services.CabinetList))
cabinet.GET("/:id", utils.AsyncHandler(services.CabinetGetByID)) cabinet.GET("/:id", utils.AsyncHandler(services.CabinetGetByID))
cabinet.POST("", utils.AsyncHandler(services.CabinetCreate)) cabinet.POST("", utils.AsyncHandler(services.CabinetCreate))
cabinet.PUT("/:id", utils.AsyncHandler(services.CabinetUpdate)) cabinet.PUT("/:id", utils.AsyncHandler(services.CabinetUpdate))
cabinet.DELETE("/:id", utils.AsyncHandler(services.CabinetDelete)) cabinet.DELETE("/:id", utils.AsyncHandler(services.CabinetDelete))
} }
shelve := v1.Group(constants.API_GROUP_SHELF) shelve := protected.Group(constants.API_GROUP_SHELF)
{ {
shelve.GET("", utils.AsyncHandler(services.ShelveList)) shelve.GET("", utils.AsyncHandler(services.ShelveList))
shelve.GET("/:id", utils.AsyncHandler(services.ShelveGetByID)) shelve.GET("/:id", utils.AsyncHandler(services.ShelveGetByID))
shelve.POST("", utils.AsyncHandler(services.ShelveCreate)) shelve.POST("", utils.AsyncHandler(services.ShelveCreate))
shelve.PUT("/:id", utils.AsyncHandler(services.ShelveUpdate)) shelve.PUT("/:id", utils.AsyncHandler(services.ShelveUpdate))
shelve.DELETE("/:id", utils.AsyncHandler(services.ShelveDelete)) shelve.DELETE("/:id", utils.AsyncHandler(services.ShelveDelete))
} }
container := v1.Group(constants.API_GROUP_CONTAINER) container := protected.Group(constants.API_GROUP_CONTAINER)
{ {
container.GET("", utils.AsyncHandler(services.ContainerList)) container.GET("", utils.AsyncHandler(services.ContainerList))
container.GET("/:id", utils.AsyncHandler(services.ContainerGetByID)) container.GET("/:id", utils.AsyncHandler(services.ContainerGetByID))
container.POST("", utils.AsyncHandler(services.ContainerCreate)) container.POST("", utils.AsyncHandler(services.ContainerCreate))
container.PUT("/:id", utils.AsyncHandler(services.ContainerUpdate)) container.PUT("/:id", utils.AsyncHandler(services.ContainerUpdate))
container.DELETE("/:id", utils.AsyncHandler(services.ContainerDelete)) container.DELETE("/:id", utils.AsyncHandler(services.ContainerDelete))
} }
componentType := v1.Group(constants.API_GROUP_COMPONENT_TYPE) componentType := protected.Group(constants.API_GROUP_COMPONENT_TYPE)
{ {
componentType.GET("", utils.AsyncHandler(services.ComponentTypeList)) componentType.GET("", utils.AsyncHandler(services.ComponentTypeList))
componentType.GET("/:id", utils.AsyncHandler(services.ComponentTypeGetByID)) componentType.GET("/:id", utils.AsyncHandler(services.ComponentTypeGetByID))
componentType.POST("", utils.AsyncHandler(services.ComponentTypeCreate)) componentType.POST("", utils.AsyncHandler(services.ComponentTypeCreate))
componentType.PUT("/:id", utils.AsyncHandler(services.ComponentTypeUpdate)) componentType.PUT("/:id", utils.AsyncHandler(services.ComponentTypeUpdate))
componentType.DELETE("/:id", utils.AsyncHandler(services.ComponentTypeDelete)) componentType.DELETE("/:id", utils.AsyncHandler(services.ComponentTypeDelete))
} }
component := v1.Group(constants.API_GROUP_COMPONENT) component := protected.Group(constants.API_GROUP_COMPONENT)
{ {
component.GET("", utils.AsyncHandler(services.ComponentList)) component.GET("", utils.AsyncHandler(services.ComponentList))
component.GET("/:id", utils.AsyncHandler(services.ComponentGetByID)) component.GET("/:id", utils.AsyncHandler(services.ComponentGetByID))
component.POST("", utils.AsyncHandler(services.ComponentCreate)) component.POST("", utils.AsyncHandler(services.ComponentCreate))
component.PUT("/:id", utils.AsyncHandler(services.ComponentUpdate)) component.PUT("/:id", utils.AsyncHandler(services.ComponentUpdate))
component.DELETE("/:id", utils.AsyncHandler(services.ComponentDelete)) component.DELETE("/:id", utils.AsyncHandler(services.ComponentDelete))
} }
componentCode := v1.Group(constants.API_GROUP_COMPONENT_CODE) componentCode := protected.Group(constants.API_GROUP_COMPONENT_CODE)
{ {
componentCode.GET("", utils.AsyncHandler(services.ComponentCodeList)) componentCode.GET("", utils.AsyncHandler(services.ComponentCodeList))
componentCode.GET("/:id", utils.AsyncHandler(services.ComponentCodeGetByID)) componentCode.GET("/:id", utils.AsyncHandler(services.ComponentCodeGetByID))
componentCode.POST("", utils.AsyncHandler(services.ComponentCodeCreate)) componentCode.POST("", utils.AsyncHandler(services.ComponentCodeCreate))
componentCode.PUT("/:id", utils.AsyncHandler(services.ComponentCodeUpdate)) componentCode.PUT("/:id", utils.AsyncHandler(services.ComponentCodeUpdate))
componentCode.DELETE("/:id", utils.AsyncHandler(services.ComponentCodeDelete)) componentCode.DELETE("/:id", utils.AsyncHandler(services.ComponentCodeDelete))
} }
componentItem := v1.Group(constants.API_GROUP_COMPONENT_ITEM) componentItem := protected.Group(constants.API_GROUP_COMPONENT_ITEM)
{ {
componentItem.GET("", utils.AsyncHandler(services.ComponentItemList)) componentItem.GET("", utils.AsyncHandler(services.ComponentItemList))
componentItem.GET("/find/:componentId", utils.AsyncHandler(services.ComponentItemFind)) componentItem.GET("/find/:componentId", utils.AsyncHandler(services.ComponentItemFind))
componentItem.GET("/:id", utils.AsyncHandler(services.ComponentItemGetByID)) componentItem.GET("/:id", utils.AsyncHandler(services.ComponentItemGetByID))
componentItem.POST("", utils.AsyncHandler(services.ComponentItemCreate)) componentItem.POST("", utils.AsyncHandler(services.ComponentItemCreate))
componentItem.PUT("/:id/status", utils.AsyncHandler(services.ComponentItemUpdateStatus)) componentItem.PUT("/:id/status", utils.AsyncHandler(services.ComponentItemUpdateStatus))
componentItem.PUT("/:id", utils.AsyncHandler(services.ComponentItemUpdate)) componentItem.PUT("/:id", utils.AsyncHandler(services.ComponentItemUpdate))
componentItem.DELETE("/:id", utils.AsyncHandler(services.ComponentItemDelete)) componentItem.DELETE("/:id", utils.AsyncHandler(services.ComponentItemDelete))
} }
invoiceConfig := v1.Group(constants.API_GROUP_INVOICE_CONFIG) invoiceConfig := protected.Group(constants.API_GROUP_INVOICE_CONFIG)
{ {
invoiceConfig.GET("", utils.AsyncHandler(services.InvoiceConfigList)) invoiceConfig.GET("", utils.AsyncHandler(services.InvoiceConfigList))
invoiceConfig.GET("/:id", utils.AsyncHandler(services.InvoiceConfigGetByID)) invoiceConfig.GET("/:id", utils.AsyncHandler(services.InvoiceConfigGetByID))
invoiceConfig.POST("", utils.AsyncHandler(services.InvoiceConfigCreate)) invoiceConfig.POST("", utils.AsyncHandler(services.InvoiceConfigCreate))
invoiceConfig.PUT("/:id", utils.AsyncHandler(services.InvoiceConfigUpdate)) invoiceConfig.PUT("/:id", utils.AsyncHandler(services.InvoiceConfigUpdate))
invoiceConfig.DELETE("/:id", utils.AsyncHandler(services.InvoiceConfigDelete)) invoiceConfig.DELETE("/:id", utils.AsyncHandler(services.InvoiceConfigDelete))
} }
invoiceConfigItem := v1.Group(constants.API_GROUP_INVOICE_CONFIG_ITEM) invoiceConfigItem := protected.Group(constants.API_GROUP_INVOICE_CONFIG_ITEM)
{ {
invoiceConfigItem.GET("", utils.AsyncHandler(services.InvoiceConfigItemList)) invoiceConfigItem.GET("", utils.AsyncHandler(services.InvoiceConfigItemList))
invoiceConfigItem.GET("/:id", utils.AsyncHandler(services.InvoiceConfigItemGetByID)) invoiceConfigItem.GET("/:id", utils.AsyncHandler(services.InvoiceConfigItemGetByID))
invoiceConfigItem.POST("", utils.AsyncHandler(services.InvoiceConfigItemCreate)) invoiceConfigItem.POST("", utils.AsyncHandler(services.InvoiceConfigItemCreate))
invoiceConfigItem.PUT("/:id", utils.AsyncHandler(services.InvoiceConfigItemUpdate)) invoiceConfigItem.PUT("/:id", utils.AsyncHandler(services.InvoiceConfigItemUpdate))
invoiceConfigItem.DELETE("/:id", utils.AsyncHandler(services.InvoiceConfigItemDelete)) invoiceConfigItem.DELETE("/:id", utils.AsyncHandler(services.InvoiceConfigItemDelete))
} }
invoice := v1.Group(constants.API_GROUP_INVOICE) invoice := protected.Group(constants.API_GROUP_INVOICE)
{ {
invoice.GET("", utils.AsyncHandler(services.InvoiceList)) invoice.GET("", utils.AsyncHandler(services.InvoiceList))
invoice.GET("/:id", utils.AsyncHandler(services.InvoiceGetByID)) invoice.GET("/:id", utils.AsyncHandler(services.InvoiceGetByID))
invoice.POST("", utils.AsyncHandler(services.InvoiceCreate)) invoice.POST("", utils.AsyncHandler(services.InvoiceCreate))
invoice.PUT("/:id", utils.AsyncHandler(services.InvoiceUpdate)) invoice.PUT("/:id", utils.AsyncHandler(services.InvoiceUpdate))
invoice.DELETE("/:id", utils.AsyncHandler(services.InvoiceDelete)) invoice.DELETE("/:id", utils.AsyncHandler(services.InvoiceDelete))
} }
alternativeComponent := v1.Group(constants.API_GROUP_ALTERNATIVE_COMPONENT) alternativeComponent := protected.Group(constants.API_GROUP_ALTERNATIVE_COMPONENT)
{ {
alternativeComponent.GET("", utils.AsyncHandler(services.AlternativeComponentList)) alternativeComponent.GET("", utils.AsyncHandler(services.AlternativeComponentList))
alternativeComponent.GET("/:id", utils.AsyncHandler(services.AlternativeComponentGetByID)) alternativeComponent.GET("/:id", utils.AsyncHandler(services.AlternativeComponentGetByID))
alternativeComponent.POST("", utils.AsyncHandler(services.AlternativeComponentCreate)) alternativeComponent.POST("", utils.AsyncHandler(services.AlternativeComponentCreate))
alternativeComponent.PUT("/:id", utils.AsyncHandler(services.AlternativeComponentUpdate)) alternativeComponent.PUT("/:id", utils.AsyncHandler(services.AlternativeComponentUpdate))
alternativeComponent.DELETE("/:id", utils.AsyncHandler(services.AlternativeComponentDelete)) alternativeComponent.DELETE("/:id", utils.AsyncHandler(services.AlternativeComponentDelete))
}
} }
} }