betfair_api_ng_rails 0.0.8 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +6 -28
  3. data/Rakefile +10 -1
  4. data/betfair_api_ng_rails.gemspec +3 -0
  5. data/lib/betfair_api_ng_rails.rb +92 -73
  6. data/lib/betfair_api_ng_rails/api/concerns/errorable.rb +19 -0
  7. data/lib/betfair_api_ng_rails/api/config.rb +27 -0
  8. data/lib/betfair_api_ng_rails/api/connection.rb +34 -0
  9. data/lib/betfair_api_ng_rails/api/connection_ext/formatting.rb +34 -0
  10. data/lib/betfair_api_ng_rails/api/connection_ext/parsing.rb +29 -0
  11. data/lib/betfair_api_ng_rails/api/constants.rb +51 -0
  12. data/lib/betfair_api_ng_rails/api/data/attributes.rb +50 -0
  13. data/lib/betfair_api_ng_rails/api/data/base.rb +16 -0
  14. data/lib/betfair_api_ng_rails/api/data/competition.rb +20 -0
  15. data/lib/betfair_api_ng_rails/api/data/competition_result.rb +21 -0
  16. data/lib/betfair_api_ng_rails/api/data/concerns/hashable.rb +29 -0
  17. data/lib/betfair_api_ng_rails/api/data/constants.rb +11 -0
  18. data/lib/betfair_api_ng_rails/api/data/country_code_result.rb +19 -0
  19. data/lib/betfair_api_ng_rails/api/data/event.rb +20 -0
  20. data/lib/betfair_api_ng_rails/api/data/event_result.rb +19 -0
  21. data/lib/betfair_api_ng_rails/api/data/event_type.rb +20 -0
  22. data/lib/betfair_api_ng_rails/api/data/event_type_result.rb +19 -0
  23. data/lib/betfair_api_ng_rails/api/data/market_filter.rb +16 -0
  24. data/lib/betfair_api_ng_rails/api/data/market_type_result.rb +19 -0
  25. data/lib/betfair_api_ng_rails/api/data/time_range.rb +20 -0
  26. data/lib/betfair_api_ng_rails/api/data/time_range_result.rb +19 -0
  27. data/lib/betfair_api_ng_rails/api/data/venue_result.rb +19 -0
  28. data/lib/betfair_api_ng_rails/api/enums/bet_status.rb +15 -0
  29. data/lib/betfair_api_ng_rails/api/enums/concerns/enumable.rb +15 -0
  30. data/lib/betfair_api_ng_rails/api/enums/execution_report_error_code.rb +28 -0
  31. data/lib/betfair_api_ng_rails/api/enums/execution_report_status.rb +15 -0
  32. data/lib/betfair_api_ng_rails/api/enums/group_by.rb +17 -0
  33. data/lib/betfair_api_ng_rails/api/enums/instruction_report_error_code.rb +31 -0
  34. data/lib/betfair_api_ng_rails/api/enums/instruction_report_status.rb +14 -0
  35. data/lib/betfair_api_ng_rails/api/enums/market_betting_type.rb +17 -0
  36. data/lib/betfair_api_ng_rails/api/enums/market_projection.rb +18 -0
  37. data/lib/betfair_api_ng_rails/api/enums/market_sort.rb +17 -0
  38. data/lib/betfair_api_ng_rails/api/enums/market_status.rb +15 -0
  39. data/lib/betfair_api_ng_rails/api/enums/match_projection.rb +14 -0
  40. data/lib/betfair_api_ng_rails/api/enums/order_by.rb +14 -0
  41. data/lib/betfair_api_ng_rails/api/enums/order_projection.rb +14 -0
  42. data/lib/betfair_api_ng_rails/api/enums/order_status.rb +13 -0
  43. data/lib/betfair_api_ng_rails/api/enums/order_type.rb +14 -0
  44. data/lib/betfair_api_ng_rails/api/enums/persistence_type.rb +14 -0
  45. data/lib/betfair_api_ng_rails/api/enums/price_data.rb +16 -0
  46. data/lib/betfair_api_ng_rails/api/enums/rollup_model.rb +15 -0
  47. data/lib/betfair_api_ng_rails/api/enums/runner_status.rb +17 -0
  48. data/lib/betfair_api_ng_rails/api/enums/side.rb +13 -0
  49. data/lib/betfair_api_ng_rails/api/enums/sort_dir.rb +13 -0
  50. data/lib/betfair_api_ng_rails/api/enums/time_granularity.rb +14 -0
  51. data/lib/betfair_api_ng_rails/api/formatter_factory.rb +1 -1
  52. data/lib/betfair_api_ng_rails/api/formatters/js_tree_formatter.rb +38 -0
  53. data/lib/betfair_api_ng_rails/api/hashalator.rb +39 -0
  54. data/lib/betfair_api_ng_rails/api/helper.rb +29 -0
  55. data/lib/betfair_api_ng_rails/api/http/factory.rb +41 -0
  56. data/lib/betfair_api_ng_rails/api/http/helpers/information_response.rb +35 -0
  57. data/lib/betfair_api_ng_rails/api/http/helpers/keep_alive_response.rb +32 -0
  58. data/lib/betfair_api_ng_rails/api/http/helpers/session_response.rb +36 -0
  59. data/lib/betfair_api_ng_rails/api/http/requester.rb +75 -0
  60. data/lib/betfair_api_ng_rails/api/http/responser.rb +47 -0
  61. data/lib/betfair_api_ng_rails/api/parsers/base.rb +31 -0
  62. data/lib/betfair_api_ng_rails/api/parsers/list_competitions.rb +15 -0
  63. data/lib/betfair_api_ng_rails/api/parsers/list_countries.rb +15 -0
  64. data/lib/betfair_api_ng_rails/api/parsers/list_event_types.rb +15 -0
  65. data/lib/betfair_api_ng_rails/api/parsers/list_events.rb +15 -0
  66. data/lib/betfair_api_ng_rails/api/parsers/list_market_types.rb +15 -0
  67. data/lib/betfair_api_ng_rails/api/parsers/list_time_ranges.rb +15 -0
  68. data/lib/betfair_api_ng_rails/api/parsers/list_venues.rb +15 -0
  69. data/lib/betfair_api_ng_rails/api/provider.rb +38 -0
  70. data/lib/betfair_api_ng_rails/api/request_methods.rb +33 -0
  71. data/lib/betfair_api_ng_rails/api/session_manager.rb +54 -0
  72. data/lib/betfair_api_ng_rails/errors.rb +6 -0
  73. data/lib/betfair_api_ng_rails/railtie.rb +7 -0
  74. data/lib/betfair_api_ng_rails/version.rb +1 -1
  75. data/lib/generators/betfair_api_ng_rails/install/templates/betfair_api_ng_rails.rb +11 -9
  76. data/lib/generators/betfair_api_ng_rails/install/templates/betfair_api_ng_rails.yml +2 -0
  77. data/spec/betfair_api_ng_rails/api/connection_spec.rb +74 -0
  78. data/spec/betfair_api_ng_rails/api/data/concerns/hashable_spec.rb +81 -0
  79. data/spec/betfair_api_ng_rails/api/formatters/js_tree_formatter_spec.rb +70 -0
  80. data/spec/betfair_api_ng_rails/api/hashalator_spec.rb +146 -0
  81. data/spec/betfair_api_ng_rails/api/provider_spec.rb +91 -0
  82. data/spec/betfair_api_ng_rails/api/request_methods_spec.rb +60 -0
  83. data/spec/betfair_api_ng_rails/api/session_manager_spec.rb +59 -0
  84. data/spec/betfair_api_ng_rails/integration/list_competitions_spec.rb +18 -0
  85. data/spec/betfair_api_ng_rails/integration/list_countries_spec.rb +18 -0
  86. data/spec/betfair_api_ng_rails/integration/list_event_types_spec.rb +18 -0
  87. data/spec/betfair_api_ng_rails/integration/list_events_spec.rb +18 -0
  88. data/spec/betfair_api_ng_rails/integration/list_market_types_spec.rb +18 -0
  89. data/spec/betfair_api_ng_rails/integration/list_time_ranges_spec.rb +18 -0
  90. data/spec/betfair_api_ng_rails/integration/list_venues_spec.rb +18 -0
  91. data/spec/spec_helper.rb +16 -0
  92. data/spec/support/shared_examples/request_method.rb +18 -0
  93. data/spec/support/shared_examples/simple_list_filtering_request.rb +51 -0
  94. metadata +156 -66
  95. data/lib/betfair_api_ng_rails/api/base_provider.rb +0 -15
  96. data/lib/betfair_api_ng_rails/api/bf/concerns/errorable.rb +0 -21
  97. data/lib/betfair_api_ng_rails/api/bf/config.rb +0 -27
  98. data/lib/betfair_api_ng_rails/api/bf/constants.rb +0 -37
  99. data/lib/betfair_api_ng_rails/api/bf/data/attributes.rb +0 -52
  100. data/lib/betfair_api_ng_rails/api/bf/data/base.rb +0 -17
  101. data/lib/betfair_api_ng_rails/api/bf/data/competition.rb +0 -26
  102. data/lib/betfair_api_ng_rails/api/bf/data/competition_result.rb +0 -23
  103. data/lib/betfair_api_ng_rails/api/bf/data/concerns/hashable.rb +0 -40
  104. data/lib/betfair_api_ng_rails/api/bf/data/concerns/querable.rb +0 -46
  105. data/lib/betfair_api_ng_rails/api/bf/data/constants.rb +0 -13
  106. data/lib/betfair_api_ng_rails/api/bf/data/event.rb +0 -26
  107. data/lib/betfair_api_ng_rails/api/bf/data/event_result.rb +0 -21
  108. data/lib/betfair_api_ng_rails/api/bf/data/event_type.rb +0 -26
  109. data/lib/betfair_api_ng_rails/api/bf/data/event_type_result.rb +0 -21
  110. data/lib/betfair_api_ng_rails/api/bf/data/market_filter.rb +0 -19
  111. data/lib/betfair_api_ng_rails/api/bf/data/time_range.rb +0 -18
  112. data/lib/betfair_api_ng_rails/api/bf/data/time_range_result.rb +0 -21
  113. data/lib/betfair_api_ng_rails/api/bf/enums/bet_status.rb +0 -17
  114. data/lib/betfair_api_ng_rails/api/bf/enums/concerns/enumable.rb +0 -17
  115. data/lib/betfair_api_ng_rails/api/bf/enums/execution_report_error_code.rb +0 -30
  116. data/lib/betfair_api_ng_rails/api/bf/enums/execution_report_status.rb +0 -17
  117. data/lib/betfair_api_ng_rails/api/bf/enums/group_by.rb +0 -19
  118. data/lib/betfair_api_ng_rails/api/bf/enums/instruction_report_error_code.rb +0 -33
  119. data/lib/betfair_api_ng_rails/api/bf/enums/instruction_report_status.rb +0 -16
  120. data/lib/betfair_api_ng_rails/api/bf/enums/market_betting_type.rb +0 -19
  121. data/lib/betfair_api_ng_rails/api/bf/enums/market_projection.rb +0 -20
  122. data/lib/betfair_api_ng_rails/api/bf/enums/market_sort.rb +0 -19
  123. data/lib/betfair_api_ng_rails/api/bf/enums/market_status.rb +0 -17
  124. data/lib/betfair_api_ng_rails/api/bf/enums/match_projection.rb +0 -16
  125. data/lib/betfair_api_ng_rails/api/bf/enums/order_by.rb +0 -16
  126. data/lib/betfair_api_ng_rails/api/bf/enums/order_projection.rb +0 -16
  127. data/lib/betfair_api_ng_rails/api/bf/enums/order_status.rb +0 -15
  128. data/lib/betfair_api_ng_rails/api/bf/enums/order_type.rb +0 -16
  129. data/lib/betfair_api_ng_rails/api/bf/enums/persistence_type.rb +0 -16
  130. data/lib/betfair_api_ng_rails/api/bf/enums/price_data.rb +0 -18
  131. data/lib/betfair_api_ng_rails/api/bf/enums/rollup_model.rb +0 -17
  132. data/lib/betfair_api_ng_rails/api/bf/enums/runner_status.rb +0 -19
  133. data/lib/betfair_api_ng_rails/api/bf/enums/side.rb +0 -15
  134. data/lib/betfair_api_ng_rails/api/bf/enums/sort_dir.rb +0 -15
  135. data/lib/betfair_api_ng_rails/api/bf/enums/time_granularity.rb +0 -16
  136. data/lib/betfair_api_ng_rails/api/bf/formatters/js_tree_formatter.rb +0 -30
  137. data/lib/betfair_api_ng_rails/api/bf/helper.rb +0 -33
  138. data/lib/betfair_api_ng_rails/api/bf/http/factory.rb +0 -37
  139. data/lib/betfair_api_ng_rails/api/bf/http/requester.rb +0 -69
  140. data/lib/betfair_api_ng_rails/api/bf/http/responser.rb +0 -58
  141. data/lib/betfair_api_ng_rails/api/bf/orm/parsers/base.rb +0 -33
  142. data/lib/betfair_api_ng_rails/api/bf/orm/parsers/list_competitions.rb +0 -19
  143. data/lib/betfair_api_ng_rails/api/bf/orm/parsers/list_event_types.rb +0 -19
  144. data/lib/betfair_api_ng_rails/api/bf/orm/parsers/list_events.rb +0 -19
  145. data/lib/betfair_api_ng_rails/api/bf/orm/requester.rb +0 -52
  146. data/lib/betfair_api_ng_rails/api/bf/provider.rb +0 -38
  147. data/lib/betfair_api_ng_rails/api/bf/session_manager.rb +0 -46
@@ -1,15 +0,0 @@
1
- module BetfairApiNgRails
2
- module Api
3
- module BF
4
- module Enums
5
- class Side
6
- extend Api::BF::Enums::Concerns::Enumable
7
-
8
- enumify "BACK",
9
- "LAY"
10
-
11
- end
12
- end
13
- end
14
- end
15
- end
@@ -1,15 +0,0 @@
1
- module BetfairApiNgRails
2
- module Api
3
- module BF
4
- module Enums
5
- class SortDir
6
- extend Api::BF::Enums::Concerns::Enumable
7
-
8
- enumify "EARLIEST_TO_LATEST",
9
- "LATEST_TO_EARLIEST"
10
-
11
- end
12
- end
13
- end
14
- end
15
- end
@@ -1,16 +0,0 @@
1
- module BetfairApiNgRails
2
- module Api
3
- module BF
4
- module Enums
5
- class TimeGranularity
6
- extend Api::BF::Enums::Concerns::Enumable
7
-
8
- enumify "DAYS",
9
- "HOURS",
10
- "MINUTES"
11
-
12
- end
13
- end
14
- end
15
- end
16
- end
@@ -1,30 +0,0 @@
1
- require 'json'
2
- require 'active_support/inflector'
3
-
4
- module BetfairApiNgRails
5
- module Api
6
- module BF
7
- module Formatters
8
- class JsTreeFormatter
9
-
10
- ALLOW_CHILDREN = [:event_types, :competitions]
11
-
12
- def format(record: nil, resource: "")
13
- return {} unless record
14
- obj = record.send resource.to_s.singularize
15
- {
16
- id: obj.id,
17
- text: obj.name,
18
- children: ALLOW_CHILDREN.include?(resource.to_sym),
19
- data:{
20
- type: resource.to_s.singularize,
21
- fields: obj.to_hash
22
- }
23
- }
24
- end
25
-
26
- end
27
- end
28
- end
29
- end
30
- end
@@ -1,33 +0,0 @@
1
- module BetfairApiNgRails
2
- module Api
3
- module BF
4
- module Helper
5
-
6
- def read_certificate_file(path)
7
- OpenSSL::X509::Certificate.new read_file(path)
8
- end
9
-
10
- def read_rsa_file(path)
11
- OpenSSL::PKey::RSA.new read_file(path)
12
- end
13
-
14
- def read_file(path)
15
- File.read path
16
- rescue
17
- ""
18
- end
19
-
20
- def prepare_api_req_json(method, filter, params)
21
- {
22
- "jsonrpc" => "2.0",
23
- "method" => "SportsAPING/v1.0/#{method}",
24
- "params" => {
25
- "filter" => filter
26
- }.merge(params)
27
- }.to_json
28
- end
29
-
30
- end
31
- end
32
- end
33
- end
@@ -1,37 +0,0 @@
1
- module BetfairApiNgRails
2
- module Api
3
- module BF
4
- module Http
5
- class Factory
6
- class << self
7
- include Api::BF::Constants
8
-
9
- def provider_requester(with_method: "", params: {})
10
- create_http_requester(Api::BF::Config.api_url).tap do |req|
11
- req.set_request_headers API_REQUEST_HEADERS
12
- req.set_auth_headers Api::BF::Config.application_key, BetfairApiNgRails::Api::BF::SessionManager.ssoid
13
- req.set_api_req_body with_method, params
14
- end
15
- end
16
-
17
- def session_requester
18
- create_http_requester(Api::BF::Config.login_url).tap do |req|
19
- req.set_ssl_files Api::BF::Config.ssl_crt_filepath, Api::BF::Config.ssl_key_filepath
20
- req.set_request_headers SESSION_REQUEST_HEADERS
21
- req.set_auth_headers Api::BF::Config.application_key
22
- req.set_form_data "username" => Api::BF::Config.username, "password" => Api::BF::Config.password
23
- end
24
- end
25
-
26
- private
27
-
28
- def create_http_requester(url = "")
29
- Api::BF::Http::Requester.new url
30
- end
31
-
32
- end
33
- end
34
- end
35
- end
36
- end
37
- end
@@ -1,69 +0,0 @@
1
- require "net/https"
2
- require "uri"
3
- require 'json'
4
- require 'betfair_api_ng_rails/api/bf/helper'
5
-
6
- module BetfairApiNgRails
7
- module Api
8
- module BF
9
- module Http
10
- class Requester
11
- include BetfairApiNgRails::Api::BF::Helper
12
-
13
- attr_reader :http, :request, :uri
14
-
15
- def initialize(url, use_ssl = true)
16
- @uri = URI.parse url
17
- @http = Net::HTTP.new uri.host, uri.port
18
- http.use_ssl = use_ssl
19
- @request = Net::HTTP::Post.new uri.request_uri
20
- end
21
-
22
- def do_request
23
- Api::BF::Http::Responser.new http.request(request)
24
- end
25
-
26
- def set_crt_file(path)
27
- http.cert = read_certificate_file(path)
28
- end
29
-
30
- def set_key_file(path)
31
- http.key = read_rsa_file(path)
32
- end
33
-
34
- def set_verify_mode(value)
35
- http.verify_mode = value
36
- end
37
-
38
- def set_ssl_files(crt_path, key_path, verify = OpenSSL::SSL::VERIFY_PEER)
39
- set_crt_file crt_path
40
- set_key_file key_path
41
- set_verify_mode verify
42
- end
43
-
44
- def set_auth_headers(app_key, session_key = nil)
45
- request["X-Application"] = app_key
46
- request["X-Authentication"] = session_key if session_key
47
- end
48
-
49
- def set_request_headers(headers)
50
- headers.each { |name, value| request[name] = value }
51
- end
52
-
53
- def set_form_data(values)
54
- request.set_form_data values
55
- end
56
-
57
- def set_request_body(body)
58
- request.body = body
59
- end
60
-
61
- def set_api_req_body(method, filter = {}, params = {})
62
- set_request_body prepare_api_req_json(method, filter, params)
63
- end
64
-
65
- end
66
- end
67
- end
68
- end
69
- end
@@ -1,58 +0,0 @@
1
- require 'json'
2
-
3
- module BetfairApiNgRails
4
- module Api
5
- module BF
6
- module Http
7
- class Responser
8
- include Api::BF::Constants
9
-
10
- attr_reader :response, :error_info
11
-
12
- def initialize(response)
13
- @response = response
14
- end
15
-
16
- def result
17
- JSON.parse response.body
18
- end
19
-
20
- def has_error?
21
- http_error? || api_req_error? || session_req_error?
22
- end
23
-
24
- private
25
-
26
- def http_error?
27
- set_error_info(:HTTP, response.code) if check_response_code
28
- end
29
-
30
- def session_req_error?
31
- set_error_info(:SESSION, result['loginStatus']) if check_login_status
32
- end
33
-
34
- def api_req_error?
35
- set_error_info(:API, result['error']) if check_error_key
36
- end
37
-
38
- def check_response_code
39
- response.code != '200'
40
- end
41
-
42
- def check_login_status
43
- result.fetch('loginStatus', SUCCESS_LOGIN) != SUCCESS_LOGIN
44
- end
45
-
46
- def check_error_key
47
- result.has_key?('error')
48
- end
49
-
50
- def set_error_info(type, info)
51
- @error_info = { type: type, info: info }
52
- end
53
-
54
- end
55
- end
56
- end
57
- end
58
- end
@@ -1,33 +0,0 @@
1
- module BetfairApiNgRails
2
- module Api
3
- module BF
4
- module ORM
5
- module Parsers
6
- class Base
7
-
8
- attr_reader :responser
9
-
10
- def initialize(responser)
11
- @responser = responser
12
- end
13
-
14
- def process
15
- fetch_result_json.map { |json_row| process_row json_row }
16
- end
17
-
18
- private
19
-
20
- def fetch_result_json
21
- responser.has_error? ? [] : responser.result["result"]
22
- end
23
-
24
- def process_row(json_row)
25
- raise 'Must be reimplemented!'
26
- end
27
-
28
- end
29
- end
30
- end
31
- end
32
- end
33
- end
@@ -1,19 +0,0 @@
1
- module BetfairApiNgRails
2
- module Api
3
- module BF
4
- module ORM
5
- module Parsers
6
- class ListCompetitions < Api::BF::ORM::Parsers::Base
7
-
8
- private
9
-
10
- def process_row(json_row)
11
- Api::BF::Data::CompetitionResult.from_json json_row
12
- end
13
-
14
- end
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,19 +0,0 @@
1
- module BetfairApiNgRails
2
- module Api
3
- module BF
4
- module ORM
5
- module Parsers
6
- class ListEventTypes < Api::BF::ORM::Parsers::Base
7
-
8
- private
9
-
10
- def process_row(json_row)
11
- Api::BF::Data::EventTypeResult.from_json json_row
12
- end
13
-
14
- end
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,19 +0,0 @@
1
- module BetfairApiNgRails
2
- module Api
3
- module BF
4
- module ORM
5
- module Parsers
6
- class ListEvents < Api::BF::ORM::Parsers::Base
7
-
8
- private
9
-
10
- def process_row(json_row)
11
- Api::BF::Data::EventResult.from_json json_row
12
- end
13
-
14
- end
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,52 +0,0 @@
1
- require 'active_support/inflector'
2
-
3
- module BetfairApiNgRails
4
- module Api
5
- module BF
6
- module ORM
7
- class Requester
8
- class << self
9
-
10
- def load(resource: "", filter: Api::BF::Data::MarketFilter.new, params: {})
11
- res = current_provider.fetch method: build_function(resource), filter: filter, params: set_locale(params)
12
- process_response resource, res
13
- end
14
-
15
- private
16
-
17
- def process_response(resource, res)
18
- r = parse_response(build_function(resource), res)
19
- format_response(resource, r)
20
- end
21
-
22
- def parse_response(function, res)
23
- build_parser(function, res).process
24
- end
25
-
26
- def format_response(resource, res)
27
- return res unless BetfairApiNgRails.config.formatter
28
- res.map { |obj| BetfairApiNgRails.config.formatter.format(record: obj, resource: resource) }
29
- end
30
-
31
- def set_locale(params)
32
- params.merge locale: BetfairApiNgRails.config.locale
33
- end
34
-
35
- def build_function(method)
36
- "list#{method.to_s.camelize}"
37
- end
38
-
39
- def current_provider
40
- @_current_provider ||= BetfairApiNgRails::Api::BF::Provider.new
41
- end
42
-
43
- def build_parser(method, responser)
44
- "BetfairApiNgRails::Api::BF::ORM::Parsers::#{method.to_s.camelize}".constantize.new responser
45
- end
46
-
47
- end
48
- end
49
- end
50
- end
51
- end
52
- end
@@ -1,38 +0,0 @@
1
- require 'betfair_api_ng_rails/api/bf/concerns/errorable'
2
-
3
- module BetfairApiNgRails
4
- module Api
5
- module BF
6
- class Provider < Api::BaseProvider
7
- include Api::BF::Concerns::Errorable
8
- include Api::BF::Constants
9
-
10
- attr_reader :session_manager, :http_requester
11
-
12
- def initialize
13
- @session_manager = Api::BF::SessionManager.new
14
- @provider_name = "BF"
15
- @http_requester = Api::BF::Http::Factory.provider_requester
16
- end
17
-
18
- def fetch(method: "", filter: {}, params: {})
19
- return [] unless BetfairApiNgRails::Api::BF::SessionManager.request_ssoid
20
- raise "Not allowed method #{method.to_s}" unless is_method_allowed?(method)
21
- do_request with_method: method, filter: filter, params: params
22
- end
23
-
24
- private
25
-
26
- def do_request(with_method: "", filter: {}, params: {})
27
- http_requester.set_api_req_body with_method, filter, params
28
- http_requester.do_request
29
- end
30
-
31
- def is_method_allowed?(method)
32
- ALLOWED_RESOURCES.include? method.to_s
33
- end
34
-
35
- end
36
- end
37
- end
38
- end