snaptrade 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (422) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +10 -0
  3. data/Gemfile.lock +84 -0
  4. data/README.md +254 -0
  5. data/Rakefile +10 -0
  6. data/docs/APIStatusApi.md +57 -0
  7. data/docs/Account.md +36 -0
  8. data/docs/AccountHoldings.md +24 -0
  9. data/docs/AccountHoldingsAccount.md +26 -0
  10. data/docs/AccountInformationApi.md +535 -0
  11. data/docs/AccountOrderRecord.md +52 -0
  12. data/docs/AccountOrderRecordStatus.md +15 -0
  13. data/docs/AccountSimple.md +24 -0
  14. data/docs/AccountSyncStatus.md +18 -0
  15. data/docs/Action.md +15 -0
  16. data/docs/AuthType.md +15 -0
  17. data/docs/AuthenticationApi.md +314 -0
  18. data/docs/AuthenticationLoginSnapTradeUser200Response.md +49 -0
  19. data/docs/Balance.md +20 -0
  20. data/docs/Brokerage.md +52 -0
  21. data/docs/BrokerageAuthorization.md +34 -0
  22. data/docs/BrokerageAuthorizationType.md +18 -0
  23. data/docs/BrokerageAuthorizationTypeReadOnly.md +24 -0
  24. data/docs/BrokerageAuthorizationTypeReadOnlyBrokerage.md +22 -0
  25. data/docs/BrokerageAuthorizationTypeReadOnlyType.md +15 -0
  26. data/docs/BrokerageAuthorizationTypeType.md +15 -0
  27. data/docs/BrokerageSymbol.md +26 -0
  28. data/docs/BrokerageType.md +20 -0
  29. data/docs/CalculatedTrade.md +20 -0
  30. data/docs/CashRestriction.md +26 -0
  31. data/docs/ConnectionType.md +15 -0
  32. data/docs/ConnectionsApi.md +265 -0
  33. data/docs/ConnectionsSessionEvents200ResponseInner.md +30 -0
  34. data/docs/Currency.md +22 -0
  35. data/docs/DeleteUserResponse.md +20 -0
  36. data/docs/DividendAtDate.md +22 -0
  37. data/docs/EncryptedResponse.md +20 -0
  38. data/docs/EncryptedResponseEncryptedMessageData.md +22 -0
  39. data/docs/ErrorLogsApi.md +68 -0
  40. data/docs/Exchange.md +32 -0
  41. data/docs/ExchangeRatePairs.md +22 -0
  42. data/docs/ExcludedAsset.md +18 -0
  43. data/docs/JWT.md +18 -0
  44. data/docs/LoginRedirectURI.md +20 -0
  45. data/docs/ManualTrade.md +32 -0
  46. data/docs/ManualTradeAndImpact.md +22 -0
  47. data/docs/ManualTradeBalance.md +22 -0
  48. data/docs/ManualTradeForm.md +32 -0
  49. data/docs/ManualTradeSymbol.md +28 -0
  50. data/docs/Model400FailedRequestResponse.md +20 -0
  51. data/docs/Model401FailedRequestResponse.md +20 -0
  52. data/docs/Model403FailedRequestResponse.md +20 -0
  53. data/docs/Model404FailedRequestResponse.md +20 -0
  54. data/docs/ModelAssetClass.md +20 -0
  55. data/docs/ModelAssetClassDetails.md +20 -0
  56. data/docs/ModelAssetClassTarget.md +18 -0
  57. data/docs/ModelPortfolio.md +22 -0
  58. data/docs/ModelPortfolioAssetClass.md +20 -0
  59. data/docs/ModelPortfolioDetails.md +22 -0
  60. data/docs/ModelPortfolioSecurity.md +20 -0
  61. data/docs/ModelType.md +15 -0
  62. data/docs/MonthlyDividends.md +20 -0
  63. data/docs/NetContributions.md +22 -0
  64. data/docs/NetDividend.md +22 -0
  65. data/docs/OptionChainInner.md +26 -0
  66. data/docs/OptionChainInnerChainPerRootInner.md +22 -0
  67. data/docs/OptionChainInnerChainPerRootInnerChainPerStrikePriceInner.md +22 -0
  68. data/docs/OptionLeg.md +22 -0
  69. data/docs/OptionLegAction.md +15 -0
  70. data/docs/OptionStrategy.md +26 -0
  71. data/docs/OptionStrategyLegsInner.md +24 -0
  72. data/docs/OptionsApi.md +390 -0
  73. data/docs/OptionsGetOptionStrategyRequest.md +22 -0
  74. data/docs/OptionsHoldings.md +28 -0
  75. data/docs/OptionsPlaceOptionStrategyRequest.md +22 -0
  76. data/docs/OptionsPosition.md +30 -0
  77. data/docs/OptionsSymbol.md +38 -0
  78. data/docs/OrderStrategyExecuteBodyOrderType.md +15 -0
  79. data/docs/OrderStrategyExecuteBodyTimeInForce.md +15 -0
  80. data/docs/OrderType.md +15 -0
  81. data/docs/PartnerData.md +40 -0
  82. data/docs/PastValue.md +22 -0
  83. data/docs/PerformanceCustom.md +54 -0
  84. data/docs/PortfolioGroup.md +20 -0
  85. data/docs/PortfolioGroupInfo.md +38 -0
  86. data/docs/PortfolioGroupPosition.md +22 -0
  87. data/docs/PortfolioGroupSettings.md +26 -0
  88. data/docs/PortfolioManagementApi.md +2014 -0
  89. data/docs/Position.md +28 -0
  90. data/docs/PositionSymbol.md +28 -0
  91. data/docs/RedirectTokenandPin.md +20 -0
  92. data/docs/ReferenceDataApi.md +595 -0
  93. data/docs/SecurityType.md +24 -0
  94. data/docs/SessionEvent.md +30 -0
  95. data/docs/SessionEventType.md +15 -0
  96. data/docs/SnapTradeAPIDisclaimerAcceptStatus.md +20 -0
  97. data/docs/SnapTradeHoldingsAccount.md +32 -0
  98. data/docs/SnapTradeHoldingsAccountAccountId.md +34 -0
  99. data/docs/SnapTradeHoldingsTotalValue.md +20 -0
  100. data/docs/SnapTradeLoginUserRequestBody.md +26 -0
  101. data/docs/SnapTradeRegisterUserRequestBody.md +20 -0
  102. data/docs/State.md +15 -0
  103. data/docs/Status.md +22 -0
  104. data/docs/StrategyImpact.md +38 -0
  105. data/docs/StrategyImpactLegsInner.md +30 -0
  106. data/docs/StrategyOrderPlace.md +20 -0
  107. data/docs/StrategyOrderPlaceOrdersInner.md +102 -0
  108. data/docs/StrategyOrderPlaceOrdersInnerLegsInner.md +30 -0
  109. data/docs/StrategyOrderRecord.md +38 -0
  110. data/docs/StrategyOrderRecordOrderType.md +15 -0
  111. data/docs/StrategyOrderRecordStatus.md +15 -0
  112. data/docs/StrategyOrderRecordTimeInForce.md +15 -0
  113. data/docs/StrategyQuotes.md +28 -0
  114. data/docs/StrategyQuotesGreek.md +26 -0
  115. data/docs/StrategyType.md +15 -0
  116. data/docs/SubPeriodReturnRate.md +22 -0
  117. data/docs/Symbol.md +30 -0
  118. data/docs/SymbolQuery.md +18 -0
  119. data/docs/SymbolsQuotes.md +28 -0
  120. data/docs/TargetAsset.md +28 -0
  121. data/docs/TimeInForce.md +15 -0
  122. data/docs/Trade.md +32 -0
  123. data/docs/TradeAction.md +15 -0
  124. data/docs/TradeExecutionStatus.md +34 -0
  125. data/docs/TradeExecutionStatusAction.md +15 -0
  126. data/docs/TradeImpact.md +26 -0
  127. data/docs/TradingApi.md +799 -0
  128. data/docs/TradingCancelUserAccountOrderRequest.md +18 -0
  129. data/docs/TradingPlaceOCOOrderRequest.md +20 -0
  130. data/docs/TransactionsAndReportingApi.md +183 -0
  131. data/docs/TransactionsStatus.md +20 -0
  132. data/docs/Type.md +15 -0
  133. data/docs/USExchange.md +34 -0
  134. data/docs/UnderlyingSymbol.md +30 -0
  135. data/docs/UniversalActivity.md +46 -0
  136. data/docs/UniversalSymbol.md +32 -0
  137. data/docs/UniversalSymbolTicker.md +32 -0
  138. data/docs/UserErrorLog.md +28 -0
  139. data/docs/UserIDandSecret.md +20 -0
  140. data/docs/UserSettings.md +36 -0
  141. data/lib/snaptrade/api/account_information_api.rb +801 -0
  142. data/lib/snaptrade/api/api_status_api.rb +98 -0
  143. data/lib/snaptrade/api/authentication_api.rb +481 -0
  144. data/lib/snaptrade/api/connections_api.rb +398 -0
  145. data/lib/snaptrade/api/error_logs_api.rb +112 -0
  146. data/lib/snaptrade/api/options_api.rb +591 -0
  147. data/lib/snaptrade/api/portfolio_management_api.rb +2791 -0
  148. data/lib/snaptrade/api/reference_data_api.rb +894 -0
  149. data/lib/snaptrade/api/trading_api.rb +1150 -0
  150. data/lib/snaptrade/api/transactions_and_reporting_api.rb +283 -0
  151. data/lib/snaptrade/api_client.rb +427 -0
  152. data/lib/snaptrade/api_client_custom.rb +32 -0
  153. data/lib/snaptrade/api_error.rb +55 -0
  154. data/lib/snaptrade/configuration.rb +374 -0
  155. data/lib/snaptrade/models/account.rb +303 -0
  156. data/lib/snaptrade/models/account_holdings.rb +249 -0
  157. data/lib/snaptrade/models/account_holdings_account.rb +260 -0
  158. data/lib/snaptrade/models/account_order_record.rb +382 -0
  159. data/lib/snaptrade/models/account_order_record_status.rb +56 -0
  160. data/lib/snaptrade/models/account_simple.rb +245 -0
  161. data/lib/snaptrade/models/account_sync_status.rb +218 -0
  162. data/lib/snaptrade/models/action.rb +38 -0
  163. data/lib/snaptrade/models/auth_type.rb +40 -0
  164. data/lib/snaptrade/models/authentication_login_snap_trade_user200_response.rb +103 -0
  165. data/lib/snaptrade/models/balance.rb +228 -0
  166. data/lib/snaptrade/models/brokerage.rb +377 -0
  167. data/lib/snaptrade/models/brokerage_authorization.rb +297 -0
  168. data/lib/snaptrade/models/brokerage_authorization_type.rb +217 -0
  169. data/lib/snaptrade/models/brokerage_authorization_type_read_only.rb +244 -0
  170. data/lib/snaptrade/models/brokerage_authorization_type_read_only_brokerage.rb +237 -0
  171. data/lib/snaptrade/models/brokerage_authorization_type_read_only_type.rb +38 -0
  172. data/lib/snaptrade/models/brokerage_authorization_type_type.rb +38 -0
  173. data/lib/snaptrade/models/brokerage_symbol.rb +255 -0
  174. data/lib/snaptrade/models/brokerage_type.rb +227 -0
  175. data/lib/snaptrade/models/calculated_trade.rb +229 -0
  176. data/lib/snaptrade/models/cash_restriction.rb +254 -0
  177. data/lib/snaptrade/models/connection_type.rb +38 -0
  178. data/lib/snaptrade/models/connections_session_events200_response_inner.rb +293 -0
  179. data/lib/snaptrade/models/currency.rb +236 -0
  180. data/lib/snaptrade/models/delete_user_response.rb +229 -0
  181. data/lib/snaptrade/models/dividend_at_date.rb +240 -0
  182. data/lib/snaptrade/models/encrypted_response.rb +227 -0
  183. data/lib/snaptrade/models/encrypted_response_encrypted_message_data.rb +235 -0
  184. data/lib/snaptrade/models/exchange.rb +282 -0
  185. data/lib/snaptrade/models/exchange_rate_pairs.rb +236 -0
  186. data/lib/snaptrade/models/excluded_asset.rb +218 -0
  187. data/lib/snaptrade/models/jwt.rb +218 -0
  188. data/lib/snaptrade/models/login_redirect_uri.rb +228 -0
  189. data/lib/snaptrade/models/manual_trade.rb +283 -0
  190. data/lib/snaptrade/models/manual_trade_and_impact.rb +238 -0
  191. data/lib/snaptrade/models/manual_trade_balance.rb +238 -0
  192. data/lib/snaptrade/models/manual_trade_form.rb +285 -0
  193. data/lib/snaptrade/models/manual_trade_symbol.rb +264 -0
  194. data/lib/snaptrade/models/model400_failed_request_response.rb +229 -0
  195. data/lib/snaptrade/models/model401_failed_request_response.rb +229 -0
  196. data/lib/snaptrade/models/model403_failed_request_response.rb +229 -0
  197. data/lib/snaptrade/models/model404_failed_request_response.rb +229 -0
  198. data/lib/snaptrade/models/model_asset_class.rb +226 -0
  199. data/lib/snaptrade/models/model_asset_class_details.rb +228 -0
  200. data/lib/snaptrade/models/model_asset_class_target.rb +217 -0
  201. data/lib/snaptrade/models/model_portfolio.rb +237 -0
  202. data/lib/snaptrade/models/model_portfolio_asset_class.rb +250 -0
  203. data/lib/snaptrade/models/model_portfolio_details.rb +239 -0
  204. data/lib/snaptrade/models/model_portfolio_security.rb +250 -0
  205. data/lib/snaptrade/models/model_type.rb +39 -0
  206. data/lib/snaptrade/models/monthly_dividends.rb +229 -0
  207. data/lib/snaptrade/models/net_contributions.rb +237 -0
  208. data/lib/snaptrade/models/net_dividend.rb +237 -0
  209. data/lib/snaptrade/models/option_chain_inner.rb +255 -0
  210. data/lib/snaptrade/models/option_chain_inner_chain_per_root_inner.rb +237 -0
  211. data/lib/snaptrade/models/option_chain_inner_chain_per_root_inner_chain_per_strike_price_inner.rb +238 -0
  212. data/lib/snaptrade/models/option_leg.rb +237 -0
  213. data/lib/snaptrade/models/option_leg_action.rb +40 -0
  214. data/lib/snaptrade/models/option_strategy.rb +255 -0
  215. data/lib/snaptrade/models/option_strategy_legs_inner.rb +244 -0
  216. data/lib/snaptrade/models/options_get_option_strategy_request.rb +252 -0
  217. data/lib/snaptrade/models/options_holdings.rb +267 -0
  218. data/lib/snaptrade/models/options_place_option_strategy_request.rb +251 -0
  219. data/lib/snaptrade/models/options_position.rb +275 -0
  220. data/lib/snaptrade/models/options_symbol.rb +310 -0
  221. data/lib/snaptrade/models/order_strategy_execute_body_order_type.rb +40 -0
  222. data/lib/snaptrade/models/order_strategy_execute_body_time_in_force.rb +38 -0
  223. data/lib/snaptrade/models/order_type.rb +40 -0
  224. data/lib/snaptrade/models/partner_data.rb +331 -0
  225. data/lib/snaptrade/models/past_value.rb +236 -0
  226. data/lib/snaptrade/models/performance_custom.rb +416 -0
  227. data/lib/snaptrade/models/portfolio_group.rb +226 -0
  228. data/lib/snaptrade/models/portfolio_group_info.rb +326 -0
  229. data/lib/snaptrade/models/portfolio_group_position.rb +238 -0
  230. data/lib/snaptrade/models/portfolio_group_settings.rb +277 -0
  231. data/lib/snaptrade/models/position.rb +271 -0
  232. data/lib/snaptrade/models/position_symbol.rb +264 -0
  233. data/lib/snaptrade/models/redirect_tokenand_pin.rb +227 -0
  234. data/lib/snaptrade/models/security_type.rb +245 -0
  235. data/lib/snaptrade/models/session_event.rb +274 -0
  236. data/lib/snaptrade/models/session_event_type.rb +43 -0
  237. data/lib/snaptrade/models/snap_trade_api_disclaimer_accept_status.rb +227 -0
  238. data/lib/snaptrade/models/snap_trade_holdings_account.rb +284 -0
  239. data/lib/snaptrade/models/snap_trade_holdings_account_account_id.rb +296 -0
  240. data/lib/snaptrade/models/snap_trade_holdings_total_value.rb +227 -0
  241. data/lib/snaptrade/models/snap_trade_login_user_request_body.rb +254 -0
  242. data/lib/snaptrade/models/snap_trade_register_user_request_body.rb +229 -0
  243. data/lib/snaptrade/models/state.rb +41 -0
  244. data/lib/snaptrade/models/status.rb +236 -0
  245. data/lib/snaptrade/models/strategy_impact.rb +310 -0
  246. data/lib/snaptrade/models/strategy_impact_legs_inner.rb +271 -0
  247. data/lib/snaptrade/models/strategy_order_place.rb +229 -0
  248. data/lib/snaptrade/models/strategy_order_place_orders_inner.rb +597 -0
  249. data/lib/snaptrade/models/strategy_order_place_orders_inner_legs_inner.rb +271 -0
  250. data/lib/snaptrade/models/strategy_order_record.rb +312 -0
  251. data/lib/snaptrade/models/strategy_order_record_order_type.rb +40 -0
  252. data/lib/snaptrade/models/strategy_order_record_status.rb +55 -0
  253. data/lib/snaptrade/models/strategy_order_record_time_in_force.rb +38 -0
  254. data/lib/snaptrade/models/strategy_quotes.rb +265 -0
  255. data/lib/snaptrade/models/strategy_quotes_greek.rb +253 -0
  256. data/lib/snaptrade/models/strategy_type.rb +37 -0
  257. data/lib/snaptrade/models/sub_period_return_rate.rb +239 -0
  258. data/lib/snaptrade/models/symbol.rb +272 -0
  259. data/lib/snaptrade/models/symbol_query.rb +218 -0
  260. data/lib/snaptrade/models/symbols_quotes.rb +263 -0
  261. data/lib/snaptrade/models/target_asset.rb +290 -0
  262. data/lib/snaptrade/models/time_in_force.rb +39 -0
  263. data/lib/snaptrade/models/trade.rb +281 -0
  264. data/lib/snaptrade/models/trade_action.rb +38 -0
  265. data/lib/snaptrade/models/trade_execution_status.rb +296 -0
  266. data/lib/snaptrade/models/trade_execution_status_action.rb +38 -0
  267. data/lib/snaptrade/models/trade_impact.rb +257 -0
  268. data/lib/snaptrade/models/trading_cancel_user_account_order_request.rb +217 -0
  269. data/lib/snaptrade/models/trading_place_oco_order_request.rb +230 -0
  270. data/lib/snaptrade/models/transactions_status.rb +229 -0
  271. data/lib/snaptrade/models/type.rb +38 -0
  272. data/lib/snaptrade/models/underlying_symbol.rb +275 -0
  273. data/lib/snaptrade/models/universal_activity.rb +349 -0
  274. data/lib/snaptrade/models/universal_symbol.rb +284 -0
  275. data/lib/snaptrade/models/universal_symbol_ticker.rb +283 -0
  276. data/lib/snaptrade/models/us_exchange.rb +291 -0
  277. data/lib/snaptrade/models/user_error_log.rb +263 -0
  278. data/lib/snaptrade/models/user_i_dand_secret.rb +229 -0
  279. data/lib/snaptrade/models/user_settings.rb +299 -0
  280. data/lib/snaptrade/version.rb +13 -0
  281. data/lib/snaptrade.rb +214 -0
  282. data/snaptrade.gemspec +41 -0
  283. data/spec/api/account_information_api_spec.rb +135 -0
  284. data/spec/api/api_status_api_spec.rb +42 -0
  285. data/spec/api/authentication_api_spec.rb +88 -0
  286. data/spec/api/connections_api_spec.rb +82 -0
  287. data/spec/api/error_logs_api_spec.rb +43 -0
  288. data/spec/api/options_api_spec.rb +101 -0
  289. data/spec/api/portfolio_management_api_spec.rb +395 -0
  290. data/spec/api/reference_data_api_spec.rb +150 -0
  291. data/spec/api/trading_api_spec.rb +163 -0
  292. data/spec/api/transactions_and_reporting_api_spec.rb +67 -0
  293. data/spec/api_client_spec.rb +193 -0
  294. data/spec/configuration_spec.rb +40 -0
  295. data/spec/getting_started_spec.rb +144 -0
  296. data/spec/models/account_holdings_account_spec.rb +54 -0
  297. data/spec/models/account_holdings_spec.rb +48 -0
  298. data/spec/models/account_order_record_spec.rb +132 -0
  299. data/spec/models/account_order_record_status_spec.rb +24 -0
  300. data/spec/models/account_simple_spec.rb +48 -0
  301. data/spec/models/account_spec.rb +84 -0
  302. data/spec/models/account_sync_status_spec.rb +30 -0
  303. data/spec/models/action_spec.rb +24 -0
  304. data/spec/models/auth_type_spec.rb +24 -0
  305. data/spec/models/authentication_login_snap_trade_user200_response_spec.rb +27 -0
  306. data/spec/models/balance_spec.rb +36 -0
  307. data/spec/models/brokerage_authorization_spec.rb +78 -0
  308. data/spec/models/brokerage_authorization_type_read_only_brokerage_spec.rb +42 -0
  309. data/spec/models/brokerage_authorization_type_read_only_spec.rb +48 -0
  310. data/spec/models/brokerage_authorization_type_read_only_type_spec.rb +24 -0
  311. data/spec/models/brokerage_authorization_type_spec.rb +30 -0
  312. data/spec/models/brokerage_authorization_type_type_spec.rb +24 -0
  313. data/spec/models/brokerage_spec.rb +132 -0
  314. data/spec/models/brokerage_symbol_spec.rb +54 -0
  315. data/spec/models/brokerage_type_spec.rb +36 -0
  316. data/spec/models/calculated_trade_spec.rb +36 -0
  317. data/spec/models/cash_restriction_spec.rb +54 -0
  318. data/spec/models/connection_type_spec.rb +24 -0
  319. data/spec/models/connections_session_events200_response_inner_spec.rb +66 -0
  320. data/spec/models/currency_spec.rb +42 -0
  321. data/spec/models/delete_user_response_spec.rb +36 -0
  322. data/spec/models/dividend_at_date_spec.rb +42 -0
  323. data/spec/models/encrypted_response_encrypted_message_data_spec.rb +42 -0
  324. data/spec/models/encrypted_response_spec.rb +36 -0
  325. data/spec/models/exchange_rate_pairs_spec.rb +42 -0
  326. data/spec/models/exchange_spec.rb +72 -0
  327. data/spec/models/excluded_asset_spec.rb +30 -0
  328. data/spec/models/jwt_spec.rb +30 -0
  329. data/spec/models/login_redirect_uri_spec.rb +36 -0
  330. data/spec/models/manual_trade_and_impact_spec.rb +42 -0
  331. data/spec/models/manual_trade_balance_spec.rb +42 -0
  332. data/spec/models/manual_trade_form_spec.rb +72 -0
  333. data/spec/models/manual_trade_spec.rb +72 -0
  334. data/spec/models/manual_trade_symbol_spec.rb +60 -0
  335. data/spec/models/model400_failed_request_response_spec.rb +36 -0
  336. data/spec/models/model401_failed_request_response_spec.rb +36 -0
  337. data/spec/models/model403_failed_request_response_spec.rb +36 -0
  338. data/spec/models/model404_failed_request_response_spec.rb +36 -0
  339. data/spec/models/model_asset_class_details_spec.rb +36 -0
  340. data/spec/models/model_asset_class_spec.rb +36 -0
  341. data/spec/models/model_asset_class_target_spec.rb +30 -0
  342. data/spec/models/model_portfolio_asset_class_spec.rb +36 -0
  343. data/spec/models/model_portfolio_details_spec.rb +42 -0
  344. data/spec/models/model_portfolio_security_spec.rb +36 -0
  345. data/spec/models/model_portfolio_spec.rb +42 -0
  346. data/spec/models/model_type_spec.rb +24 -0
  347. data/spec/models/monthly_dividends_spec.rb +36 -0
  348. data/spec/models/net_contributions_spec.rb +42 -0
  349. data/spec/models/net_dividend_spec.rb +42 -0
  350. data/spec/models/option_chain_inner_chain_per_root_inner_chain_per_strike_price_inner_spec.rb +42 -0
  351. data/spec/models/option_chain_inner_chain_per_root_inner_spec.rb +42 -0
  352. data/spec/models/option_chain_inner_spec.rb +54 -0
  353. data/spec/models/option_leg_action_spec.rb +24 -0
  354. data/spec/models/option_leg_spec.rb +42 -0
  355. data/spec/models/option_strategy_legs_inner_spec.rb +48 -0
  356. data/spec/models/option_strategy_spec.rb +54 -0
  357. data/spec/models/options_get_option_strategy_request_spec.rb +42 -0
  358. data/spec/models/options_holdings_spec.rb +60 -0
  359. data/spec/models/options_place_option_strategy_request_spec.rb +42 -0
  360. data/spec/models/options_position_spec.rb +66 -0
  361. data/spec/models/options_symbol_spec.rb +90 -0
  362. data/spec/models/order_strategy_execute_body_order_type_spec.rb +24 -0
  363. data/spec/models/order_strategy_execute_body_time_in_force_spec.rb +24 -0
  364. data/spec/models/order_type_spec.rb +24 -0
  365. data/spec/models/partner_data_spec.rb +96 -0
  366. data/spec/models/past_value_spec.rb +42 -0
  367. data/spec/models/performance_custom_spec.rb +138 -0
  368. data/spec/models/portfolio_group_info_spec.rb +90 -0
  369. data/spec/models/portfolio_group_position_spec.rb +42 -0
  370. data/spec/models/portfolio_group_settings_spec.rb +54 -0
  371. data/spec/models/portfolio_group_spec.rb +36 -0
  372. data/spec/models/position_spec.rb +60 -0
  373. data/spec/models/position_symbol_spec.rb +60 -0
  374. data/spec/models/redirect_tokenand_pin_spec.rb +36 -0
  375. data/spec/models/security_type_spec.rb +48 -0
  376. data/spec/models/session_event_spec.rb +66 -0
  377. data/spec/models/session_event_type_spec.rb +24 -0
  378. data/spec/models/snap_trade_api_disclaimer_accept_status_spec.rb +36 -0
  379. data/spec/models/snap_trade_holdings_account_account_id_spec.rb +78 -0
  380. data/spec/models/snap_trade_holdings_account_spec.rb +72 -0
  381. data/spec/models/snap_trade_holdings_total_value_spec.rb +36 -0
  382. data/spec/models/snap_trade_login_user_request_body_spec.rb +54 -0
  383. data/spec/models/snap_trade_register_user_request_body_spec.rb +36 -0
  384. data/spec/models/state_spec.rb +24 -0
  385. data/spec/models/status_spec.rb +42 -0
  386. data/spec/models/strategy_impact_legs_inner_spec.rb +66 -0
  387. data/spec/models/strategy_impact_spec.rb +90 -0
  388. data/spec/models/strategy_order_place_orders_inner_legs_inner_spec.rb +66 -0
  389. data/spec/models/strategy_order_place_orders_inner_spec.rb +282 -0
  390. data/spec/models/strategy_order_place_spec.rb +36 -0
  391. data/spec/models/strategy_order_record_order_type_spec.rb +24 -0
  392. data/spec/models/strategy_order_record_spec.rb +90 -0
  393. data/spec/models/strategy_order_record_status_spec.rb +24 -0
  394. data/spec/models/strategy_order_record_time_in_force_spec.rb +24 -0
  395. data/spec/models/strategy_quotes_greek_spec.rb +54 -0
  396. data/spec/models/strategy_quotes_spec.rb +60 -0
  397. data/spec/models/strategy_type_spec.rb +24 -0
  398. data/spec/models/sub_period_return_rate_spec.rb +42 -0
  399. data/spec/models/symbol_query_spec.rb +30 -0
  400. data/spec/models/symbol_spec.rb +66 -0
  401. data/spec/models/symbols_quotes_spec.rb +60 -0
  402. data/spec/models/target_asset_spec.rb +60 -0
  403. data/spec/models/time_in_force_spec.rb +24 -0
  404. data/spec/models/trade_action_spec.rb +24 -0
  405. data/spec/models/trade_execution_status_action_spec.rb +24 -0
  406. data/spec/models/trade_execution_status_spec.rb +78 -0
  407. data/spec/models/trade_impact_spec.rb +54 -0
  408. data/spec/models/trade_spec.rb +72 -0
  409. data/spec/models/trading_cancel_user_account_order_request_spec.rb +30 -0
  410. data/spec/models/trading_place_oco_order_request_spec.rb +36 -0
  411. data/spec/models/transactions_status_spec.rb +36 -0
  412. data/spec/models/type_spec.rb +24 -0
  413. data/spec/models/underlying_symbol_spec.rb +66 -0
  414. data/spec/models/universal_activity_spec.rb +114 -0
  415. data/spec/models/universal_symbol_spec.rb +72 -0
  416. data/spec/models/universal_symbol_ticker_spec.rb +72 -0
  417. data/spec/models/us_exchange_spec.rb +78 -0
  418. data/spec/models/user_error_log_spec.rb +60 -0
  419. data/spec/models/user_i_dand_secret_spec.rb +36 -0
  420. data/spec/models/user_settings_spec.rb +84 -0
  421. data/spec/spec_helper.rb +109 -0
  422. metadata +664 -0
@@ -0,0 +1,163 @@
1
+ =begin
2
+ #SnapTrade
3
+
4
+ #Connect brokerage accounts to your app for live positions and trading
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: api@snaptrade.com
8
+
9
+ =end
10
+
11
+ require 'spec_helper'
12
+ require 'json'
13
+
14
+ # Unit tests for SnapTrade::TradingApi
15
+ describe 'TradingApi' do
16
+ before do
17
+ # run before each test
18
+ @api_instance = SnapTrade::TradingApi.new
19
+ end
20
+
21
+ after do
22
+ # run after each test
23
+ end
24
+
25
+ describe 'test an instance of TradingApi' do
26
+ it 'should create an instance of TradingApi' do
27
+ expect(@api_instance).to be_instance_of(SnapTrade::TradingApi)
28
+ end
29
+ end
30
+
31
+ # unit tests for cancel_user_account_order
32
+ # Cancel open order in account
33
+ # @param user_id
34
+ # @param user_secret
35
+ # @param account_id The ID of the account get positions.
36
+ # @param trading_cancel_user_account_order_request The Order ID to be canceled
37
+ # @param [Hash] opts the optional parameters
38
+ # @return [AccountOrderRecord]
39
+ describe 'cancel_user_account_order test' do
40
+ it 'should work' do
41
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
42
+ end
43
+ end
44
+
45
+ # unit tests for get_calculated_trade_impact_by_id
46
+ # Return details of a specific trade before it's placed
47
+ # @param portfolio_group_id The ID of the PortfolioGroup to perform rebalancing calculations
48
+ # @param calculated_trade_id The ID of calculated trade to get account impact
49
+ # @param trade_id The ID of trade object
50
+ # @param [Hash] opts the optional parameters
51
+ # @return [Trade]
52
+ describe 'get_calculated_trade_impact_by_id test' do
53
+ it 'should work' do
54
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
55
+ end
56
+ end
57
+
58
+ # unit tests for get_calculated_trades_impact
59
+ # Return the impact of placing a series of trades on the portfolio
60
+ # @param portfolio_group_id The ID of the PortfolioGroup to perform rebalancing calculations
61
+ # @param calculated_trade_id The ID of calculated trade to get account impact
62
+ # @param [Hash] opts the optional parameters
63
+ # @return [Array<TradeImpact>]
64
+ describe 'get_calculated_trades_impact test' do
65
+ it 'should work' do
66
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
67
+ end
68
+ end
69
+
70
+ # unit tests for get_order_impact
71
+ # Check impact of trades on account.
72
+ # @param user_id
73
+ # @param user_secret
74
+ # @param manual_trade_form
75
+ # @param [Hash] opts the optional parameters
76
+ # @return [ManualTradeAndImpact]
77
+ describe 'get_order_impact test' do
78
+ it 'should work' do
79
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
80
+ end
81
+ end
82
+
83
+ # unit tests for get_user_account_quotes
84
+ # Get symbol quotes
85
+ # @param user_id
86
+ # @param user_secret
87
+ # @param symbols List of universal_symbol_id or tickers to get quotes for.
88
+ # @param account_id The ID of the account to get quotes.
89
+ # @param [Hash] opts the optional parameters
90
+ # @option opts [Boolean] :use_ticker Should be set to True if providing tickers.
91
+ # @return [SymbolsQuotes]
92
+ describe 'get_user_account_quotes test' do
93
+ it 'should work' do
94
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
95
+ end
96
+ end
97
+
98
+ # unit tests for modify_calculated_trade_by_id
99
+ # Modify units of a trade before it is placed
100
+ # @param portfolio_group_id The ID of the PortfolioGroup to perform rebalancing calculations
101
+ # @param calculated_trade_id The ID of calculated trade to get account impact
102
+ # @param trade_id The ID of trade object
103
+ # @param [Hash] opts the optional parameters
104
+ # @option opts [Trade] :trade
105
+ # @return [Trade]
106
+ describe 'modify_calculated_trade_by_id test' do
107
+ it 'should work' do
108
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
109
+ end
110
+ end
111
+
112
+ # unit tests for place_calculated_trades
113
+ # Place orders for the CalculatedTrades in series
114
+ # @param portfolio_group_id The ID of the PortfolioGroup to perform rebalancing calculations
115
+ # @param calculated_trade_id The ID of calculated trade to get account impact
116
+ # @param [Hash] opts the optional parameters
117
+ # @return [Array<TradeExecutionStatus>]
118
+ describe 'place_calculated_trades test' do
119
+ it 'should work' do
120
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
121
+ end
122
+ end
123
+
124
+ # unit tests for place_force_order
125
+ # Place a trade with NO validation.
126
+ # @param user_id
127
+ # @param user_secret
128
+ # @param manual_trade_form
129
+ # @param [Hash] opts the optional parameters
130
+ # @return [AccountOrderRecord]
131
+ describe 'place_force_order test' do
132
+ it 'should work' do
133
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
134
+ end
135
+ end
136
+
137
+ # unit tests for place_oco_order
138
+ # Place a OCO (One Cancels Other) order
139
+ # @param user_id
140
+ # @param user_secret
141
+ # @param trading_place_oco_order_request
142
+ # @param [Hash] opts the optional parameters
143
+ # @return [AccountOrderRecord]
144
+ describe 'place_oco_order test' do
145
+ it 'should work' do
146
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
147
+ end
148
+ end
149
+
150
+ # unit tests for place_order
151
+ # Place order
152
+ # @param trade_id The ID of trade object obtained from trade/impact endpoint
153
+ # @param user_id
154
+ # @param user_secret
155
+ # @param [Hash] opts the optional parameters
156
+ # @return [AccountOrderRecord]
157
+ describe 'place_order test' do
158
+ it 'should work' do
159
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
160
+ end
161
+ end
162
+
163
+ end
@@ -0,0 +1,67 @@
1
+ =begin
2
+ #SnapTrade
3
+
4
+ #Connect brokerage accounts to your app for live positions and trading
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: api@snaptrade.com
8
+
9
+ =end
10
+
11
+ require 'spec_helper'
12
+ require 'json'
13
+
14
+ # Unit tests for SnapTrade::TransactionsAndReportingApi
15
+ describe 'TransactionsAndReportingApi' do
16
+ before do
17
+ # run before each test
18
+ @api_instance = SnapTrade::TransactionsAndReportingApi.new
19
+ end
20
+
21
+ after do
22
+ # run after each test
23
+ end
24
+
25
+ describe 'test an instance of TransactionsAndReportingApi' do
26
+ it 'should create an instance of TransactionsAndReportingApi' do
27
+ expect(@api_instance).to be_instance_of(SnapTrade::TransactionsAndReportingApi)
28
+ end
29
+ end
30
+
31
+ # unit tests for get_activities
32
+ # Get transaction history for a user
33
+ # Returns activities (transactions) for a user. Specifing start and end date is highly recommended for automatic calls for better performance
34
+ # @param user_id
35
+ # @param user_secret
36
+ # @param [Hash] opts the optional parameters
37
+ # @option opts [Date] :start_date
38
+ # @option opts [Date] :end_date
39
+ # @option opts [String] :accounts Optional comma seperated list of account IDs used to filter the request on specific accounts
40
+ # @option opts [String] :brokerage_authorizations Optional comma seperated list of brokerage authorization IDs used to filter the request on only accounts that belong to those authorizations
41
+ # @option opts [String] :type Optional comma seperated list of types to filter activities by. Potential values include - DIVIDEND - BUY - SELL - CONTRIBUTION - WITHDRAWAL - EXTERNAL_ASSET_TRANSFER_IN - EXTERNAL_ASSET_TRANSFER_OUT - INTERNAL_CASH_TRANSFER_IN - INTERNAL_CASH_TRANSFER_OUT - INTERNAL_ASSET_TRANSFER_IN - INTERNAL_ASSET_TRANSFER_OUT - INTEREST - REBATE - GOV_GRANT - TAX - FEE - REI - FXT
42
+ # @return [Array<UniversalActivity>]
43
+ describe 'get_activities test' do
44
+ it 'should work' do
45
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
46
+ end
47
+ end
48
+
49
+ # unit tests for get_reporting_custom_range
50
+ # Get performance information for a specific timeframe
51
+ # Returns performance information (contributions, dividends, rate of return, etc) for a specific timeframe. Total Equity Timeframe and Rate of Returns are experimental and should not be trusted to be 100% accurate
52
+ # @param start_date
53
+ # @param end_date
54
+ # @param user_id
55
+ # @param user_secret
56
+ # @param [Hash] opts the optional parameters
57
+ # @option opts [String] :accounts Optional comma seperated list of account IDs used to filter the request on specific accounts
58
+ # @option opts [Boolean] :detailed Optional, increases frequency of data points for the total value and contribution charts if set to true
59
+ # @option opts [String] :frequency Optional frequency for the rate of return chart (defaults to monthly). Possible values are daily, weekly, monthly, quarterly, yearly.
60
+ # @return [PerformanceCustom]
61
+ describe 'get_reporting_custom_range test' do
62
+ it 'should work' do
63
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
64
+ end
65
+ end
66
+
67
+ end
@@ -0,0 +1,193 @@
1
+ =begin
2
+ #SnapTrade
3
+
4
+ #Connect brokerage accounts to your app for live positions and trading
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: api@snaptrade.com
8
+
9
+ =end
10
+
11
+ require 'spec_helper'
12
+
13
+ describe SnapTrade::ApiClient do
14
+ context 'initialization' do
15
+ context 'URL stuff' do
16
+ context 'host' do
17
+ it 'removes http from host' do
18
+
19
+ configuration = SnapTrade::Configuration.new
20
+ configuration.host = 'http://example.com'
21
+ expect(configuration.host).to eq('example.com')
22
+ end
23
+
24
+ it 'removes https from host' do
25
+ configuration = SnapTrade::Configuration.new
26
+ configuration.host = 'https://wookiee.com'
27
+ expect(configuration.host).to eq('wookiee.com')
28
+ end
29
+
30
+ it 'removes trailing path from host' do
31
+ configuration = SnapTrade::Configuration.new
32
+ configuration.host = 'hello.com/v4'
33
+ expect(configuration.host).to eq('hello.com')
34
+ end
35
+ end
36
+
37
+ context 'base_path' do
38
+ it "prepends a slash to base_path" do
39
+ configuration = SnapTrade::Configuration.new
40
+ configuration.base_path = 'v4/dog'
41
+ expect(configuration.base_path).to eq('/v4/dog')
42
+ end
43
+
44
+ it "doesn't prepend a slash if one is already there" do
45
+ configuration = SnapTrade::Configuration.new
46
+ configuration.base_path = '/v4/dog'
47
+ expect(configuration.base_path).to eq('/v4/dog')
48
+ end
49
+
50
+ it "ends up as a blank string if nil" do
51
+ configuration = SnapTrade::Configuration.new
52
+ configuration.base_path = nil
53
+ expect(configuration.base_path).to eq('')
54
+ end
55
+ end
56
+ end
57
+ end
58
+
59
+ describe '#deserialize' do
60
+ it "handles Array<Integer>" do
61
+ api_client = SnapTrade::ApiClient.new
62
+ headers = { 'Content-Type' => 'application/json' }
63
+ response = double('response', headers: headers, body: '[12, 34]')
64
+ data = api_client.deserialize(response, 'Array<Integer>')
65
+ expect(data).to be_instance_of(Array)
66
+ expect(data).to eq([12, 34])
67
+ end
68
+
69
+ it 'handles Array<Array<Integer>>' do
70
+ api_client = SnapTrade::ApiClient.new
71
+ headers = { 'Content-Type' => 'application/json' }
72
+ response = double('response', headers: headers, body: '[[12, 34], [56]]')
73
+ data = api_client.deserialize(response, 'Array<Array<Integer>>')
74
+ expect(data).to be_instance_of(Array)
75
+ expect(data).to eq([[12, 34], [56]])
76
+ end
77
+
78
+ it 'handles Hash<String, String>' do
79
+ api_client = SnapTrade::ApiClient.new
80
+ headers = { 'Content-Type' => 'application/json' }
81
+ response = double('response', headers: headers, body: '{"message": "Hello"}')
82
+ data = api_client.deserialize(response, 'Hash<String, String>')
83
+ expect(data).to be_instance_of(Hash)
84
+ expect(data).to eq(:message => 'Hello')
85
+ end
86
+ end
87
+
88
+ describe "#object_to_hash" do
89
+ it 'ignores nils and includes empty arrays' do
90
+ # uncomment below to test object_to_hash for model
91
+ # api_client = SnapTrade::ApiClient.new
92
+ # _model = SnapTrade::ModelName.new
93
+ # update the model attribute below
94
+ # _model.id = 1
95
+ # update the expected value (hash) below
96
+ # expected = {id: 1, name: '', tags: []}
97
+ # expect(api_client.object_to_hash(_model)).to eq(expected)
98
+ end
99
+ end
100
+
101
+ describe '#build_collection_param' do
102
+ let(:param) { ['aa', 'bb', 'cc'] }
103
+ let(:api_client) { SnapTrade::ApiClient.new }
104
+
105
+ it 'works for csv' do
106
+ expect(api_client.build_collection_param(param, :csv)).to eq('aa,bb,cc')
107
+ end
108
+
109
+ it 'works for ssv' do
110
+ expect(api_client.build_collection_param(param, :ssv)).to eq('aa bb cc')
111
+ end
112
+
113
+ it 'works for tsv' do
114
+ expect(api_client.build_collection_param(param, :tsv)).to eq("aa\tbb\tcc")
115
+ end
116
+
117
+ it 'works for pipes' do
118
+ expect(api_client.build_collection_param(param, :pipes)).to eq('aa|bb|cc')
119
+ end
120
+
121
+ it 'works for multi' do
122
+ expect(api_client.build_collection_param(param, :multi)).to eq(['aa', 'bb', 'cc'])
123
+ end
124
+
125
+ it 'fails for invalid collection format' do
126
+ expect { api_client.build_collection_param(param, :INVALID) }.to raise_error(RuntimeError, 'unknown collection format: :INVALID')
127
+ end
128
+ end
129
+
130
+ describe '#json_mime?' do
131
+ let(:api_client) { SnapTrade::ApiClient.new }
132
+
133
+ it 'works' do
134
+ expect(api_client.json_mime?(nil)).to eq false
135
+ expect(api_client.json_mime?('')).to eq false
136
+
137
+ expect(api_client.json_mime?('application/json')).to eq true
138
+ expect(api_client.json_mime?('application/json; charset=UTF8')).to eq true
139
+ expect(api_client.json_mime?('APPLICATION/JSON')).to eq true
140
+
141
+ expect(api_client.json_mime?('application/xml')).to eq false
142
+ expect(api_client.json_mime?('text/plain')).to eq false
143
+ expect(api_client.json_mime?('application/jsonp')).to eq false
144
+ end
145
+ end
146
+
147
+ describe '#select_header_accept' do
148
+ let(:api_client) { SnapTrade::ApiClient.new }
149
+
150
+ it 'works' do
151
+ expect(api_client.select_header_accept(nil)).to be_nil
152
+ expect(api_client.select_header_accept([])).to be_nil
153
+
154
+ expect(api_client.select_header_accept(['application/json'])).to eq('application/json')
155
+ expect(api_client.select_header_accept(['application/xml', 'application/json; charset=UTF8'])).to eq('application/json; charset=UTF8')
156
+ expect(api_client.select_header_accept(['APPLICATION/JSON', 'text/html'])).to eq('APPLICATION/JSON')
157
+
158
+ expect(api_client.select_header_accept(['application/xml'])).to eq('application/xml')
159
+ expect(api_client.select_header_accept(['text/html', 'application/xml'])).to eq('text/html,application/xml')
160
+ end
161
+ end
162
+
163
+ describe '#select_header_content_type' do
164
+ let(:api_client) { SnapTrade::ApiClient.new }
165
+
166
+ it 'works' do
167
+ expect(api_client.select_header_content_type(nil)).to be_nil
168
+ expect(api_client.select_header_content_type([])).to be_nil
169
+
170
+ expect(api_client.select_header_content_type(['application/json'])).to eq('application/json')
171
+ expect(api_client.select_header_content_type(['application/xml', 'application/json; charset=UTF8'])).to eq('application/json; charset=UTF8')
172
+ expect(api_client.select_header_content_type(['APPLICATION/JSON', 'text/html'])).to eq('APPLICATION/JSON')
173
+ expect(api_client.select_header_content_type(['application/xml'])).to eq('application/xml')
174
+ expect(api_client.select_header_content_type(['text/plain', 'application/xml'])).to eq('text/plain')
175
+ end
176
+ end
177
+
178
+ describe '#sanitize_filename' do
179
+ let(:api_client) { SnapTrade::ApiClient.new }
180
+
181
+ it 'works' do
182
+ expect(api_client.sanitize_filename('sun')).to eq('sun')
183
+ expect(api_client.sanitize_filename('sun.gif')).to eq('sun.gif')
184
+ expect(api_client.sanitize_filename('../sun.gif')).to eq('sun.gif')
185
+ expect(api_client.sanitize_filename('/var/tmp/sun.gif')).to eq('sun.gif')
186
+ expect(api_client.sanitize_filename('./sun.gif')).to eq('sun.gif')
187
+ expect(api_client.sanitize_filename('..\sun.gif')).to eq('sun.gif')
188
+ expect(api_client.sanitize_filename('\var\tmp\sun.gif')).to eq('sun.gif')
189
+ expect(api_client.sanitize_filename('c:\var\tmp\sun.gif')).to eq('sun.gif')
190
+ expect(api_client.sanitize_filename('.\sun.gif')).to eq('sun.gif')
191
+ end
192
+ end
193
+ end
@@ -0,0 +1,40 @@
1
+ =begin
2
+ #SnapTrade
3
+
4
+ #Connect brokerage accounts to your app for live positions and trading
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: api@snaptrade.com
8
+
9
+ =end
10
+
11
+ require 'spec_helper'
12
+
13
+ describe SnapTrade::Configuration do
14
+ let(:config) { SnapTrade::Configuration.default }
15
+
16
+ before(:each) do
17
+ # uncomment below to setup host and base_path
18
+ # require 'URI'
19
+ # uri = URI.parse("https://api.snaptrade.com/api/v1")
20
+ # SnapTrade.configure do |c|
21
+ # c.host = uri.host
22
+ # c.base_path = uri.path
23
+ # end
24
+ end
25
+
26
+ describe '#base_url' do
27
+ it 'should have the default value' do
28
+ # uncomment below to test default value of the base path
29
+ # expect(config.base_url).to eq("https://api.snaptrade.com/api/v1")
30
+ end
31
+
32
+ it 'should remove trailing slashes' do
33
+ [nil, '', '/', '//'].each do |base_path|
34
+ config.base_path = base_path
35
+ # uncomment below to test trailing slashes
36
+ # expect(config.base_url).to eq("https://api.snaptrade.com/api/v1")
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,144 @@
1
+ =begin
2
+ #SnapTrade
3
+
4
+ #Connect brokerage accounts to your app for live positions and trading
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: api@snaptrade.com
8
+
9
+ =end
10
+
11
+ require 'spec_helper'
12
+ require 'json'
13
+ require 'securerandom'
14
+ require 'debug'
15
+
16
+ # Unit tests for SnapTrade::APIStatusApi
17
+ describe 'GettingStarted' do
18
+ before do
19
+ end
20
+
21
+ after do
22
+ # run after each test
23
+ end
24
+
25
+ describe 'non object body parameter' do
26
+ it 'should work' do
27
+ configuration = SnapTrade::Configuration.new
28
+ configuration.client_id = ENV["SNAPTRADE_CLIENT_ID"]
29
+ configuration.consumer_key = ENV["SNAPTRADE_CONSUMER_KEY"]
30
+ configuration.host = "http://127.0.0.1:4010"
31
+ snaptrade = SnapTrade::Client.new(configuration)
32
+
33
+ data = snaptrade.portfolio_management.set_portfolio_targets(
34
+ portfolio_group_id: SecureRandom.uuid,
35
+ body: [{
36
+ "id" => SecureRandom.uuid,
37
+ "symbol" => {
38
+ "id" => SecureRandom.uuid,
39
+ "symbol" => "VOO"
40
+ }
41
+ }]
42
+ )
43
+ puts data
44
+ expect(data).not_to be_nil
45
+ end
46
+ end
47
+
48
+ describe 'optional non body parameters should be passed' do
49
+ it 'should pass' do
50
+ configuration = SnapTrade::Configuration.new
51
+ configuration.client_id = ENV["SNAPTRADE_CLIENT_ID"]
52
+ configuration.consumer_key = ENV["SNAPTRADE_CONSUMER_KEY"]
53
+ configuration.host = "http://127.0.0.1:4010"
54
+ snaptrade = SnapTrade::Client.new(configuration)
55
+
56
+ data, status_code, headers, response = snaptrade.account_information.get_user_account_orders_with_http_info(
57
+ user_id: "a",
58
+ user_secret: "b",
59
+ account_id: SecureRandom.uuid,
60
+ state: "all"
61
+ )
62
+ puts data
63
+ expect(response.env.url.query).to include("state=all")
64
+ expect(data).not_to be_nil
65
+ end
66
+ end
67
+
68
+ # integration test for getting started flow
69
+ describe 'getting started flow static pattern' do
70
+ it 'should work' do
71
+ # 1) Setup
72
+ SnapTrade.client_id = ENV["SNAPTRADE_CLIENT_ID"]
73
+ SnapTrade.consumer_key = ENV["SNAPTRADE_CONSUMER_KEY"]
74
+
75
+ # 2) Check API Status
76
+ response = SnapTrade::APIStatus.check()
77
+ expect(response).not_to be_nil
78
+ puts response
79
+
80
+ # 3) Create a new user
81
+ user_id = SecureRandom.uuid
82
+ response = SnapTrade::Authentication.register_snap_trade_user(user_id: user_id)
83
+ puts response
84
+
85
+ # 4) Get a redirect URI
86
+ redirect_uri = SnapTrade::Authentication.login_snap_trade_user(user_id: user_id, user_secret: response.user_secret)
87
+ puts redirect_uri
88
+
89
+ SnapTrade::PortfolioManagement.create(
90
+ user_id: user_id,
91
+ user_secret: response.user_secret,
92
+ id: SecureRandom.uuid,
93
+ name: "MyPortfolio"
94
+ )
95
+ portfolios = SnapTrade::PortfolioManagement.list(user_id: user_id, user_secret: response.user_secret)
96
+ puts portfolios
97
+
98
+ # 5) Obtaining account holdings data
99
+ holdings = SnapTrade::AccountInformation.get_all_user_holdings(user_id: user_id, user_secret: response.user_secret)
100
+ puts holdings
101
+
102
+ # 6) Deleting a user
103
+ deleted_response = SnapTrade::Authentication.delete_snap_trade_user(user_id: user_id)
104
+ puts deleted_response
105
+ end
106
+ end
107
+
108
+ describe 'getting started flow instance patern' do
109
+ it 'should work' do
110
+ # 1) Setup
111
+ configuration = SnapTrade::Configuration.new
112
+ configuration.client_id = ENV["SNAPTRADE_CLIENT_ID"]
113
+ configuration.consumer_key = ENV["SNAPTRADE_CONSUMER_KEY"]
114
+ snaptrade = SnapTrade::Client.new(configuration)
115
+
116
+ # 2) Check that the client is able to make a request to the API server.
117
+ response = snaptrade.api_status.check()
118
+ expect(response).not_to be_nil
119
+ puts response
120
+
121
+ # 3) Create a new user
122
+ user_id = SecureRandom.uuid
123
+ response = snaptrade.authentication.register_snap_trade_user(user_id: user_id)
124
+ puts response
125
+
126
+ # 4) Get a redirect URI
127
+ redirect_uri = snaptrade.authentication.login_snap_trade_user(user_id: user_id, user_secret: response.user_secret)
128
+ puts redirect_uri
129
+
130
+ snaptrade.portfolio_management.create(user_id: user_id, user_secret: response.user_secret, id: SecureRandom.uuid, name: "MyPortfolio")
131
+ portfolios = snaptrade.portfolio_management.list(user_id: user_id, user_secret: response.user_secret)
132
+ puts portfolios
133
+
134
+ # 5) Obtaining account holdings data
135
+ holdings = snaptrade.account_information.get_all_user_holdings(user_id: user_id, user_secret: response.user_secret)
136
+ puts holdings
137
+
138
+ # 6) Deleting a user
139
+ deleted_response = snaptrade.authentication.delete_snap_trade_user(user_id: user_id)
140
+ puts deleted_response
141
+ end
142
+ end
143
+
144
+ end
@@ -0,0 +1,54 @@
1
+ =begin
2
+ #SnapTrade
3
+
4
+ #Connect brokerage accounts to your app for live positions and trading
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: api@snaptrade.com
8
+
9
+ =end
10
+
11
+ require 'spec_helper'
12
+ require 'json'
13
+ require 'date'
14
+
15
+ # Unit tests for SnapTrade::AccountHoldingsAccount
16
+ describe SnapTrade::AccountHoldingsAccount do
17
+ let(:instance) { SnapTrade::AccountHoldingsAccount.new }
18
+
19
+ describe 'test an instance of AccountHoldingsAccount' do
20
+ it 'should create an instance of AccountHoldingsAccount' do
21
+ expect(instance).to be_instance_of(SnapTrade::AccountHoldingsAccount)
22
+ end
23
+ end
24
+ describe 'test attribute "account"' do
25
+ it 'should work' do
26
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
27
+ end
28
+ end
29
+
30
+ describe 'test attribute "balances"' do
31
+ it 'should work' do
32
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
33
+ end
34
+ end
35
+
36
+ describe 'test attribute "positions"' do
37
+ it 'should work' do
38
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
39
+ end
40
+ end
41
+
42
+ describe 'test attribute "orders"' do
43
+ it 'should work' do
44
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
45
+ end
46
+ end
47
+
48
+ describe 'test attribute "total_value"' do
49
+ it 'should work' do
50
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
51
+ end
52
+ end
53
+
54
+ end