36 lines
712 B
Go
36 lines
712 B
Go
package data
|
|
|
|
import (
|
|
"encoding/json"
|
|
"io/ioutil"
|
|
"strings"
|
|
)
|
|
|
|
// ReadCities opens the file "data/cities.json" and reads it into a map
|
|
func ReadCities() (map[string]*City, error) {
|
|
cities := make(map[string]*City)
|
|
|
|
buf, err := ioutil.ReadFile("data/cities.json")
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
err = json.Unmarshal(buf, &cities)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return cities, nil
|
|
}
|
|
|
|
func extendName(names ...string) string {
|
|
return strings.Join(names, ", ")
|
|
}
|
|
|
|
// FullName returns a fully qualified human readable name
|
|
func (c City) FullName() string {
|
|
if len(c.Admin1.Name) > 0 {
|
|
return extendName(c.Name, c.Admin1.Name, c.Country.Name)
|
|
}
|
|
return extendName(c.Name, c.Country.Name)
|
|
}
|