#' @title **NHL Teams Roster**
#' @description Returns NHL Teams roster information for a given team ID
#' @param team_id A unique team ID
#' @param season season in format XXXXYYYY
#' @return Returns a tibble
#' @keywords NHL Teams Roster
#' @import rvest
#' @importFrom rlang .data
#' @importFrom jsonlite fromJSON toJSON
#' @importFrom dplyr mutate filter select rename bind_cols bind_rows
#' @importFrom tidyr unnest unnest_wider everything
#' @importFrom janitor clean_names
#' @export
#' @examples
#' \donttest{
#' try(nhl_teams_roster(team_id = 14, season = 20202021))
#' }
nhl_teams_roster <- function(team_id, season=most_recent_nhl_season_api_param()){
base_url <- "https://statsapi.web.nhl.com/api/v1/teams/"
full_url <- paste0(base_url,
team_id,
"/roster",
"?season=",
season)
res <- httr::RETRY("GET", full_url)
# Check the result
check_status(res)
tryCatch(
expr = {
resp <- res %>%
httr::content(as = "text", encoding = "UTF-8")
teams_df <- jsonlite::fromJSON(resp)[["roster"]]
teams_df <- jsonlite::fromJSON(jsonlite::toJSON(teams_df),flatten=TRUE)
teams_df <- teams_df %>%
dplyr::rename(
"player_id" = "person.id",
"player_full_name" = "person.fullName",
"player_link" = "person.link") %>%
janitor::clean_names() %>%
dplyr::mutate(
team_id = team_id,
season = season) %>%
make_fastRhockey_data("NHL Teams Roster Information from NHL.com",Sys.time())
},
error = function(e) {
message(glue::glue("{Sys.time()}: Invalid arguments or no team roster data for {team_id} available!"))
},
warning = function(w) {
},
finally = {
}
)
return(teams_df)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.