diff --git a/news/handler/news.go b/news/handler/news.go index 57b8ad8..316c368 100644 --- a/news/handler/news.go +++ b/news/handler/news.go @@ -79,6 +79,17 @@ func (n *News) Headlines(ctx context.Context, req *pb.HeadlinesRequest, rsp *pb. date = req.Date } + var seen bool + for _, locale := range Locales { + if locale == req.Locale { + seen = true + break + } + } + if !seen { + return errors.BadRequest("news.headlines", "invalid locale") + } + vals := url.Values{} vals.Set("api_token", n.apiKey) vals.Set("locale", locale) diff --git a/news/handler/types.go b/news/handler/types.go new file mode 100644 index 0000000..200b340 --- /dev/null +++ b/news/handler/types.go @@ -0,0 +1,61 @@ +package handler + +var ( + Locales = []string{ + "ar", + "am", + "au", + "at", + "by", + "be", + "bo", + "br", + "bg", + "ca", + "cl", + "cn", + "co", + "hr", + "cz", + "ec", + "eg", + "fr", + "de", + "gr", + "hn", + "hk", + "in", + "id", + "ir", + "ie", + "il", + "it", + "jp", + "kr", + "mx", + "nl", + "nz", + "ni", + "pk", + "pa", + "pe", + "pl", + "pt", + "qa", + "ro", + "ru", + "sa", + "za", + "es", + "ch", + "sy", + "tw", + "th", + "tr", + "ua", + "gb", + "us", + "uy", + "ve", + } +)