53 lines
1.1 KiB
Go
53 lines
1.1 KiB
Go
package jd
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
)
|
|
|
|
func EdgeDevice(req EdgeDeviceReq) (*EdgeDeviceData, error) {
|
|
path := "/edge/device"
|
|
resp, err := Post(path, req)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
var respData EdgeDeviceResp
|
|
if err := json.NewDecoder(resp).Decode(&respData); err != nil {
|
|
return nil, fmt.Errorf("%s 响应解析失败: %v", path, err)
|
|
}
|
|
|
|
if respData.Code != 0 {
|
|
return nil, fmt.Errorf("%s 响应失败: %s", path, respData.Meta)
|
|
}
|
|
|
|
return &respData.Data, nil
|
|
}
|
|
|
|
type EdgeDeviceReq struct {
|
|
Geo string `json:"geo"`
|
|
Offset int `json:"offset"`
|
|
Num int `json:"num"`
|
|
}
|
|
|
|
type EdgeDeviceResp struct {
|
|
Code int `json:"code"`
|
|
Meta string `json:"meta"`
|
|
Data EdgeDeviceData `json:"data"`
|
|
}
|
|
|
|
type EdgeDeviceData struct {
|
|
Count int `json:"count"`
|
|
Edges []EdgeDeviceEdge `json:"edges"`
|
|
}
|
|
|
|
type EdgeDeviceEdge struct {
|
|
Macaddr string `json:"macaddr"`
|
|
Public string `json:"public"`
|
|
Isp string `json:"isp"`
|
|
Single int `json:"single"`
|
|
Sole bool `json:"sole"`
|
|
Arch int `json:"arch"`
|
|
Online int `json:"online"`
|
|
}
|