Festum
9/9/2015 - 8:51 AM

mamon.go

package main

import (
	"github.com/codegangsta/negroni"
	"github.com/gorilla/pat"
	"github.com/unrolled/render"
	"encoding/json"
	"net/http"
	"strconv"
)

func main() {
	New()
}

func New() {
	mux := pat.New()
	r := render.New(render.Options{})
	out := map[string]string{}
	baseUrl := "http://aerial-valor-93012.appspot.com/challenge"


	resp, err := http.Get(baseUrl)
	if err != nil {
		out = map[string]string{"msg": err.Error()}
	}
	defer resp.Body.Close()


	pieceOfFood := struct{
		Token string
		Values []int
	}{}
	decoder := json.NewDecoder(resp.Body)
	err = decoder.Decode(&pieceOfFood)
	if err != nil {
		out = map[string]string{"msg": err.Error()}
	}

	sum := 0
	for _, v := range pieceOfFood.Values {
		sum += v
	}

	fResp, err := http.Get(baseUrl+"/"+pieceOfFood.Token+"/"+strconv.Itoa(sum))
	if err != nil {
		out = map[string]string{"msg": err.Error()}
	}
	defer fResp.Body.Close()


	food := struct{Answer string}{}
	decoder = json.NewDecoder(fResp.Body)
	err = decoder.Decode(&food)
	if err != nil {
		out = map[string]string{"msg": err.Error()}
	}
	out = map[string]string{"msg": food.Answer}


	mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) {
		r.JSON(w, 200, out)
		return
	})

	n := negroni.Classic()
	n.UseHandler(mux)
	n.Run(":3000")
}