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 {
ID string `json:"id"`
ExpiresAt time.Time `json:"expires_at"`
ExpiresAt *time.Time `json:"expires_at"`
Expired bool `json:"expired"`
Multiple bool `json:"multiple"`
VotesCount int64 `json:"votes_count"`

View file

@ -197,11 +197,19 @@ func DurToStr(dur time.Duration) 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 {
return DurToStr(time.Until(t))
d := time.Until(t)
if d < 0 {
d = 0
}
return DurToStr(d)
}
func FormatTimeRFC3339(t time.Time) string {

View file

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