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
|
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 {
|
func ParseAPISpace(apiCard APICard) Space {
|
||||||
ret := Space{}
|
ret := Space{}
|
||||||
ret.ID = SpaceID(apiCard.BindingValues.ID.StringValue)
|
ret.ID = SpaceID(apiCard.BindingValues.ID.StringValue)
|
||||||
|
@ -25,3 +25,18 @@ func TestParseSpace(t *testing.T) {
|
|||||||
assert.Equal(SpaceID("1YpKkZVyQjoxj"), space.ID)
|
assert.Equal(SpaceID("1YpKkZVyQjoxj"), space.ID)
|
||||||
assert.Equal("https://t.co/WBPAHNF8Om", space.ShortUrl)
|
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