aboutsummaryrefslogtreecommitdiffstats
path: root/timetask/http.go
diff options
context:
space:
mode:
authorTeddy Wing2017-06-03 17:25:26 +0200
committerTeddy Wing2017-06-03 17:25:26 +0200
commite8bee60ed342ab4df93bf2fb582706ad7fd42546 (patch)
treeb0115143781eb18d71b2496c04e0bfb1b28432b6 /timetask/http.go
parent341e22ef6b8290bba8ba43ecddb9f1175b3cafb9 (diff)
downloadtimetasker-e8bee60ed342ab4df93bf2fb582706ad7fd42546.tar.bz2
Change `TimeEntry.Time` to a `float64`
I had forgotten that time spent can be a decimal. Make this field a float and change related code accordingly: * --time flag * `NewTimeEntry()` `time` argument * `buildSubmissionParams()` can't use `strconv.Itoa` as that's an integer function. Instead we use `FormatFloat`. Truncate time parsing to two decimal places because to me that seems like enough. Who's going to say they spent `0.324` hours on something? Also, in order to be able to properly submit values to TimeTask (at least on the edition I use), the times must be written in European/French format, with commas (`,`) as decimal separators. Do a string replace to get this, as the float formatter will give us a period (`.`) separator.
Diffstat (limited to 'timetask/http.go')
-rw-r--r--timetask/http.go5
1 files changed, 4 insertions, 1 deletions
diff --git a/timetask/http.go b/timetask/http.go
index 6e73276..f236665 100644
--- a/timetask/http.go
+++ b/timetask/http.go
@@ -5,6 +5,7 @@ import (
"net/http/cookiejar"
"net/url"
"strconv"
+ "strings"
"golang.org/x/net/publicsuffix"
)
@@ -97,9 +98,11 @@ func buildSubmissionParams(time_entry TimeEntry) url.Values {
time_entry.Date.Format("02/01/06"), // day/month/year
)
+ time_str := strconv.FormatFloat(time_entry.Time, 'f', 2, 64)
+ time_european_format := strings.Replace(time_str, ".", ",", 0)
v.Set(
"f_time0",
- strconv.Itoa(time_entry.Time),
+ time_european_format,
)
var billable string