From b5b284b8c8ae5576632c9c16c52a12c332e9bb5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois-Xavier=20Aguessy?= Date: Mon, 5 Mar 2018 08:19:27 +0100 Subject: [PATCH] minor refactoring; update README example to actual fizz-buzz --- README.md | 2 +- fizzbuzz/fizzbuzz.go | 7 ++++--- fizzbuzz/server.go | 8 ++++---- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 32a6b5d..ebf2c41 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ or you can run it in the source folder by running Then, you can query the server via http, providing the required parameters: - $ curl 'http://localhost:8080/?string1=a&string2=b&int1=3&int2=2&limit=14' + $ curl 'http://localhost:8080/?string1=fizz&string2=buzz&int1=3&int2=5&limit=100' fizzbuzz-lbc expects 5 parameters: diff --git a/fizzbuzz/fizzbuzz.go b/fizzbuzz/fizzbuzz.go index 478f6f8..f0d5745 100644 --- a/fizzbuzz/fizzbuzz.go +++ b/fizzbuzz/fizzbuzz.go @@ -16,12 +16,13 @@ func (in *inputs) generateFizzbuzz() []string { return out } for j := 1; j <= in.limit; j++ { + multipleOf1, multipleOf2 := isAMultiple(j, in.int1), isAMultiple(j, in.int2) switch { - case isAMultiple(j, in.int1) && isAMultiple(j, in.int2): + case multipleOf1 && multipleOf2: out = append(out, in.string1+in.string2) - case isAMultiple(j, in.int1): + case multipleOf1: out = append(out, in.string1) - case isAMultiple(j, in.int2): + case multipleOf2: out = append(out, in.string2) default: out = append(out, fmt.Sprint(j)) diff --git a/fizzbuzz/server.go b/fizzbuzz/server.go index 72ccd47..44ee52a 100644 --- a/fizzbuzz/server.go +++ b/fizzbuzz/server.go @@ -32,15 +32,15 @@ func (s *Server) handleFizzBuzz(w http.ResponseWriter, r *http.Request) { in.string2 = r.URL.Query().Get("string2") var err error - if in.int1, err = parseInt(r.URL, "int1"); err != nil { + if in.int1, err = parseIntFromURL(r.URL, "int1"); err != nil { http.Error(w, err.Error(), http.StatusBadRequest) return } - if in.int2, err = parseInt(r.URL, "int2"); err != nil { + if in.int2, err = parseIntFromURL(r.URL, "int2"); err != nil { http.Error(w, err.Error(), http.StatusBadRequest) return } - if in.limit, err = parseInt(r.URL, "limit"); err != nil { + if in.limit, err = parseIntFromURL(r.URL, "limit"); err != nil { http.Error(w, err.Error(), http.StatusBadRequest) return } @@ -51,7 +51,7 @@ func (s *Server) handleFizzBuzz(w http.ResponseWriter, r *http.Request) { } } -func parseInt(url *url.URL, paramName string) (int, error) { +func parseIntFromURL(url *url.URL, paramName string) (int, error) { if param := url.Query().Get(paramName); param != "" { intParam, err := strconv.Atoi(param) if err != nil {