summaryrefslogtreecommitdiff
path: root/timer.go
diff options
context:
space:
mode:
Diffstat (limited to 'timer.go')
-rw-r--r--timer.go17
1 files changed, 13 insertions, 4 deletions
diff --git a/timer.go b/timer.go
index f215377..610de82 100644
--- a/timer.go
+++ b/timer.go
@@ -438,7 +438,16 @@ func (server *MyServer) handleDeleteTimer(w http.ResponseWriter, r *http.Request
}
}
-func (server *MyServer) handlePutTimer(w http.ResponseWriter, r *http.Request) {
+func parseNumber(s string) (int64, error) {
+ s = strings.TrimSpace(s)
+ if len(s) == 0 {
+ s = "0"
+ }
+
+ return strconv.ParseInt(s, 10, 64)
+}
+
+func (server *MyServer) handleCreateTimer(w http.ResponseWriter, r *http.Request) {
timerName := strings.TrimSpace(r.FormValue("timerName"))
user := server.findCurrentUser(w, r)
@@ -448,14 +457,14 @@ func (server *MyServer) handlePutTimer(w http.ResponseWriter, r *http.Request) {
return
}
- days, err := strconv.ParseInt(strings.TrimSpace(r.FormValue("days")), 10, 32)
+ days, err := parseNumber(r.FormValue("days"))
if err != nil {
w.WriteHeader(http.StatusBadRequest)
view.TimerCreateForm(timerName, "Error parsing days").Render(context.Background(), w)
return
}
- hours, err := strconv.ParseInt(strings.TrimSpace(r.FormValue("hours")), 10, 32)
+ hours, err := parseNumber(r.FormValue("hours"))
if err != nil {
w.WriteHeader(http.StatusBadRequest)
view.TimerCreateForm(timerName, "Error parsing hours").Render(context.Background(), w)
@@ -563,7 +572,7 @@ func main() {
http.HandleFunc("DELETE /timer/{timerId}", myServer.handleDeleteTimer)
http.HandleFunc("POST /timer/{timerId}/resetToken", myServer.handleResetTimerToken)
http.HandleFunc("GET /timer/{timerId}/token", myServer.handleGetTimerToken)
- http.HandleFunc("PUT /timer", myServer.handlePutTimer)
+ http.HandleFunc("PUT /timer", myServer.handleCreateTimer)
http.HandleFunc("GET /", myServer.handleMain)
log.Println("Started!")