mirror of
https://github.com/muety/wakapi.git
synced 2023-08-10 21:12:56 +03:00
fix: json serialization error when percentage is nan
This commit is contained in:
parent
67a59561c8
commit
c575b2fd5c
@ -158,13 +158,17 @@ func convertEntry(e *models.SummaryItem, entityTotal time.Duration) *summariesEn
|
|||||||
hrs := int(total.Hours())
|
hrs := int(total.Hours())
|
||||||
mins := int((total - time.Duration(hrs)*time.Hour).Minutes())
|
mins := int((total - time.Duration(hrs)*time.Hour).Minutes())
|
||||||
secs := int((total - time.Duration(hrs)*time.Hour - time.Duration(mins)*time.Minute).Seconds())
|
secs := int((total - time.Duration(hrs)*time.Hour - time.Duration(mins)*time.Minute).Seconds())
|
||||||
|
percentage := math.Round((total.Seconds()/entityTotal.Seconds())*1e4) / 100
|
||||||
|
if math.IsNaN(percentage) || math.IsInf(percentage, 0) {
|
||||||
|
percentage = 0
|
||||||
|
}
|
||||||
|
|
||||||
return &summariesEntry{
|
return &summariesEntry{
|
||||||
Digital: fmt.Sprintf("%d:%d:%d", hrs, mins, secs),
|
Digital: fmt.Sprintf("%d:%d:%d", hrs, mins, secs),
|
||||||
Hours: hrs,
|
Hours: hrs,
|
||||||
Minutes: mins,
|
Minutes: mins,
|
||||||
Name: e.Key,
|
Name: e.Key,
|
||||||
Percent: math.Round((total.Seconds()/entityTotal.Seconds())*1e4) / 100,
|
Percent: percentage,
|
||||||
Seconds: secs,
|
Seconds: secs,
|
||||||
Text: utils.FmtWakatimeDuration(total),
|
Text: utils.FmtWakatimeDuration(total),
|
||||||
TotalSeconds: total.Seconds(),
|
TotalSeconds: total.Seconds(),
|
||||||
|
@ -2,6 +2,7 @@ package utils
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -9,7 +10,7 @@ func RespondJSON(w http.ResponseWriter, status int, object interface{}) {
|
|||||||
w.Header().Set("Content-Type", "application/json")
|
w.Header().Set("Content-Type", "application/json")
|
||||||
w.WriteHeader(status)
|
w.WriteHeader(status)
|
||||||
if err := json.NewEncoder(w).Encode(object); err != nil {
|
if err := json.NewEncoder(w).Encode(object); err != nil {
|
||||||
w.WriteHeader(http.StatusInternalServerError)
|
log.Printf("error while writing json response: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user