-
Notifications
You must be signed in to change notification settings - Fork 12
/
api_instruments.R
37 lines (30 loc) · 1.14 KB
/
api_instruments.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#' RobinHood API: Instruments
#'
#' Backend function called by get_tag(), get_position(), watchlist(). Returns a list of instrument data.
#'
#' @param RH object of class RobinHood
#' @param symbol (string) a single symbol
#' @param instrument_url (string) instrument url
#' @import httr magrittr
#' @export
api_instruments <- function(RH, symbol = NULL, instrument_url = NULL) {
if (is.null(instrument_url) == TRUE) {
url <- paste(RobinHood::api_endpoints("instruments"), "?symbol=", symbol, sep = "")
} else {
url <- instrument_url
}
token <- paste("Bearer", RH$api_response.access_token)
# GET call
dta <- GET(url,
add_headers("Accept" = "application/json",
"Content-Type" = "application/json",
"Authorization" = token))
httr::stop_for_status(dta)
# Format return
dta <- RobinHood::mod_json(dta, "fromJSON")
dta <- as.list(dta)
dta$margin_initial_ratio <- as.numeric(dta$margin_initial_ratio)
dta$maintenance_ratio <- as.numeric(dta$maintenance_ratio)
dta$day_trade_ratio <- as.numeric(dta$day_trade_ratio)
return(dta)
}