|
|
@@ -16,16 +16,16 @@ object ResponseMetadata {
|
|
|
}
|
|
|
|
|
|
object Utils {
|
|
|
- def get_json(endpoint: String, params: Map[String, Any] = Map()) = {
|
|
|
+ def get_and_decode[T: Reader](
|
|
|
+ endpoint: String,
|
|
|
+ params: Map[String, Any] = Map()
|
|
|
+ ): T = {
|
|
|
+ println(endpoint, params)
|
|
|
val r = requests.get(
|
|
|
endpoint,
|
|
|
params = params.map({ case (k, v) => (k, v.toString()) })
|
|
|
)
|
|
|
-
|
|
|
- ujson.read(r.text())
|
|
|
- }
|
|
|
-
|
|
|
- def read[T: Reader](json: ujson.Value): T = {
|
|
|
+ val json = ujson.read(r.text())
|
|
|
upickle.default.read[T](json)
|
|
|
}
|
|
|
}
|
|
|
@@ -43,10 +43,10 @@ object GamesResponse {
|
|
|
"seasons[]" -> List(season).mkString(","),
|
|
|
"team_ids[]" -> team
|
|
|
)
|
|
|
- val json =
|
|
|
- Utils.get_json(endpoint, baseParams)
|
|
|
|
|
|
- val response: GamesResponse = upickle.default.read[GamesResponse](json)
|
|
|
+ val response: GamesResponse =
|
|
|
+ Utils.get_and_decode[GamesResponse](endpoint, baseParams)
|
|
|
+ println(response.meta)
|
|
|
response.data
|
|
|
})
|
|
|
}
|
|
|
@@ -59,8 +59,8 @@ object TeamsResponse {
|
|
|
|
|
|
val getTeams = {
|
|
|
val getDataFromPage = (page: Int) => {
|
|
|
- val json = Utils.get_json(endpoint, Map("page" -> page))
|
|
|
- val response: TeamsResponse = Utils.read[TeamsResponse](json)
|
|
|
+ val response: TeamsResponse =
|
|
|
+ Utils.get_and_decode[TeamsResponse](endpoint, Map("page" -> page))
|
|
|
|
|
|
val nextPage =
|
|
|
if (response.meta.current_page != response.meta.total_pages) {
|