R/voting_policies.R

#' Отримайте короткий опис політики
#'
#' @param id Вектор, який містить id депутата (має складатись щонайменше з одного елементу). За замовчуванням має значення '2524', що відповідає першому за алфавітом нардепу - Олександру Абдулліну
#'
#' @param key Ваш персональний ключ API, отриманий на rada4you.org
#'
#' @return Датафрейм, що складається з шести змінних для кожного депутата: id, mp, party, rebellions, attended, possible
#'
#' @export
#' 

voting_policies <- function(id = 4896, key) {
  
  voting <- data.frame()
  for(i in id) {
    
    request <- httr::GET(url = "https://rada4you.org/",
                         path = paste0("api/v1/divisions//", i, ".json"),
                         query = list(key = key))
    
    if(httr::status_code(request) != 200) {
        message(paste('Помилка. Код відповіді сервера: '), httr::status_code(request))
      
    } else {
      
      response <- httr::content(request, as = 'text')
      
      json <- jsonlite::fromJSON(response)
      
      print(request)
      
      null <- function(x) {
        if( 
          is.null(x)
          )
          return("NA")
        return( x )
      }
      
      votes <- data.frame(
        id = json$id,
        name = json$name,
        date = json$date,
        bill_number = null(paste0("№",json$bills$official_id)),
        policy_id = null(json$policy_divisions$policy$id),
        policy_name = null(json$policy_divisions$policy$name),
        description = null(json$policy_divisions$policy$description),
        provisional = null(json$policy_divisions$policy$provisional),
        vote = null(json$policy_divisions$vote),
        strong = null(json$policy_divisions$strong),
        
        stringsAsFactors = F)
      
      voting <- rbind.data.frame(voting, votes)
      
      voting$date <- as.Date(voting$date)
    }
    
  }
  
  
  return(voting)
  
}
savchukidze/rada4you1 documentation built on May 9, 2019, 7:38 a.m.