minor refactoring; update README example to actual fizz-buzz
This commit is contained in:
@@ -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:
|
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:
|
fizzbuzz-lbc expects 5 parameters:
|
||||||
|
|
||||||
|
|||||||
@@ -16,12 +16,13 @@ func (in *inputs) generateFizzbuzz() []string {
|
|||||||
return out
|
return out
|
||||||
}
|
}
|
||||||
for j := 1; j <= in.limit; j++ {
|
for j := 1; j <= in.limit; j++ {
|
||||||
|
multipleOf1, multipleOf2 := isAMultiple(j, in.int1), isAMultiple(j, in.int2)
|
||||||
switch {
|
switch {
|
||||||
case isAMultiple(j, in.int1) && isAMultiple(j, in.int2):
|
case multipleOf1 && multipleOf2:
|
||||||
out = append(out, in.string1+in.string2)
|
out = append(out, in.string1+in.string2)
|
||||||
case isAMultiple(j, in.int1):
|
case multipleOf1:
|
||||||
out = append(out, in.string1)
|
out = append(out, in.string1)
|
||||||
case isAMultiple(j, in.int2):
|
case multipleOf2:
|
||||||
out = append(out, in.string2)
|
out = append(out, in.string2)
|
||||||
default:
|
default:
|
||||||
out = append(out, fmt.Sprint(j))
|
out = append(out, fmt.Sprint(j))
|
||||||
|
|||||||
@@ -32,15 +32,15 @@ func (s *Server) handleFizzBuzz(w http.ResponseWriter, r *http.Request) {
|
|||||||
in.string2 = r.URL.Query().Get("string2")
|
in.string2 = r.URL.Query().Get("string2")
|
||||||
|
|
||||||
var err error
|
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)
|
http.Error(w, err.Error(), http.StatusBadRequest)
|
||||||
return
|
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)
|
http.Error(w, err.Error(), http.StatusBadRequest)
|
||||||
return
|
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)
|
http.Error(w, err.Error(), http.StatusBadRequest)
|
||||||
return
|
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 != "" {
|
if param := url.Query().Get(paramName); param != "" {
|
||||||
intParam, err := strconv.Atoi(param)
|
intParam, err := strconv.Atoi(param)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user