package controller import ( "net/http" "users_management/m/model/dto/req" "users_management/m/usecase" "users_management/m/utils/common" "github.com/gin-gonic/gin" ) type DevicePortController struct { du usecase.DevicePortUseCase rg *gin.RouterGroup } func (dc *DevicePortController) Route() { rg := dc.rg.Group("/device-port") rg.GET("", dc.GetDevicePort()) rg.POST("", dc.CreateDevicePort()) rg.GET("/:id", dc.GetDevicePortByID()) } func NewDevicePortController(du usecase.DevicePortUseCase, rg *gin.RouterGroup) *DevicePortController { return &DevicePortController{ du: du, rg: rg, } } func (dc *DevicePortController) GetDevicePort() gin.HandlerFunc { return func(c *gin.Context) { devicePorts, err := dc.du.GetAllDevicePort() if err != nil { common.ErrorResponses(c, http.StatusBadRequest, err.Error()) return } common.SingleResponses(c, "Success", devicePorts) } } func (dc *DevicePortController) CreateDevicePort() gin.HandlerFunc { return func(c *gin.Context) { var devicePortDTO req.DevicePort err := c.ShouldBindJSON(&devicePortDTO) if err != nil { common.ErrorResponses(c, http.StatusBadRequest, err.Error()) return } err = dc.du.CreateDevicePort(devicePortDTO) if err != nil { common.ErrorResponses(c, http.StatusBadRequest, err.Error()) return } common.SingleResponses(c, "Device Port has been created", nil) } } func (dc *DevicePortController) GetDevicePortByID() gin.HandlerFunc { return func(c *gin.Context) { id := c.Param("id") devicePort, err := dc.du.GetByID(id) if err != nil { common.ErrorResponses(c, http.StatusBadRequest, err.Error()) return } common.SingleResponses(c, "Success", devicePort) } }