Skip to content

Commit e978676

Browse files
committed
safer attribute casting.
1 parent c3a0fb7 commit e978676

File tree

1 file changed

+19
-3
lines changed
  • webapp/backend/pkg/models/measurements

1 file changed

+19
-3
lines changed

webapp/backend/pkg/models/measurements/smart.go

+19-3
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,27 @@ func NewSmartFromInfluxDB(attrs map[string]interface{}) (*Smart, error) {
6464
for key, val := range attrs {
6565
switch key {
6666
case "temp":
67-
sm.Temp = val.(int64)
67+
temp, tempOk := val.(int64)
68+
if tempOk {
69+
sm.Temp = temp
70+
} else {
71+
log.Printf("unable to parse temp information: %v", val)
72+
}
73+
6874
case "power_on_hours":
69-
sm.PowerOnHours = val.(int64)
75+
powerOn, powerOnOk := val.(int64)
76+
if powerOnOk {
77+
sm.PowerOnHours = powerOn
78+
} else {
79+
log.Printf("unable to parse power_on_hours information: %v", val)
80+
}
7081
case "power_cycle_count":
71-
sm.PowerCycleCount = val.(int64)
82+
powerCycle, powerCycleOk := val.(int64)
83+
if powerCycleOk {
84+
sm.PowerCycleCount = powerCycle
85+
} else {
86+
log.Printf("unable to parse power_cycle_count information: %v", val)
87+
}
7288
default:
7389
// this key is unknown.
7490
if !strings.HasPrefix(key, "attr.") {

0 commit comments

Comments
 (0)