Add helper function to format Space duration
This commit is contained in:
parent
b805b3d1c4
commit
a12dcae4e4
@ -26,6 +26,18 @@ type Space struct {
|
||||
IsDetailsFetched bool
|
||||
}
|
||||
|
||||
func (space Space) FormatDuration() string {
|
||||
duration := space.EndedAt.Time.Sub(space.StartedAt.Time) / 1000
|
||||
h := int(duration.Hours())
|
||||
m := int(duration.Minutes()) % 60
|
||||
s := int(duration.Seconds()) % 60
|
||||
|
||||
if h != 0 {
|
||||
return fmt.Sprintf("%dh%02dm", h, m)
|
||||
}
|
||||
return fmt.Sprintf("%dm%02ds", m, s)
|
||||
}
|
||||
|
||||
func ParseAPISpace(apiCard APICard) Space {
|
||||
ret := Space{}
|
||||
ret.ID = SpaceID(apiCard.BindingValues.ID.StringValue)
|
||||
|
@ -25,3 +25,18 @@ func TestParseSpace(t *testing.T) {
|
||||
assert.Equal(SpaceID("1YpKkZVyQjoxj"), space.ID)
|
||||
assert.Equal("https://t.co/WBPAHNF8Om", space.ShortUrl)
|
||||
}
|
||||
|
||||
func TestFormatSpaceDuration(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
s := Space{
|
||||
StartedAt: TimestampFromUnix(1000 * 1000),
|
||||
EndedAt: TimestampFromUnix(5000 * 1000),
|
||||
}
|
||||
assert.Equal(s.FormatDuration(), "1h06m")
|
||||
|
||||
s.EndedAt = TimestampFromUnix(500000 * 1000)
|
||||
assert.Equal(s.FormatDuration(), "138h36m")
|
||||
|
||||
s.EndedAt = TimestampFromUnix(1005 * 1000)
|
||||
assert.Equal(s.FormatDuration(), "0m05s")
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user