R/escalar_time.R

Defines functions escalar_time

Documented in escalar_time

#' Escala um time válido para a conta.
#'
#' @param token Um token de autenticação, retornado pela função
#' \code{\link{login}}.
#' @param time Um time válido. Deve ser um data.frame ou tibble com as colunas:
#' id: o número identificador do jogador;
#' posicao: o número identificador da posição do jogador;
#' capitao: um vetor lógico indicando o capitão.
#' O id dos jogadores e a formação devem ser válidos. Além disso, a conta deve
#' ter cartoletas o suficiente para escalar o time.
#' @return TRUE quando o time é válido e FALSE se o time não é válido.
#' @seealso \code{\link{aleatorizar_time}} aleatoriza um time válido.
#' @seealso \code{\link{login}} retorna um token de autenticação.
#' @seealso \code{\link{pegar_cartoletas}} retorna as cartoletas da conta.
#' @import httr
#' @import jsonlite
#' @import magrittr
#' @import dplyr
#' @import purrr
#' @examples
#' time_valido <- aleatorizar_time()
#'
#' login("nome@email.com", "senha") %>%
#'  escalar_time(time_valido)
#' @export
escalar_time <- function(token, time) {
  atletas <- pull(time, id) %>% as.character() %>% as.numeric()
  capitao <- filter(time, capitao) %>% pull(id)
  formacao <-
    time %>%
    group_by(posicao) %>%
    summarise(x = n()) %>%
    pull(x) %>%
    converter_formacao()
  escalacao <- POST(
    url = "https://api.cartolafc.globo.com/auth/time/salvar",
    body =
      toJSON(
        list(
          esquema = formacao,
          atletas = atletas,
          capitao = capitao
        ),
        auto_unbox = TRUE
      ),
    add_headers(
      .headers = c('X-GLB-Token' = token)
    )
  )
  mensagem <- parse_json(escalacao) %>% pluck(1)
  if (mensagem == "Time Escalado! Boa Sorte!") TRUE else FALSE
}
assuncaolfi/cartolr documentation built on July 12, 2019, 4:16 a.m.