iex-ruby-client 0.4.4 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (129) hide show
  1. checksums.yaml +5 -5
  2. data/.rubocop.yml +6 -0
  3. data/.rubocop_todo.yml +8 -36
  4. data/CHANGELOG.md +5 -0
  5. data/LICENSE.md +1 -1
  6. data/README.md +113 -160
  7. data/UPGRADING.md +55 -3
  8. data/iex-ruby-client.gemspec +1 -1
  9. data/lib/iex-ruby-client.rb +2 -0
  10. data/lib/iex/api.rb +15 -31
  11. data/lib/iex/api/client.rb +30 -0
  12. data/lib/iex/api/config.rb +45 -0
  13. data/lib/iex/cloud.rb +3 -0
  14. data/lib/iex/cloud/connection.rb +37 -0
  15. data/lib/iex/cloud/request.rb +38 -0
  16. data/lib/iex/cloud/response.rb +20 -0
  17. data/lib/iex/endpoints/chart.rb +39 -0
  18. data/lib/iex/endpoints/company.rb +11 -0
  19. data/lib/iex/endpoints/crypto.rb +11 -0
  20. data/lib/iex/endpoints/dividends.rb +18 -0
  21. data/lib/iex/endpoints/earnings.rb +13 -0
  22. data/lib/iex/endpoints/key_stats.rb +11 -0
  23. data/lib/iex/endpoints/largest_trades.rb +13 -0
  24. data/lib/iex/endpoints/logo.rb +11 -0
  25. data/lib/iex/endpoints/news.rb +19 -0
  26. data/lib/iex/endpoints/ohlc.rb +17 -0
  27. data/lib/iex/endpoints/price.rb +11 -0
  28. data/lib/iex/endpoints/quote.rb +11 -0
  29. data/lib/iex/endpoints/sectors.rb +17 -0
  30. data/lib/iex/errors.rb +1 -0
  31. data/lib/iex/errors/client_error.rb +13 -1
  32. data/lib/iex/errors/permission_denied_error.rb +5 -0
  33. data/lib/iex/logger.rb +13 -0
  34. data/lib/iex/resources.rb +0 -1
  35. data/lib/iex/resources/chart.rb +38 -21
  36. data/lib/iex/resources/company.rb +2 -8
  37. data/lib/iex/resources/crypto.rb +10 -18
  38. data/lib/iex/resources/dividends.rb +5 -15
  39. data/lib/iex/resources/earnings.rb +1 -15
  40. data/lib/iex/resources/key_stats.rb +11 -57
  41. data/lib/iex/resources/largest_trades.rb +0 -10
  42. data/lib/iex/resources/logo.rb +0 -8
  43. data/lib/iex/resources/news.rb +1 -11
  44. data/lib/iex/resources/ohlc.rb +8 -16
  45. data/lib/iex/resources/quote.rb +0 -8
  46. data/lib/iex/resources/resource.rb +19 -2
  47. data/lib/iex/resources/sectors.rb +0 -10
  48. data/lib/iex/version.rb +1 -1
  49. data/spec/fixtures/iex/chart/1d.yml +472 -444
  50. data/spec/fixtures/iex/chart/20190306.yml +475 -0
  51. data/spec/fixtures/iex/chart/bad_option.yml +80 -62
  52. data/spec/fixtures/iex/chart/chartInterval.yml +121 -98
  53. data/spec/fixtures/iex/chart/dynamic/1m.yml +106 -81
  54. data/spec/fixtures/iex/chart/invalid.yml +80 -58
  55. data/spec/fixtures/iex/chart/msft.yml +106 -81
  56. data/spec/fixtures/iex/client/access_denied.yml +49 -0
  57. data/spec/fixtures/iex/company/invalid.yml +80 -58
  58. data/spec/fixtures/iex/company/msft.yml +87 -65
  59. data/spec/fixtures/iex/crypto/btcusdt.yml +87 -0
  60. data/spec/fixtures/iex/dividends/invalid.yml +80 -62
  61. data/spec/fixtures/iex/dividends/msft.yml +88 -66
  62. data/spec/fixtures/iex/dividends/msft_1y.yml +92 -68
  63. data/spec/fixtures/iex/dividends/msft_default_range.yml +85 -65
  64. data/spec/fixtures/iex/dividends/msft_invalid_range.yml +82 -64
  65. data/spec/fixtures/iex/earnings/invalid.yml +80 -62
  66. data/spec/fixtures/iex/earnings/msft.yml +84 -68
  67. data/spec/fixtures/iex/key_stats/invalid.yml +80 -62
  68. data/spec/fixtures/iex/key_stats/msft.yml +84 -65
  69. data/spec/fixtures/iex/largest-trades/aapl.yml +91 -73
  70. data/spec/fixtures/iex/largest-trades/invalid.yml +80 -62
  71. data/spec/fixtures/iex/logo/msft.yml +82 -64
  72. data/spec/fixtures/iex/news/invalid.yml +80 -58
  73. data/spec/fixtures/iex/news/msft.yml +83 -61
  74. data/spec/fixtures/iex/news/msft_7.yml +83 -61
  75. data/spec/fixtures/iex/ohlc/market.yml +82 -65
  76. data/spec/fixtures/iex/ohlc/msft.yml +82 -64
  77. data/spec/fixtures/iex/price/invalid.yml +80 -58
  78. data/spec/fixtures/iex/price/msft.yml +82 -60
  79. data/spec/fixtures/iex/quote/invalid.yml +80 -62
  80. data/spec/fixtures/iex/quote/msft.yml +84 -66
  81. data/spec/fixtures/iex/sectors/invalid.yml +80 -62
  82. data/spec/fixtures/iex/sectors/sectors-performance.yml +88 -69
  83. data/spec/iex/client_spec.rb +138 -0
  84. data/spec/iex/config_spec.rb +22 -0
  85. data/spec/iex/{resources → endpoints}/chart_spec.rb +23 -21
  86. data/spec/iex/{resources → endpoints}/company_spec.rb +11 -7
  87. data/spec/iex/endpoints/crypto_spec.rb +66 -0
  88. data/spec/iex/{resources → endpoints}/dividends_spec.rb +17 -14
  89. data/spec/iex/endpoints/earnings_spec.rb +36 -0
  90. data/spec/iex/endpoints/key_stats_spec.rb +62 -0
  91. data/spec/iex/{resources → endpoints}/largest_trades_spec.rb +8 -6
  92. data/spec/iex/{resources → endpoints}/logo_spec.rb +3 -1
  93. data/spec/iex/endpoints/news_spec.rb +36 -0
  94. data/spec/iex/{resources → endpoints}/ohlc_spec.rb +15 -13
  95. data/spec/iex/{resources → endpoints}/price_spec.rb +6 -4
  96. data/spec/iex/endpoints/quote_spec.rb +38 -0
  97. data/spec/iex/{resources → endpoints}/sectors_spec.rb +7 -6
  98. data/spec/iex/resources/{base_spec.rb → resource_spec.rb} +6 -6
  99. data/spec/spec_helper.rb +2 -0
  100. data/spec/support/client.rb +6 -0
  101. metadata +66 -59
  102. data/lib/iex/api/chart.rb +0 -24
  103. data/lib/iex/api/company.rb +0 -13
  104. data/lib/iex/api/crypto.rb +0 -13
  105. data/lib/iex/api/dividends.rb +0 -17
  106. data/lib/iex/api/earnings.rb +0 -13
  107. data/lib/iex/api/key_stats.rb +0 -13
  108. data/lib/iex/api/largest_trades.rb +0 -13
  109. data/lib/iex/api/logo.rb +0 -13
  110. data/lib/iex/api/news.rb +0 -18
  111. data/lib/iex/api/ohlc.rb +0 -17
  112. data/lib/iex/api/price.rb +0 -13
  113. data/lib/iex/api/quote.rb +0 -13
  114. data/lib/iex/api/sectors.rb +0 -16
  115. data/lib/iex/resources/base.rb +0 -27
  116. data/lib/iex/resources/chart/base.rb +0 -14
  117. data/lib/iex/resources/chart/default.rb +0 -21
  118. data/lib/iex/resources/chart/one_day.rb +0 -20
  119. data/lib/iex/resources/ohlc/base.rb +0 -14
  120. data/lib/iex/resources/ohlc/timed_price.rb +0 -12
  121. data/lib/iex/resources/price.rb +0 -13
  122. data/spec/fixtures/iex/chart/20180227.yml +0 -452
  123. data/spec/fixtures/iex/crypto.yml +0 -101
  124. data/spec/fixtures/iex/news/market.yml +0 -64
  125. data/spec/iex/resources/crypto_spec.rb +0 -65
  126. data/spec/iex/resources/earnings_spec.rb +0 -38
  127. data/spec/iex/resources/key_stats_spec.rb +0 -94
  128. data/spec/iex/resources/news_spec.rb +0 -44
  129. data/spec/iex/resources/quote_spec.rb +0 -38
@@ -1,65 +1,83 @@
1
1
  ---
2
2
  http_interactions:
3
- - request:
4
- method: get
5
- uri: https://api.iextrading.com/1.0/stock/INVALID/earnings
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- User-Agent:
11
- - Faraday v0.15.2
12
- Accept-Encoding:
13
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
- Accept:
15
- - "*/*"
16
- response:
17
- status:
18
- code: 404
19
- message: Not Found
20
- headers:
21
- Server:
22
- - nginx
23
- Date:
24
- - Wed, 15 Aug 2018 01:06:15 GMT
25
- Content-Type:
26
- - text/html; charset=utf-8
27
- Transfer-Encoding:
28
- - chunked
29
- Connection:
30
- - keep-alive
31
- Set-Cookie:
32
- - ctoken=29d5876cf17f40ebb98f027a7a443647; Domain=.iextrading.com; Path=/; Expires=Wed,
33
- 15 Aug 2018 13:06:15 GMT; Secure
34
- Content-Security-Policy:
35
- - default-src 'self'; child-src 'none'; object-src 'none'; style-src 'self'
36
- 'unsafe-inline'; font-src data:; frame-src 'self'; connect-src 'self' https://auth.iextrading.com
37
- https://api.iextrading.com https://api.iextrading.com wss://iextrading.com
38
- wss://tops.iextrading.com wss://api.iextrading.com wss://iextrading.com; script-src
39
- 'self' 'unsafe-inline' 'unsafe-eval';
40
- X-Content-Security-Policy:
41
- - default-src 'self'; child-src 'none'; object-src 'none'; style-src 'self'
42
- 'unsafe-inline'; font-src data:; frame-src 'self'; connect-src 'self' https://auth.iextrading.com
43
- https://api.iextrading.com https://api.iextrading.com wss://iextrading.com
44
- wss://tops.iextrading.com wss://api.iextrading.com wss://iextrading.com; script-src
45
- 'self' 'unsafe-inline' 'unsafe-eval';
46
- Frame-Options:
47
- - SAMEORIGIN
48
- X-Frame-Options:
49
- - SAMEORIGIN
50
- Strict-Transport-Security:
51
- - max-age=15768000
52
- Access-Control-Allow-Origin:
53
- - "*"
54
- Access-Control-Allow-Credentials:
55
- - 'true'
56
- Access-Control-Allow-Methods:
57
- - GET, OPTIONS
58
- Access-Control-Allow-Headers:
59
- - Origin, X-Requested-With, Content-Type, Accept
60
- body:
61
- encoding: ASCII-8BIT
62
- string: Unknown symbol
63
- http_version:
64
- recorded_at: Wed, 15 Aug 2018 01:06:15 GMT
3
+ - request:
4
+ method: get
5
+ uri: https://cloud.iexapis.com/v1/stock/INVALID/earnings?token=test-iex-api-publishable-token
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ""
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.15.4
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ response:
17
+ status:
18
+ code: 404
19
+ message: Not Found
20
+ headers:
21
+ Server:
22
+ - nginx
23
+ Date:
24
+ - Fri, 05 Apr 2019 11:55:15 GMT
25
+ Content-Type:
26
+ - text/html; charset=utf-8
27
+ Transfer-Encoding:
28
+ - chunked
29
+ Connection:
30
+ - keep-alive
31
+ Set-Cookie:
32
+ - ctoken=cdfd24012c8f4bb7afa2b06c0575f6eb; Max-Age=43200; Path=/; Expires=Fri,
33
+ 05 Apr 2019 23:55:15 GMT
34
+ Content-Security-Policy:
35
+ - "default-src 'self'; child-src 'none'; object-src 'self'; style-src
36
+ 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self'
37
+ https://js.intercomcdn.com/fonts/ https://fonts.gstatic.com; frame-src 'self'
38
+ https://portal.productboard.com/ https://js.stripe.com/; img-src 'self'
39
+ data: https://*.intercomcdn.com/ https://static.intercomassets.com/ https://www.google-analytics.com
40
+ https://downloads.intercomcdn.com/; connect-src 'self' https://auth.iexcloud.io
41
+ https://api.iexcloud.io https://api.iexcloud.io https://cloud.iexapis.com
42
+ wss://iexcloud.io wss://tops.iexcloud.io wss://api.iexcloud.io wss://iexcloud.io
43
+ https://api-iam.intercom.io/messenger/ https://nexus-websocket-a.intercom.io/
44
+ https://nexus-websocket-b.intercom.io/ wss://nexus-websocket-a.intercom.io/
45
+ wss://nexus-websocket-b.intercom.io/ https://www.google-analytics.com; script-src
46
+ 'self' 'unsafe-inline' 'unsafe-eval' https://www.google.com/recaptcha/api.js
47
+ https://www.google-analytics.com https://js.stripe.com/v3/ https://widget.intercom.io/widget/lhos563b
48
+ https://js.intercomcdn.com/ https://www.googletagmanager.com;"
49
+ X-Content-Security-Policy:
50
+ - "default-src 'self'; child-src 'none'; object-src 'self'; style-src
51
+ 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self'
52
+ https://js.intercomcdn.com/fonts/ https://fonts.gstatic.com; frame-src 'self'
53
+ https://portal.productboard.com/ https://js.stripe.com/; img-src 'self'
54
+ data: https://*.intercomcdn.com/ https://static.intercomassets.com/ https://www.google-analytics.com
55
+ https://downloads.intercomcdn.com/; connect-src 'self' https://auth.iexcloud.io
56
+ https://api.iexcloud.io https://api.iexcloud.io https://cloud.iexapis.com
57
+ wss://iexcloud.io wss://tops.iexcloud.io wss://api.iexcloud.io wss://iexcloud.io
58
+ https://api-iam.intercom.io/messenger/ https://nexus-websocket-a.intercom.io/
59
+ https://nexus-websocket-b.intercom.io/ wss://nexus-websocket-a.intercom.io/
60
+ wss://nexus-websocket-b.intercom.io/ https://www.google-analytics.com; script-src
61
+ 'self' 'unsafe-inline' 'unsafe-eval' https://www.google.com/recaptcha/api.js
62
+ https://www.google-analytics.com https://js.stripe.com/v3/ https://widget.intercom.io/widget/lhos563b
63
+ https://js.intercomcdn.com/ https://www.googletagmanager.com;"
64
+ Frame-Options:
65
+ - SAMEORIGIN
66
+ X-Frame-Options:
67
+ - SAMEORIGIN
68
+ Strict-Transport-Security:
69
+ - max-age=15768000
70
+ Access-Control-Allow-Origin:
71
+ - "*"
72
+ Access-Control-Allow-Credentials:
73
+ - "true"
74
+ Access-Control-Allow-Methods:
75
+ - GET, OPTIONS
76
+ Access-Control-Allow-Headers:
77
+ - Origin, X-Requested-With, Content-Type, Accept
78
+ body:
79
+ encoding: ASCII-8BIT
80
+ string: Unknown symbol
81
+ http_version:
82
+ recorded_at: Fri, 05 Apr 2019 11:55:15 GMT
65
83
  recorded_with: VCR 4.0.0
@@ -1,71 +1,87 @@
1
1
  ---
2
2
  http_interactions:
3
- - request:
4
- method: get
5
- uri: https://api.iextrading.com/1.0/stock/MSFT/earnings
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- User-Agent:
11
- - Faraday v0.15.2
12
- Accept-Encoding:
13
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
- Accept:
15
- - "*/*"
16
- response:
17
- status:
18
- code: 200
19
- message: OK
20
- headers:
21
- Server:
22
- - nginx
23
- Date:
24
- - Wed, 15 Aug 2018 01:14:34 GMT
25
- Content-Type:
26
- - application/json; charset=utf-8
27
- Content-Length:
28
- - '1346'
29
- Connection:
30
- - keep-alive
31
- Set-Cookie:
32
- - ctoken=7590339f2473416cbe5a802b0fbcafc5; Domain=.iextrading.com; Path=/; Expires=Wed,
33
- 15 Aug 2018 13:14:34 GMT; Secure
34
- Content-Security-Policy:
35
- - default-src 'self'; child-src 'none'; object-src 'none'; style-src 'self'
36
- 'unsafe-inline'; font-src data:; frame-src 'self'; connect-src 'self' https://auth.iextrading.com
37
- https://api.iextrading.com https://api.iextrading.com wss://iextrading.com
38
- wss://tops.iextrading.com wss://api.iextrading.com wss://iextrading.com; script-src
39
- 'self' 'unsafe-inline' 'unsafe-eval';
40
- X-Content-Security-Policy:
41
- - default-src 'self'; child-src 'none'; object-src 'none'; style-src 'self'
42
- 'unsafe-inline'; font-src data:; frame-src 'self'; connect-src 'self' https://auth.iextrading.com
43
- https://api.iextrading.com https://api.iextrading.com wss://iextrading.com
44
- wss://tops.iextrading.com wss://api.iextrading.com wss://iextrading.com; script-src
45
- 'self' 'unsafe-inline' 'unsafe-eval';
46
- Frame-Options:
47
- - SAMEORIGIN
48
- X-Frame-Options:
49
- - SAMEORIGIN
50
- X-Content-Type-Options:
51
- - nosniff
52
- Strict-Transport-Security:
53
- - max-age=15768000
54
- Access-Control-Allow-Origin:
55
- - "*"
56
- Access-Control-Allow-Credentials:
57
- - 'true'
58
- Access-Control-Allow-Methods:
59
- - GET, OPTIONS
60
- Access-Control-Allow-Headers:
61
- - Origin, X-Requested-With, Content-Type, Accept
62
- body:
63
- encoding: UTF-8
64
- string: '{"symbol":"MSFT","earnings":[{"actualEPS":1.13,"consensusEPS":1.07,"estimatedEPS":1.07,"announceTime":"AMC","numberOfEstimates":14,"EPSSurpriseDollar":0.06,"EPSReportDate":"2018-07-19","fiscalPeriod":"Q4
65
- 2018","fiscalEndDate":"2018-06-30","yearAgo":0.98,"yearAgoChangePercent":0.15306122448979584,"estimatedChangePercent":0.09183673469387764,"symbolId":4563},{"actualEPS":0.95,"consensusEPS":0.85,"estimatedEPS":0.85,"announceTime":"AMC","numberOfEstimates":14,"EPSSurpriseDollar":0.1,"EPSReportDate":"2018-04-26","fiscalPeriod":"Q3
66
- 2018","fiscalEndDate":"2018-03-31","yearAgo":0.73,"yearAgoChangePercent":0.3013698630136986,"estimatedChangePercent":0.1643835616438356,"symbolId":4563},{"actualEPS":0.96,"consensusEPS":0.86,"estimatedEPS":0.86,"announceTime":"AMC","numberOfEstimates":14,"EPSSurpriseDollar":0.1,"EPSReportDate":"2018-01-31","fiscalPeriod":"Q2
67
- 2018","fiscalEndDate":"2017-12-31","yearAgo":0.83,"yearAgoChangePercent":0.1566265060240964,"estimatedChangePercent":0.036144578313253045,"symbolId":4563},{"actualEPS":0.84,"consensusEPS":0.72,"estimatedEPS":0.72,"announceTime":"AMC","numberOfEstimates":14,"EPSSurpriseDollar":0.12,"EPSReportDate":"2017-10-26","fiscalPeriod":"Q1
68
- 2018","fiscalEndDate":"2017-09-30","yearAgo":0.76,"yearAgoChangePercent":0.1052631578947368,"estimatedChangePercent":-0.05263157894736847,"symbolId":4563}]}'
69
- http_version:
70
- recorded_at: Wed, 15 Aug 2018 01:14:34 GMT
3
+ - request:
4
+ method: get
5
+ uri: https://cloud.iexapis.com/v1/stock/MSFT/earnings?token=test-iex-api-publishable-token
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ""
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.15.4
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - nginx
23
+ Date:
24
+ - Fri, 05 Apr 2019 11:55:14 GMT
25
+ Content-Type:
26
+ - application/json; charset=utf-8
27
+ Transfer-Encoding:
28
+ - chunked
29
+ Connection:
30
+ - keep-alive
31
+ Set-Cookie:
32
+ - ctoken=00523885724047739da8f10cf0fd6f40; Max-Age=43200; Path=/; Expires=Fri,
33
+ 05 Apr 2019 23:55:14 GMT
34
+ Content-Security-Policy:
35
+ - "default-src 'self'; child-src 'none'; object-src 'self'; style-src
36
+ 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self'
37
+ https://js.intercomcdn.com/fonts/ https://fonts.gstatic.com; frame-src 'self'
38
+ https://portal.productboard.com/ https://js.stripe.com/; img-src 'self'
39
+ data: https://*.intercomcdn.com/ https://static.intercomassets.com/ https://www.google-analytics.com
40
+ https://downloads.intercomcdn.com/; connect-src 'self' https://auth.iexcloud.io
41
+ https://api.iexcloud.io https://api.iexcloud.io https://cloud.iexapis.com
42
+ wss://iexcloud.io wss://tops.iexcloud.io wss://api.iexcloud.io wss://iexcloud.io
43
+ https://api-iam.intercom.io/messenger/ https://nexus-websocket-a.intercom.io/
44
+ https://nexus-websocket-b.intercom.io/ wss://nexus-websocket-a.intercom.io/
45
+ wss://nexus-websocket-b.intercom.io/ https://www.google-analytics.com; script-src
46
+ 'self' 'unsafe-inline' 'unsafe-eval' https://www.google.com/recaptcha/api.js
47
+ https://www.google-analytics.com https://js.stripe.com/v3/ https://widget.intercom.io/widget/lhos563b
48
+ https://js.intercomcdn.com/ https://www.googletagmanager.com;"
49
+ X-Content-Security-Policy:
50
+ - "default-src 'self'; child-src 'none'; object-src 'self'; style-src
51
+ 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self'
52
+ https://js.intercomcdn.com/fonts/ https://fonts.gstatic.com; frame-src 'self'
53
+ https://portal.productboard.com/ https://js.stripe.com/; img-src 'self'
54
+ data: https://*.intercomcdn.com/ https://static.intercomassets.com/ https://www.google-analytics.com
55
+ https://downloads.intercomcdn.com/; connect-src 'self' https://auth.iexcloud.io
56
+ https://api.iexcloud.io https://api.iexcloud.io https://cloud.iexapis.com
57
+ wss://iexcloud.io wss://tops.iexcloud.io wss://api.iexcloud.io wss://iexcloud.io
58
+ https://api-iam.intercom.io/messenger/ https://nexus-websocket-a.intercom.io/
59
+ https://nexus-websocket-b.intercom.io/ wss://nexus-websocket-a.intercom.io/
60
+ wss://nexus-websocket-b.intercom.io/ https://www.google-analytics.com; script-src
61
+ 'self' 'unsafe-inline' 'unsafe-eval' https://www.google.com/recaptcha/api.js
62
+ https://www.google-analytics.com https://js.stripe.com/v3/ https://widget.intercom.io/widget/lhos563b
63
+ https://js.intercomcdn.com/ https://www.googletagmanager.com;"
64
+ Frame-Options:
65
+ - SAMEORIGIN
66
+ X-Frame-Options:
67
+ - SAMEORIGIN
68
+ X-Content-Type-Options:
69
+ - nosniff
70
+ Strict-Transport-Security:
71
+ - max-age=15768000
72
+ Access-Control-Allow-Origin:
73
+ - "*"
74
+ Access-Control-Allow-Credentials:
75
+ - "true"
76
+ Access-Control-Allow-Methods:
77
+ - GET, OPTIONS
78
+ Access-Control-Allow-Headers:
79
+ - Origin, X-Requested-With, Content-Type, Accept
80
+ body:
81
+ encoding: ASCII-8BIT
82
+ string:
83
+ '{"symbol":"MSFT","earnings":[{"actualEPS":1.1,"consensusEPS":1.09,"announceTime":"AMC","numberOfEstimates":29,"EPSSurpriseDollar":0.01,"EPSReportDate":"2019-01-30","fiscalPeriod":"Q4
84
+ 2018","fiscalEndDate":"2018-12-31","yearAgo":0.96,"yearAgoChangePercent":0.1458}]}'
85
+ http_version:
86
+ recorded_at: Fri, 05 Apr 2019 11:55:14 GMT
71
87
  recorded_with: VCR 4.0.0
@@ -1,65 +1,83 @@
1
1
  ---
2
2
  http_interactions:
3
- - request:
4
- method: get
5
- uri: https://api.iextrading.com/1.0/stock/INVALID/stats
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- User-Agent:
11
- - Faraday v0.15.2
12
- Accept-Encoding:
13
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
- Accept:
15
- - "*/*"
16
- response:
17
- status:
18
- code: 404
19
- message: Not Found
20
- headers:
21
- Server:
22
- - nginx
23
- Date:
24
- - Fri, 03 Aug 2018 23:45:27 GMT
25
- Content-Type:
26
- - text/html; charset=utf-8
27
- Transfer-Encoding:
28
- - chunked
29
- Connection:
30
- - keep-alive
31
- Set-Cookie:
32
- - ctoken=f749efd72bd44615ae05dbd800720ac3; Domain=.iextrading.com; Path=/; Expires=Sat,
33
- 04 Aug 2018 11:45:27 GMT; Secure
34
- Content-Security-Policy:
35
- - default-src 'self'; child-src 'none'; object-src 'none'; style-src 'self'
36
- 'unsafe-inline'; font-src data:; frame-src 'self'; connect-src 'self' https://auth.iextrading.com
37
- https://api.iextrading.com https://api.iextrading.com wss://iextrading.com
38
- wss://tops.iextrading.com wss://api.iextrading.com wss://iextrading.com; script-src
39
- 'self' 'unsafe-inline' 'unsafe-eval';
40
- X-Content-Security-Policy:
41
- - default-src 'self'; child-src 'none'; object-src 'none'; style-src 'self'
42
- 'unsafe-inline'; font-src data:; frame-src 'self'; connect-src 'self' https://auth.iextrading.com
43
- https://api.iextrading.com https://api.iextrading.com wss://iextrading.com
44
- wss://tops.iextrading.com wss://api.iextrading.com wss://iextrading.com; script-src
45
- 'self' 'unsafe-inline' 'unsafe-eval';
46
- Frame-Options:
47
- - SAMEORIGIN
48
- X-Frame-Options:
49
- - SAMEORIGIN
50
- Strict-Transport-Security:
51
- - max-age=15768000
52
- Access-Control-Allow-Origin:
53
- - "*"
54
- Access-Control-Allow-Credentials:
55
- - 'true'
56
- Access-Control-Allow-Methods:
57
- - GET, OPTIONS
58
- Access-Control-Allow-Headers:
59
- - Origin, X-Requested-With, Content-Type, Accept
60
- body:
61
- encoding: ASCII-8BIT
62
- string: Unknown symbol
63
- http_version:
64
- recorded_at: Fri, 03 Aug 2018 23:45:27 GMT
3
+ - request:
4
+ method: get
5
+ uri: https://cloud.iexapis.com/v1/stock/INVALID/stats?token=test-iex-api-publishable-token
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ""
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.15.4
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ response:
17
+ status:
18
+ code: 404
19
+ message: Not Found
20
+ headers:
21
+ Server:
22
+ - nginx
23
+ Date:
24
+ - Fri, 05 Apr 2019 11:12:07 GMT
25
+ Content-Type:
26
+ - text/html; charset=utf-8
27
+ Transfer-Encoding:
28
+ - chunked
29
+ Connection:
30
+ - keep-alive
31
+ Set-Cookie:
32
+ - ctoken=7789b1a215e44d0fb0f4f533454ee0e4; Max-Age=43200; Path=/; Expires=Fri,
33
+ 05 Apr 2019 23:12:07 GMT
34
+ Content-Security-Policy:
35
+ - "default-src 'self'; child-src 'none'; object-src 'self'; style-src
36
+ 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self'
37
+ https://js.intercomcdn.com/fonts/ https://fonts.gstatic.com; frame-src 'self'
38
+ https://portal.productboard.com/ https://js.stripe.com/; img-src 'self'
39
+ data: https://*.intercomcdn.com/ https://static.intercomassets.com/ https://www.google-analytics.com
40
+ https://downloads.intercomcdn.com/; connect-src 'self' https://auth.iexcloud.io
41
+ https://api.iexcloud.io https://api.iexcloud.io https://cloud.iexapis.com
42
+ wss://iexcloud.io wss://tops.iexcloud.io wss://api.iexcloud.io wss://iexcloud.io
43
+ https://api-iam.intercom.io/messenger/ https://nexus-websocket-a.intercom.io/
44
+ https://nexus-websocket-b.intercom.io/ wss://nexus-websocket-a.intercom.io/
45
+ wss://nexus-websocket-b.intercom.io/ https://www.google-analytics.com; script-src
46
+ 'self' 'unsafe-inline' 'unsafe-eval' https://www.google.com/recaptcha/api.js
47
+ https://www.google-analytics.com https://js.stripe.com/v3/ https://widget.intercom.io/widget/lhos563b
48
+ https://js.intercomcdn.com/ https://www.googletagmanager.com;"
49
+ X-Content-Security-Policy:
50
+ - "default-src 'self'; child-src 'none'; object-src 'self'; style-src
51
+ 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self'
52
+ https://js.intercomcdn.com/fonts/ https://fonts.gstatic.com; frame-src 'self'
53
+ https://portal.productboard.com/ https://js.stripe.com/; img-src 'self'
54
+ data: https://*.intercomcdn.com/ https://static.intercomassets.com/ https://www.google-analytics.com
55
+ https://downloads.intercomcdn.com/; connect-src 'self' https://auth.iexcloud.io
56
+ https://api.iexcloud.io https://api.iexcloud.io https://cloud.iexapis.com
57
+ wss://iexcloud.io wss://tops.iexcloud.io wss://api.iexcloud.io wss://iexcloud.io
58
+ https://api-iam.intercom.io/messenger/ https://nexus-websocket-a.intercom.io/
59
+ https://nexus-websocket-b.intercom.io/ wss://nexus-websocket-a.intercom.io/
60
+ wss://nexus-websocket-b.intercom.io/ https://www.google-analytics.com; script-src
61
+ 'self' 'unsafe-inline' 'unsafe-eval' https://www.google.com/recaptcha/api.js
62
+ https://www.google-analytics.com https://js.stripe.com/v3/ https://widget.intercom.io/widget/lhos563b
63
+ https://js.intercomcdn.com/ https://www.googletagmanager.com;"
64
+ Frame-Options:
65
+ - SAMEORIGIN
66
+ X-Frame-Options:
67
+ - SAMEORIGIN
68
+ Strict-Transport-Security:
69
+ - max-age=15768000
70
+ Access-Control-Allow-Origin:
71
+ - "*"
72
+ Access-Control-Allow-Credentials:
73
+ - "true"
74
+ Access-Control-Allow-Methods:
75
+ - GET, OPTIONS
76
+ Access-Control-Allow-Headers:
77
+ - Origin, X-Requested-With, Content-Type, Accept
78
+ body:
79
+ encoding: ASCII-8BIT
80
+ string: Unknown symbol
81
+ http_version:
82
+ recorded_at: Fri, 05 Apr 2019 11:12:07 GMT
65
83
  recorded_with: VCR 4.0.0
@@ -1,68 +1,87 @@
1
1
  ---
2
2
  http_interactions:
3
- - request:
4
- method: get
5
- uri: https://api.iextrading.com/1.0/stock/MSFT/stats
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- User-Agent:
11
- - Faraday v0.15.2
12
- Accept-Encoding:
13
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
- Accept:
15
- - "*/*"
16
- response:
17
- status:
18
- code: 200
19
- message: OK
20
- headers:
21
- Server:
22
- - nginx
23
- Date:
24
- - Fri, 03 Aug 2018 23:45:26 GMT
25
- Content-Type:
26
- - application/json; charset=utf-8
27
- Content-Length:
28
- - '1311'
29
- Connection:
30
- - keep-alive
31
- Set-Cookie:
32
- - ctoken=743c58ee68264c2c8adc8b1713024ad6; Domain=.iextrading.com; Path=/; Expires=Sat,
33
- 04 Aug 2018 11:45:26 GMT; Secure
34
- Content-Security-Policy:
35
- - default-src 'self'; child-src 'none'; object-src 'none'; style-src 'self'
36
- 'unsafe-inline'; font-src data:; frame-src 'self'; connect-src 'self' https://auth.iextrading.com
37
- https://api.iextrading.com https://api.iextrading.com wss://iextrading.com
38
- wss://tops.iextrading.com wss://api.iextrading.com wss://iextrading.com; script-src
39
- 'self' 'unsafe-inline' 'unsafe-eval';
40
- X-Content-Security-Policy:
41
- - default-src 'self'; child-src 'none'; object-src 'none'; style-src 'self'
42
- 'unsafe-inline'; font-src data:; frame-src 'self'; connect-src 'self' https://auth.iextrading.com
43
- https://api.iextrading.com https://api.iextrading.com wss://iextrading.com
44
- wss://tops.iextrading.com wss://api.iextrading.com wss://iextrading.com; script-src
45
- 'self' 'unsafe-inline' 'unsafe-eval';
46
- Frame-Options:
47
- - SAMEORIGIN
48
- X-Frame-Options:
49
- - SAMEORIGIN
50
- X-Content-Type-Options:
51
- - nosniff
52
- Strict-Transport-Security:
53
- - max-age=15768000
54
- Access-Control-Allow-Origin:
55
- - "*"
56
- Access-Control-Allow-Credentials:
57
- - 'true'
58
- Access-Control-Allow-Methods:
59
- - GET, OPTIONS
60
- Access-Control-Allow-Headers:
61
- - Origin, X-Requested-With, Content-Type, Accept
62
- body:
63
- encoding: UTF-8
64
- string: '{"companyName":"Microsoft Corporation","marketcap":825814890000,"beta":1.261768,"week52high":111.15,"week52low":71.28,"week52change":51.7715,"shortInterest":47158592,"shortDate":"2018-07-13","dividendRate":1.68,"dividendYield":1.5617738,"exDividendDate":"2018-08-15
65
- 00:00:00.0","latestEPS":2.11,"latestEPSDate":"2018-06-30","sharesOutstanding":7677000000,"float":7217387757,"returnOnEquity":20.82,"consensusEPS":0.86,"numberOfEstimates":14,"EPSSurpriseDollar":null,"EPSSurprisePercent":11.6279,"symbol":"MSFT","EBITDA":23558000000,"revenue":53456000000,"grossProfit":34114000000,"cash":281251000000,"debt":180503000000,"ttmEPS":3.51,"revenuePerShare":7,"revenuePerEmployee":431097,"peRatioHigh":0,"peRatioLow":0,"returnOnAssets":6.46,"returnOnCapital":null,"profitMargin":15.1,"priceToSales":7.393182,"priceToBook":10.73,"day200MovingAvg":91.99065,"day50MovingAvg":102.2528,"institutionPercent":75.1,"insiderPercent":null,"shortRatio":1.7330703,"year5ChangePercent":2.85141424991049,"year2ChangePercent":0.9732002824884664,"year1ChangePercent":0.5200287133805482,"ytdChangePercent":0.2628699562098638,"month6ChangePercent":0.23345097958275707,"month3ChangePercent":0.14846686026648437,"month1ChangePercent":0.08601716304896513,"day5ChangePercent":-0.0010215453194652084,"day30ChangePercent":0.06357524223848124}'
66
- http_version:
67
- recorded_at: Fri, 03 Aug 2018 23:45:26 GMT
3
+ - request:
4
+ method: get
5
+ uri: https://cloud.iexapis.com/v1/stock/MSFT/stats?token=test-iex-api-publishable-token
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ""
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.15.4
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - nginx
23
+ Date:
24
+ - Fri, 05 Apr 2019 11:12:06 GMT
25
+ Content-Type:
26
+ - application/json; charset=utf-8
27
+ Transfer-Encoding:
28
+ - chunked
29
+ Connection:
30
+ - keep-alive
31
+ Set-Cookie:
32
+ - ctoken=d97d88c8b53e4d2a8bb9f9dd1d48984f; Max-Age=43200; Path=/; Expires=Fri,
33
+ 05 Apr 2019 23:12:06 GMT
34
+ Content-Security-Policy:
35
+ - "default-src 'self'; child-src 'none'; object-src 'self'; style-src
36
+ 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self'
37
+ https://js.intercomcdn.com/fonts/ https://fonts.gstatic.com; frame-src 'self'
38
+ https://portal.productboard.com/ https://js.stripe.com/; img-src 'self'
39
+ data: https://*.intercomcdn.com/ https://static.intercomassets.com/ https://www.google-analytics.com
40
+ https://downloads.intercomcdn.com/; connect-src 'self' https://auth.iexcloud.io
41
+ https://api.iexcloud.io https://api.iexcloud.io https://cloud.iexapis.com
42
+ wss://iexcloud.io wss://tops.iexcloud.io wss://api.iexcloud.io wss://iexcloud.io
43
+ https://api-iam.intercom.io/messenger/ https://nexus-websocket-a.intercom.io/
44
+ https://nexus-websocket-b.intercom.io/ wss://nexus-websocket-a.intercom.io/
45
+ wss://nexus-websocket-b.intercom.io/ https://www.google-analytics.com; script-src
46
+ 'self' 'unsafe-inline' 'unsafe-eval' https://www.google.com/recaptcha/api.js
47
+ https://www.google-analytics.com https://js.stripe.com/v3/ https://widget.intercom.io/widget/lhos563b
48
+ https://js.intercomcdn.com/ https://www.googletagmanager.com;"
49
+ X-Content-Security-Policy:
50
+ - "default-src 'self'; child-src 'none'; object-src 'self'; style-src
51
+ 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self'
52
+ https://js.intercomcdn.com/fonts/ https://fonts.gstatic.com; frame-src 'self'
53
+ https://portal.productboard.com/ https://js.stripe.com/; img-src 'self'
54
+ data: https://*.intercomcdn.com/ https://static.intercomassets.com/ https://www.google-analytics.com
55
+ https://downloads.intercomcdn.com/; connect-src 'self' https://auth.iexcloud.io
56
+ https://api.iexcloud.io https://api.iexcloud.io https://cloud.iexapis.com
57
+ wss://iexcloud.io wss://tops.iexcloud.io wss://api.iexcloud.io wss://iexcloud.io
58
+ https://api-iam.intercom.io/messenger/ https://nexus-websocket-a.intercom.io/
59
+ https://nexus-websocket-b.intercom.io/ wss://nexus-websocket-a.intercom.io/
60
+ wss://nexus-websocket-b.intercom.io/ https://www.google-analytics.com; script-src
61
+ 'self' 'unsafe-inline' 'unsafe-eval' https://www.google.com/recaptcha/api.js
62
+ https://www.google-analytics.com https://js.stripe.com/v3/ https://widget.intercom.io/widget/lhos563b
63
+ https://js.intercomcdn.com/ https://www.googletagmanager.com;"
64
+ Frame-Options:
65
+ - SAMEORIGIN
66
+ X-Frame-Options:
67
+ - SAMEORIGIN
68
+ X-Content-Type-Options:
69
+ - nosniff
70
+ Strict-Transport-Security:
71
+ - max-age=15768000
72
+ Access-Control-Allow-Origin:
73
+ - "*"
74
+ Access-Control-Allow-Credentials:
75
+ - "true"
76
+ Access-Control-Allow-Methods:
77
+ - GET, OPTIONS
78
+ Access-Control-Allow-Headers:
79
+ - Origin, X-Requested-With, Content-Type, Accept
80
+ body:
81
+ encoding: ASCII-8BIT
82
+ string:
83
+ '{"week52change":0.292055,"week52high":120.82,"week52low":89.48,"marketcap":915754985600,"employees":131000,"day200MovingAvg":108.04,"day50MovingAvg":111.56,"float":7541169096,"avg10Volume":23716223.6,"avg30Volume":26552395.97,"ttmEPS":4.35,"ttmDividendRate":1.76,"companyName":"Microsoft
84
+ Corp.","sharesOutstanding":7672210000,"maxChangePercent":3.901848,"year5ChangePercent":1.998995,"year2ChangePercent":0.820622,"year1ChangePercent":0.292055,"ytdChangePercent":0.18038,"month6ChangePercent":0.064479,"month3ChangePercent":0.169508,"month1ChangePercent":0.068577,"day30ChangePercent":0.075606,"day5ChangePercent":0.01204,"nextDividendRate":null,"nextDividendDate":"2019-05-15","dividendYield":0.014745308310991957,"nextEarningsDate":"2019-04-25","exDividendDate":"2019-05-15","peRatio":27.44}'
85
+ http_version:
86
+ recorded_at: Fri, 05 Apr 2019 11:12:06 GMT
68
87
  recorded_with: VCR 4.0.0