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) }