package client import ( "../config" "encoding/json" "io/ioutil" "log" "net/http" "strconv" ) func GetByCityName(city string) WeatherResponse { return get("https://api.openweathermap.org/data/2.5/weather?q=" + city) } func GetByCoordinates(longitude, latitude float64) WeatherResponse { return get("https://api.openweathermap.org/data/2.5/weather?lat=" + strconv.FormatFloat(latitude, 'f', 6, 32) + "&lon=" + strconv.FormatFloat(longitude, 'f', 6, 32)) } func GetByZipCode(zip int, country string) WeatherResponse { return get("https://api.openweathermap.org/data/2.5/weather?zip=" + string(zip) + "," + country) } func get(url string) WeatherResponse { var configuration = config.LoadConfiguration() response, err := http.Get(url + "&appid=" + configuration.ApiKey + "&lang=" + configuration.Language + "&units=" + configuration.Units) if err != nil { log.Fatal(err) } responseData, err := ioutil.ReadAll(response.Body) if err != nil { log.Fatal(err) } var responseObject WeatherResponse err = json.Unmarshal(responseData, &responseObject) if err != nil { log.Fatal(err) } return responseObject }