Skip to content

Commit 4807cdf

Browse files
committed
refactoring
1 parent 6cb9985 commit 4807cdf

File tree

1 file changed

+20
-20
lines changed

1 file changed

+20
-20
lines changed

internal/ota-api/dto.go

+20-20
Original file line numberDiff line numberDiff line change
@@ -144,17 +144,19 @@ func (r OtaStatusDetail) String() string {
144144
return "No OTA found"
145145
}
146146
t := table.New()
147-
hasErrorReason := r.Ota.ErrorReason != ""
148147

149-
if hasErrorReason {
148+
succeeded := strings.ToLower(r.Ota.Status) == "succeeded"
149+
hasError := r.Ota.ErrorReason != "" || !succeeded
150+
151+
if hasError {
150152
t.SetHeader("Device ID", "Ota ID", "Status", "Started At", "Ended At", "Error Reason", "Retry Attempt")
151153
} else {
152154
t.SetHeader("Device ID", "Ota ID", "Status", "Started At", "Ended At")
153155
}
154156

155157
// Now print the table
156158
line := []any{r.Ota.DeviceID, r.Ota.ID, r.Ota.MapStatus(), formatHumanReadableTs(r.Ota.StartedAt), formatHumanReadableTs(r.Ota.EndedAt)}
157-
if hasErrorReason {
159+
if hasError {
158160
line = append(line, r.Ota.ErrorReason)
159161
line = append(line, strconv.FormatInt(r.RetryAttempt, 10))
160162
}
@@ -163,31 +165,22 @@ func (r OtaStatusDetail) String() string {
163165
output := t.Render()
164166

165167
// Add details
166-
containsFlashState := false
167-
firstTS := ""
168168
if len(r.Details) > 0 {
169169
t = table.New()
170170
t.SetHeader("Time", "Status", "Detail")
171171
fwSize := int64(0)
172172
if r.FirmwareSize > 0 {
173173
fwSize = r.FirmwareSize
174174
}
175-
for _, s := range r.Details {
176-
if upperCaseFirst(s.State) == "Flash" {
177-
containsFlashState = true
178-
}
179-
if firstTS == "" {
180-
firstTS = formatHumanReadableTs(s.Timestamp)
181-
}
182-
}
183-
if !containsFlashState && !hasErrorReason {
175+
176+
firstTS := formatHumanReadableTs(r.Details[0].Timestamp)
177+
if !containsResetState(r.Details) && !hasError {
184178
t.AddRow(firstTS, "Flash", "")
185-
if fwSize > 0 {
186-
t.AddRow(firstTS, "Fetch", formatStateData("fetch", strconv.Itoa(int(fwSize)), fwSize, true))
187-
}
188179
}
180+
181+
hasReachedFlashState := hasReachedFlashState(r.Details, succeeded)
189182
for _, s := range r.Details {
190-
stateData := formatStateData(s.State, s.StateData, fwSize, hasReachedFlashState(r.Details))
183+
stateData := formatStateData(s.State, s.StateData, fwSize, hasReachedFlashState)
191184
t.AddRow(formatHumanReadableTs(s.Timestamp), upperCaseFirst(s.State), stateData)
192185
}
193186

@@ -197,9 +190,16 @@ func (r OtaStatusDetail) String() string {
197190
return output
198191
}
199192

200-
func hasReachedFlashState(states []State) bool {
193+
func hasReachedFlashState(states []State, succeeded bool) bool {
194+
if succeeded {
195+
return true
196+
}
197+
return containsResetState(states)
198+
}
199+
200+
func containsResetState(states []State) bool {
201201
for _, s := range states {
202-
if s.State == "flash" || s.State == "reboot" {
202+
if strings.ToLower(s.State) == "flash" || strings.ToLower(s.State) == "reboot" {
203203
return true
204204
}
205205
}

0 commit comments

Comments
 (0)