From d4a9537b5671fafe04335b9f91c5d5869d4a2358 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Sun, 4 Jun 2017 00:38:28 +0200 Subject: Move HTTP response body errors into http.go Take the errors in `main()` that check the response body contents for known error strings and put them in their respective functions in "timetask/http.go". Didn't really make sense to me that these functions were returning HTTP responses that we weren't really using in a meaningful way. Instead they should just do their thing and let us know if there was a problem. That includes checking to see if there were any non-standard errors, like the ones we had custom-built. Now all that handling and error-making is self-contained, which feels much nicer. --- main.go | 26 ++------------------------ 1 file changed, 2 insertions(+), 24 deletions(-) (limited to 'main.go') diff --git a/main.go b/main.go index 1521821..2f37632 100644 --- a/main.go +++ b/main.go @@ -2,9 +2,7 @@ package main import ( "fmt" - "io/ioutil" "os" - "strings" "time" "github.com/teddywing/timetasker/timetask" @@ -93,22 +91,12 @@ func main() { password, err := passwordCmd(config.Auth.PasswordCmd) kingpin.FatalIfError(err, "password command failed") - resp, client, err := timetask.Login( + client, err := timetask.Login( config.Auth.Username, password, ) kingpin.FatalIfError(err, "login request failed") - defer resp.Body.Close() - body, err := ioutil.ReadAll(resp.Body) - if strings.Contains( - string(body), - "The username and password don't appear to be valid.", - ) { - kingpin.Errorf("TimeTask authentication failed") - os.Exit(1) - } - // List modules if *list_modules { modules, err := timetask.RequestModules(*client, time_entry) @@ -118,16 +106,6 @@ func main() { os.Exit(0) } - resp, err = timetask.SubmitTimeEntry(*client, time_entry) + err = timetask.SubmitTimeEntry(*client, time_entry) kingpin.FatalIfError(err, "time entry submission request failed") - - defer resp.Body.Close() - body, err = ioutil.ReadAll(resp.Body) - if strings.Contains( - string(body), - "No time entries were created.", - ) { - kingpin.Errorf("time entry creation failed") - os.Exit(1) - } } -- cgit v1.2.3