77 lines
1.6 KiB
Go
77 lines
1.6 KiB
Go
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 DeviceController struct {
|
|
du usecase.DeviceUseCase
|
|
rg *gin.RouterGroup
|
|
}
|
|
|
|
func (dc *DeviceController) Route() {
|
|
rg := dc.rg.Group("/devices")
|
|
rg.POST("", dc.CreateDevice())
|
|
rg.GET("", dc.GetAllDevices())
|
|
rg.GET("/:id", dc.GetDeviceByID())
|
|
}
|
|
|
|
func NewDeviceController(du usecase.DeviceUseCase, rg *gin.RouterGroup) *DeviceController {
|
|
return &DeviceController{
|
|
du: du,
|
|
rg: rg,
|
|
}
|
|
}
|
|
|
|
func (dc *DeviceController) CreateDevice() gin.HandlerFunc {
|
|
return func(c *gin.Context) {
|
|
var deviceDTO req.DeviceDTO
|
|
err := c.ShouldBindJSON(&deviceDTO)
|
|
|
|
if err != nil {
|
|
common.ErrorResponses(c, http.StatusBadRequest, err.Error())
|
|
return
|
|
}
|
|
|
|
err = dc.du.CreateDevice(deviceDTO)
|
|
|
|
if err != nil {
|
|
common.ErrorResponses(c, http.StatusBadRequest, err.Error())
|
|
return
|
|
}
|
|
|
|
common.SingleResponses(c, "Device has been created", nil)
|
|
}
|
|
}
|
|
|
|
func (dc *DeviceController) GetAllDevices() gin.HandlerFunc {
|
|
return func(c *gin.Context) {
|
|
devices, err := dc.du.GetAllDevices()
|
|
|
|
if err != nil {
|
|
common.ErrorResponses(c, http.StatusBadRequest, err.Error())
|
|
return
|
|
}
|
|
|
|
common.SingleResponses(c, "Success", devices)
|
|
}
|
|
}
|
|
|
|
func (dc *DeviceController) GetDeviceByID() gin.HandlerFunc {
|
|
return func(c *gin.Context) {
|
|
id := c.Param("id")
|
|
device, err := dc.du.GetByID(id)
|
|
|
|
if err != nil {
|
|
common.ErrorResponses(c, http.StatusBadRequest, err.Error())
|
|
return
|
|
}
|
|
|
|
common.SingleResponses(c, "Success", device)
|
|
}
|
|
} |