def competitions()

in src/main/scala/pa/PaClient.scala [23:48]


  def competitions(implicit context: ExecutionContext): Future[List[Season]] =
    get(s"/competitions/competitions/$apiKey").map(interceptErrors).map(parseCompetitions)

  def matchInfo(id: String)(implicit context: ExecutionContext): Future[MatchDay] =
    get(s"/match/info/$apiKey/$id").map(interceptErrors).map(parseMatchInfo)

  def matchEvents(id: String)(implicit context: ExecutionContext): Future[Option[MatchEvents]] =
    get(s"/match/events/$apiKey/$id").map(interceptErrors).map(parseMatchEvents)

  def matchStats(id: String)(implicit context: ExecutionContext): Future[Seq[MatchStats]] =
    get(s"/match/stats/$apiKey/$id").map(interceptErrors).map(parseMatchStats)

  def lineUp(id: String)(implicit context: ExecutionContext): Future[LineUp] = get(s"/match/lineUps/$apiKey/$id").map(interceptErrors).map(parseLineUp)

  def matchDay(date: LocalDate)(implicit context: ExecutionContext): Future[List[MatchDay]] =
    get(s"/competitions/matchDay/$apiKey/${date.format(formatter)}").map(interceptErrors).map(parseMatchDay)
  def matchDay(competitionId: String, date: LocalDate)(implicit context: ExecutionContext): Future[List[MatchDay]] =
    get(s"/competition/matchDay/$apiKey/$competitionId/${date.format(formatter)}").map(interceptErrors).map(parseMatchDay)

  def results(start: LocalDate)(implicit context: ExecutionContext): Future[List[Result]] = resultsAll(start, None)
  def results(start: LocalDate, end: LocalDate)(implicit context: ExecutionContext): Future[List[Result]] = resultsAll(start, Some(end))

  private def resultsAll(start: LocalDate, end: Option[LocalDate] = None)(implicit context: ExecutionContext): Future[List[Result]] = {
    val dateStr = start.format(formatter) + (end map { e => s"/${e.format(formatter)}"} getOrElse "")
    get(s"/competitions/results/$apiKey/$dateStr").map(interceptErrors).map(parseResults)
  }