fkoh111 / zzlite

Lite wrapper for the Zamzar API :package:
0 stars 0 forks source link

fix/dot_zz_paging #24

Closed fkoh111 closed 4 years ago

fkoh111 commented 4 years ago

Deal with paging for format..

fkoh111 commented 4 years ago

Workings on.... Potentially a function taken two params: content_flat and endpoint... Other stuff can be wrapped in other auxiliary functions as well....

    ## Dealing with paging for NULL origin  
    if (content_flat$paging$total_count > length(content_flat$data$name)) {
      did_paging <- TRUE

      init <- data.frame(target = content_flat$data$name,
                         stringsAsFactors = FALSE)

      counter <- ceiling(content_flat$paging$total_count / length(content_flat$data$name)) - 1

      for(i in 1:counter) {
        state_last_target <- content_flat$paging$last

        paged_endpoint <- httr::modify_url(endpoint, query = list(after=state_last_target))

        paged_response <- httr::GET(paged_endpoint,
                                    config = .zz_authenticate(usr)
        )

        paged_content <- httr::content(paged_response, as = "text", encoding = "UTF-8")
        content_flat <- jsonlite::fromJSON(paged_content, flatten = TRUE)

        temp <- data.frame(target = content_flat$data$name,
                           stringsAsFactors = FALSE)

        init <- rbind(init, temp)

      }
    }