Add dev_id_override to user

This commit is contained in:
Joshua Spence
2021-06-16 16:02:24 +10:00
committed by Paul Tyng
parent dd685c0447
commit 2f7eee3a6a
3 changed files with 40 additions and 10 deletions

View File

@@ -146,6 +146,7 @@ func NewResource(structName string, resourcePath string) *Resource {
baseType.Fields[" MAC"] = NewFieldInfo("MAC", "mac", "string", "", true, false)
case resource.StructName == "User":
baseType.Fields[" IP"] = NewFieldInfo("IP", "ip", "string", "non-generated field", true, false)
baseType.Fields[" DevIdOverride"] = NewFieldInfo("DevIdOverride", "dev_id_override", "int", "non-generated field", true, false)
case resource.StructName == "WLAN":
// this field removed in v6, retaining for backwards compatibility
baseType.Fields["WLANGroupID"] = NewFieldInfo("WLANGroupID", "wlangroup_id", "string", "", false, false)

View File

@@ -28,6 +28,7 @@ type User struct {
IP string `json:"ip,omitempty"` // non-generated field
Blocked bool `json:"blocked,omitempty"`
DevIdOverride int `json:"dev_id_override,omitempty"` // non-generated field
FixedIP string `json:"fixed_ip,omitempty"`
Hostname string `json:"hostname,omitempty"`
LastSeen int `json:"last_seen,omitempty"`

View File

@@ -131,6 +131,34 @@ func (c *Client) DeleteUserByMAC(ctx context.Context, site, mac string) error {
return nil
}
func (c *Client) OverrideUserFingerprint(ctx context.Context, site, mac string, devIdOveride int) error {
reqBody := map[string]interface{}{
"mac": mac,
"dev_id_override": devIdOveride,
"search_query": "",
}
var reqMethod string
if devIdOveride == 0 {
reqMethod = "DELETE"
} else {
reqMethod = "PUT"
}
var respBody struct {
Mac string `json:"mac"`
DevIdOverride int `json:"dev_id_override"`
SearchQuery string `json:"search_query"`
}
err := c.do(ctx, reqMethod, fmt.Sprintf("%s/site/%s/station/%s/fingerprint_override", c.apiV2Path, site, mac), reqBody, &respBody)
if err != nil {
return err
}
return nil
}
func (c *Client) ListUser(ctx context.Context, site string) ([]User, error) {
return c.listUser(ctx, site)
}