Moved handling of string response to int using the existing emptyStringInt method as part of UnmarshalJSON as per Pauls suggestion

This commit is contained in:
Ben Davies
2020-10-09 15:27:46 +01:00
committed by Paul Tyng
parent e7f9c5eb97
commit df937016b0
3 changed files with 15 additions and 8 deletions

View File

@@ -11,6 +11,7 @@ func (dst *Network) UnmarshalJSON(b []byte) error {
aux := &struct {
VLAN emptyStringInt `json:"vlan"`
DHCPDLeaseTime emptyStringInt `json:"dhcpd_leasetime"`
WANEgressQOS emptyStringInt `json:"wan_egress_qos"`
*Alias
}{
@@ -24,6 +25,7 @@ func (dst *Network) UnmarshalJSON(b []byte) error {
dst.VLAN = int(aux.VLAN)
dst.DHCPDLeaseTime = int(aux.DHCPDLeaseTime)
dst.WANEgressQOS = int(aux.WANEgressQOS)
return nil
}

View File

@@ -38,6 +38,19 @@ func TestNetworkUnmarshalJSON(t *testing.T) {
expected: unifi.Network{DHCPDLeaseTime: 0},
json: `{ "dhcpd_leasetime": "" }`,
},
"int wan_egress_qos": {
expected: unifi.Network{WANEgressQOS: 1},
json: `{ "wan_egress_qos": 1 }`,
},
"string wan_egress_qos": {
expected: unifi.Network{WANEgressQOS: 1},
json: `{ "wan_egress_qos": "1" }`,
},
"empty string wan_egress_qos": {
expected: unifi.Network{WANEgressQOS: 0},
json: `{ "wan_egress_qos": "" }`,
},
} {
t.Run(n, func(t *testing.T) {
var actual unifi.Network