You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
2.9 KiB
120 lines
2.9 KiB
package handler
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
|
|
"laic-backend/common"
|
|
"laic-backend/service"
|
|
"laic-backend/vo"
|
|
)
|
|
|
|
// GetFirmwarePage 固件分页列表(admin)
|
|
func GetFirmwarePage(c *gin.Context) {
|
|
var req vo.FirmwarePageReq
|
|
_ = c.ShouldBindQuery(&req)
|
|
if req.PageNum <= 0 {
|
|
req.PageNum = 1
|
|
}
|
|
if req.PageSize <= 0 {
|
|
req.PageSize = 10
|
|
}
|
|
page, busiErr := service.DefaultFirmwareService.GetPage(&req)
|
|
if busiErr != nil {
|
|
common.FailWithBusiError(c, busiErr)
|
|
return
|
|
}
|
|
common.OKWithData(c, page)
|
|
}
|
|
|
|
// GetReleasedFirmwares 已发布固件列表(普通用户选择升级)
|
|
func GetReleasedFirmwares(c *gin.Context) {
|
|
list, busiErr := service.DefaultFirmwareService.GetReleasedList()
|
|
if busiErr != nil {
|
|
common.FailWithBusiError(c, busiErr)
|
|
return
|
|
}
|
|
common.OKWithData(c, list)
|
|
}
|
|
|
|
// GetFirmware 固件详情(admin)
|
|
func GetFirmware(c *gin.Context) {
|
|
id, busiErr := parseID(c)
|
|
if busiErr != nil {
|
|
common.FailWithBusiError(c, busiErr)
|
|
return
|
|
}
|
|
fw, busiErr := service.DefaultFirmwareService.GetDetail(id)
|
|
if busiErr != nil {
|
|
common.FailWithBusiError(c, busiErr)
|
|
return
|
|
}
|
|
common.OKWithData(c, fw)
|
|
}
|
|
|
|
// CreateFirmware 新增固件版本(admin)
|
|
func CreateFirmware(c *gin.Context) {
|
|
var req vo.FirmwareCreateReq
|
|
if err := c.ShouldBindJSON(&req); err != nil {
|
|
common.FailWithBindError(c, common.ErrParam, err)
|
|
return
|
|
}
|
|
fw, busiErr := service.DefaultFirmwareService.Create(common.GetUserId(c), &req)
|
|
if busiErr != nil {
|
|
common.FailWithBusiError(c, busiErr)
|
|
return
|
|
}
|
|
common.OKWithData(c, fw)
|
|
}
|
|
|
|
// UpdateFirmware 编辑固件版本(admin)
|
|
func UpdateFirmware(c *gin.Context) {
|
|
id, busiErr := parseID(c)
|
|
if busiErr != nil {
|
|
common.FailWithBusiError(c, busiErr)
|
|
return
|
|
}
|
|
var req vo.FirmwareUpdateReq
|
|
if err := c.ShouldBindJSON(&req); err != nil {
|
|
common.FailWithBindError(c, common.ErrParam, err)
|
|
return
|
|
}
|
|
if busiErr := service.DefaultFirmwareService.Update(id, &req); busiErr != nil {
|
|
common.FailWithBusiError(c, busiErr)
|
|
return
|
|
}
|
|
common.OK(c)
|
|
}
|
|
|
|
// DeleteFirmware 删除固件版本(admin)
|
|
func DeleteFirmware(c *gin.Context) {
|
|
id, busiErr := parseID(c)
|
|
if busiErr != nil {
|
|
common.FailWithBusiError(c, busiErr)
|
|
return
|
|
}
|
|
if busiErr := service.DefaultFirmwareService.Delete(id); busiErr != nil {
|
|
common.FailWithBusiError(c, busiErr)
|
|
return
|
|
}
|
|
common.OK(c)
|
|
}
|
|
|
|
// UpgradeFirmware 下发 OTA 升级(对所属机巢)
|
|
func UpgradeFirmware(c *gin.Context) {
|
|
id, busiErr := parseID(c)
|
|
if busiErr != nil {
|
|
common.FailWithBusiError(c, busiErr)
|
|
return
|
|
}
|
|
var req vo.FirmwareUpgradeReq
|
|
if err := c.ShouldBindJSON(&req); err != nil {
|
|
common.FailWithBindError(c, common.ErrParam, err)
|
|
return
|
|
}
|
|
result, busiErr := service.DefaultFirmwareService.Upgrade(common.GetUserId(c), common.IsAdmin(c), id, req.FirmwareID)
|
|
if busiErr != nil {
|
|
common.FailWithBusiError(c, busiErr)
|
|
return
|
|
}
|
|
common.OKWithData(c, result)
|
|
}
|
|
|