Ver código fonte

New complete `get_and_decode` function

theenglishway (time) 2 anos atrás
pai
commit
62fcf8c246
1 arquivos alterados com 11 adições e 11 exclusões
  1. 11 11
      src/main/scala/BallDontLie.scala

+ 11 - 11
src/main/scala/BallDontLie.scala

@@ -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) {