Fix time duration value

- Make sure that duration is not < 0
- Handle nil ExpiresAt time in poll
This commit is contained in:
r 2020-02-19 16:33:21 +00:00
parent fe31d4197b
commit dd23ac4867
3 changed files with 12 additions and 4 deletions

View file

@ -10,7 +10,7 @@ import (
type Poll struct { type Poll struct {
ID string `json:"id"` ID string `json:"id"`
ExpiresAt time.Time `json:"expires_at"` ExpiresAt *time.Time `json:"expires_at"`
Expired bool `json:"expired"` Expired bool `json:"expired"`
Multiple bool `json:"multiple"` Multiple bool `json:"multiple"`
VotesCount int64 `json:"votes_count"` VotesCount int64 `json:"votes_count"`

View file

@ -197,11 +197,19 @@ func DurToStr(dur time.Duration) string {
} }
func TimeSince(t time.Time) string { func TimeSince(t time.Time) string {
return DurToStr(time.Since(t)) d := time.Since(t)
if d < 0 {
d = 0
}
return DurToStr(d)
} }
func TimeUntil(t time.Time) string { func TimeUntil(t time.Time) string {
return DurToStr(time.Until(t)) d := time.Until(t)
if d < 0 {
d = 0
}
return DurToStr(d)
} }
func FormatTimeRFC3339(t time.Time) string { func FormatTimeRFC3339(t time.Time) string {

View file

@ -126,7 +126,7 @@
<span>{{.Poll.VotesCount}} votes</span> <span>{{.Poll.VotesCount}} votes</span>
{{if .Poll.Expired}} {{if .Poll.Expired}}
<span> - poll expired </span> <span> - poll expired </span>
{{else}} {{else if .Poll.ExpiresAt}}
<span> <span>
- poll ends in - poll ends in
<time datetime="{{FormatTimeRFC3339 .Poll.ExpiresAt}}" title="{{FormatTimeRFC822 .Poll.ExpiresAt}}"> <time datetime="{{FormatTimeRFC3339 .Poll.ExpiresAt}}" title="{{FormatTimeRFC822 .Poll.ExpiresAt}}">