R/ServerData.R

Defines functions GetServerDataInRows CleanServerData

Documented in CleanServerData GetServerDataInRows

#' Reformat paginated data returned from the server.
#' @param serverData list. Raw JSON parsed list returned from the server.
CleanServerData <- function(serverData) {
  serverData$nextPage <- serverData$`next`
  serverData$previousPage <- serverData$previous
  serverData$`next` <- NULL
  serverData$previous <- NULL
  serverData
}


#' Handle server side pagination.
#' @inheritParams CleanServerData
#' @param batchSize integer. The number of requests per page to expect.
GetServerDataInRows <- function(serverData, batchSize = 50) {
  serverData <- CleanServerData(serverData)
  count <- serverData$count
  rows <- serverData$data
  n <- 0
  # Limit will still return a next page, so we ensure there is sufficient data to merit a next
  # page and that there is a next page, before paginating.
  while (length(serverData$data) >= batchSize && length(serverData$nextPage) > 0) {
    serverData <- DataRobotGET(serverData$nextPage, addUrl = FALSE, simplifyDataFrame = FALSE)
    serverData$nextPage <- serverData$`next`
    count <- count + serverData$count
    rows <- append(rows, serverData$data)
  }
  rows
}

Try the datarobot package in your browser

Any scripts or data that you put into this service are public.

datarobot documentation built on Nov. 3, 2023, 1:07 a.m.