Add helper function to format Space duration

This commit is contained in:
Alessio 2023-08-18 18:59:15 -03:00
parent b805b3d1c4
commit a12dcae4e4
2 changed files with 27 additions and 0 deletions

View File

@ -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)

View File

@ -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")
}