package monkey import ( "autogo/controllers" "autogo/dbsql" "autogo/models" "net/http" "strings" "github.com/gin-gonic/gin" ) // @Tags Monkey相关 /api/monkey/v1/ // @Summary 获取设备列表 // @Description 获取安卓设备列表 // @accept x-www-form-urlencoded // @Param platform query int false "平台:ios/adr" // @Success 200 {object} models.Response "返回设备信息" // @Router /api/monkey/v1/devices [get] func GetDevices(c *gin.Context) { rsp := controllers.NewResponse() // var list []models.MonkeyDevice // db, err := dbsql.GetConn(dbsql.DSN) // if err != nil { // rsp.Error(err.Error()) // c.JSON(http.StatusOK, rsp) // return // } // defer dbsql.Close(db) rsp.Success() rsp.Data = GetAndroidDevices() c.JSON(http.StatusOK, rsp) } // @Tags Monkey相关 /api/monkey/v1/ // @Summary 获取设备列表 // @Description 获取安卓设备列表 // @accept x-www-form-urlencoded // @Param task_id query string true "任务id" // @Success 200 {object} models.Response "返回设备信息" // @Router /api/monkey/v1/task/devices [get] func GetDevicesByTaskId(c *gin.Context) { rsp := controllers.NewResponse() task_id := c.DefaultQuery("task_id", "") if task_id == "" { rsp.Error("task_id为空") c.JSON(http.StatusOK, rsp) return } db, err := dbsql.GetConn(dbsql.DSN) if err != nil { rsp.Error(err.Error()) c.JSON(http.StatusOK, rsp) return } defer dbsql.Close(db) db_oms, err := dbsql.GetConn(dbsql.DSN_qaoms()) if err != nil { rsp.Error(err.Error()) c.JSON(http.StatusOK, rsp) return } defer dbsql.Close(db_oms) var task models.MonkeyTask db.Model(models.MonkeyTask{}).Where("id = ?", task_id).Last(&task) if task.Id < 1 { rsp.Error("没有找到该Monkey任务,task_id=" + task_id) c.JSON(http.StatusOK, rsp) return } var devices []models.DeviceV2 if strings.Contains(task.Devices, ",") { list := strings.Split(task.Devices, ",") for _, v := range list { var d models.DeviceV2 db_oms.Model(models.DeviceV2{}).Where("udid = ?", v).Last(&d) if d.ID > 0 { devices = append(devices, d) } } } else { var d models.DeviceV2 db_oms.Model(models.DeviceV2{}).Where("udid = ?", task.Devices).Last(&d) if d.ID > 0 { devices = append(devices, d) } } rsp.Success() rsp.Data = devices c.JSON(http.StatusOK, rsp) }