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.
- checksums.yaml +4 -4
- data/README.md +6 -28
- data/Rakefile +10 -1
- data/betfair_api_ng_rails.gemspec +3 -0
- data/lib/betfair_api_ng_rails.rb +92 -73
- data/lib/betfair_api_ng_rails/api/concerns/errorable.rb +19 -0
- data/lib/betfair_api_ng_rails/api/config.rb +27 -0
- data/lib/betfair_api_ng_rails/api/connection.rb +34 -0
- data/lib/betfair_api_ng_rails/api/connection_ext/formatting.rb +34 -0
- data/lib/betfair_api_ng_rails/api/connection_ext/parsing.rb +29 -0
- data/lib/betfair_api_ng_rails/api/constants.rb +51 -0
- data/lib/betfair_api_ng_rails/api/data/attributes.rb +50 -0
- data/lib/betfair_api_ng_rails/api/data/base.rb +16 -0
- data/lib/betfair_api_ng_rails/api/data/competition.rb +20 -0
- data/lib/betfair_api_ng_rails/api/data/competition_result.rb +21 -0
- data/lib/betfair_api_ng_rails/api/data/concerns/hashable.rb +29 -0
- data/lib/betfair_api_ng_rails/api/data/constants.rb +11 -0
- data/lib/betfair_api_ng_rails/api/data/country_code_result.rb +19 -0
- data/lib/betfair_api_ng_rails/api/data/event.rb +20 -0
- data/lib/betfair_api_ng_rails/api/data/event_result.rb +19 -0
- data/lib/betfair_api_ng_rails/api/data/event_type.rb +20 -0
- data/lib/betfair_api_ng_rails/api/data/event_type_result.rb +19 -0
- data/lib/betfair_api_ng_rails/api/data/market_filter.rb +16 -0
- data/lib/betfair_api_ng_rails/api/data/market_type_result.rb +19 -0
- data/lib/betfair_api_ng_rails/api/data/time_range.rb +20 -0
- data/lib/betfair_api_ng_rails/api/data/time_range_result.rb +19 -0
- data/lib/betfair_api_ng_rails/api/data/venue_result.rb +19 -0
- data/lib/betfair_api_ng_rails/api/enums/bet_status.rb +15 -0
- data/lib/betfair_api_ng_rails/api/enums/concerns/enumable.rb +15 -0
- data/lib/betfair_api_ng_rails/api/enums/execution_report_error_code.rb +28 -0
- data/lib/betfair_api_ng_rails/api/enums/execution_report_status.rb +15 -0
- data/lib/betfair_api_ng_rails/api/enums/group_by.rb +17 -0
- data/lib/betfair_api_ng_rails/api/enums/instruction_report_error_code.rb +31 -0
- data/lib/betfair_api_ng_rails/api/enums/instruction_report_status.rb +14 -0
- data/lib/betfair_api_ng_rails/api/enums/market_betting_type.rb +17 -0
- data/lib/betfair_api_ng_rails/api/enums/market_projection.rb +18 -0
- data/lib/betfair_api_ng_rails/api/enums/market_sort.rb +17 -0
- data/lib/betfair_api_ng_rails/api/enums/market_status.rb +15 -0
- data/lib/betfair_api_ng_rails/api/enums/match_projection.rb +14 -0
- data/lib/betfair_api_ng_rails/api/enums/order_by.rb +14 -0
- data/lib/betfair_api_ng_rails/api/enums/order_projection.rb +14 -0
- data/lib/betfair_api_ng_rails/api/enums/order_status.rb +13 -0
- data/lib/betfair_api_ng_rails/api/enums/order_type.rb +14 -0
- data/lib/betfair_api_ng_rails/api/enums/persistence_type.rb +14 -0
- data/lib/betfair_api_ng_rails/api/enums/price_data.rb +16 -0
- data/lib/betfair_api_ng_rails/api/enums/rollup_model.rb +15 -0
- data/lib/betfair_api_ng_rails/api/enums/runner_status.rb +17 -0
- data/lib/betfair_api_ng_rails/api/enums/side.rb +13 -0
- data/lib/betfair_api_ng_rails/api/enums/sort_dir.rb +13 -0
- data/lib/betfair_api_ng_rails/api/enums/time_granularity.rb +14 -0
- data/lib/betfair_api_ng_rails/api/formatter_factory.rb +1 -1
- data/lib/betfair_api_ng_rails/api/formatters/js_tree_formatter.rb +38 -0
- data/lib/betfair_api_ng_rails/api/hashalator.rb +39 -0
- data/lib/betfair_api_ng_rails/api/helper.rb +29 -0
- data/lib/betfair_api_ng_rails/api/http/factory.rb +41 -0
- data/lib/betfair_api_ng_rails/api/http/helpers/information_response.rb +35 -0
- data/lib/betfair_api_ng_rails/api/http/helpers/keep_alive_response.rb +32 -0
- data/lib/betfair_api_ng_rails/api/http/helpers/session_response.rb +36 -0
- data/lib/betfair_api_ng_rails/api/http/requester.rb +75 -0
- data/lib/betfair_api_ng_rails/api/http/responser.rb +47 -0
- data/lib/betfair_api_ng_rails/api/parsers/base.rb +31 -0
- data/lib/betfair_api_ng_rails/api/parsers/list_competitions.rb +15 -0
- data/lib/betfair_api_ng_rails/api/parsers/list_countries.rb +15 -0
- data/lib/betfair_api_ng_rails/api/parsers/list_event_types.rb +15 -0
- data/lib/betfair_api_ng_rails/api/parsers/list_events.rb +15 -0
- data/lib/betfair_api_ng_rails/api/parsers/list_market_types.rb +15 -0
- data/lib/betfair_api_ng_rails/api/parsers/list_time_ranges.rb +15 -0
- data/lib/betfair_api_ng_rails/api/parsers/list_venues.rb +15 -0
- data/lib/betfair_api_ng_rails/api/provider.rb +38 -0
- data/lib/betfair_api_ng_rails/api/request_methods.rb +33 -0
- data/lib/betfair_api_ng_rails/api/session_manager.rb +54 -0
- data/lib/betfair_api_ng_rails/errors.rb +6 -0
- data/lib/betfair_api_ng_rails/railtie.rb +7 -0
- data/lib/betfair_api_ng_rails/version.rb +1 -1
- data/lib/generators/betfair_api_ng_rails/install/templates/betfair_api_ng_rails.rb +11 -9
- data/lib/generators/betfair_api_ng_rails/install/templates/betfair_api_ng_rails.yml +2 -0
- data/spec/betfair_api_ng_rails/api/connection_spec.rb +74 -0
- data/spec/betfair_api_ng_rails/api/data/concerns/hashable_spec.rb +81 -0
- data/spec/betfair_api_ng_rails/api/formatters/js_tree_formatter_spec.rb +70 -0
- data/spec/betfair_api_ng_rails/api/hashalator_spec.rb +146 -0
- data/spec/betfair_api_ng_rails/api/provider_spec.rb +91 -0
- data/spec/betfair_api_ng_rails/api/request_methods_spec.rb +60 -0
- data/spec/betfair_api_ng_rails/api/session_manager_spec.rb +59 -0
- data/spec/betfair_api_ng_rails/integration/list_competitions_spec.rb +18 -0
- data/spec/betfair_api_ng_rails/integration/list_countries_spec.rb +18 -0
- data/spec/betfair_api_ng_rails/integration/list_event_types_spec.rb +18 -0
- data/spec/betfair_api_ng_rails/integration/list_events_spec.rb +18 -0
- data/spec/betfair_api_ng_rails/integration/list_market_types_spec.rb +18 -0
- data/spec/betfair_api_ng_rails/integration/list_time_ranges_spec.rb +18 -0
- data/spec/betfair_api_ng_rails/integration/list_venues_spec.rb +18 -0
- data/spec/spec_helper.rb +16 -0
- data/spec/support/shared_examples/request_method.rb +18 -0
- data/spec/support/shared_examples/simple_list_filtering_request.rb +51 -0
- metadata +156 -66
- data/lib/betfair_api_ng_rails/api/base_provider.rb +0 -15
- data/lib/betfair_api_ng_rails/api/bf/concerns/errorable.rb +0 -21
- data/lib/betfair_api_ng_rails/api/bf/config.rb +0 -27
- data/lib/betfair_api_ng_rails/api/bf/constants.rb +0 -37
- data/lib/betfair_api_ng_rails/api/bf/data/attributes.rb +0 -52
- data/lib/betfair_api_ng_rails/api/bf/data/base.rb +0 -17
- data/lib/betfair_api_ng_rails/api/bf/data/competition.rb +0 -26
- data/lib/betfair_api_ng_rails/api/bf/data/competition_result.rb +0 -23
- data/lib/betfair_api_ng_rails/api/bf/data/concerns/hashable.rb +0 -40
- data/lib/betfair_api_ng_rails/api/bf/data/concerns/querable.rb +0 -46
- data/lib/betfair_api_ng_rails/api/bf/data/constants.rb +0 -13
- data/lib/betfair_api_ng_rails/api/bf/data/event.rb +0 -26
- data/lib/betfair_api_ng_rails/api/bf/data/event_result.rb +0 -21
- data/lib/betfair_api_ng_rails/api/bf/data/event_type.rb +0 -26
- data/lib/betfair_api_ng_rails/api/bf/data/event_type_result.rb +0 -21
- data/lib/betfair_api_ng_rails/api/bf/data/market_filter.rb +0 -19
- data/lib/betfair_api_ng_rails/api/bf/data/time_range.rb +0 -18
- data/lib/betfair_api_ng_rails/api/bf/data/time_range_result.rb +0 -21
- data/lib/betfair_api_ng_rails/api/bf/enums/bet_status.rb +0 -17
- data/lib/betfair_api_ng_rails/api/bf/enums/concerns/enumable.rb +0 -17
- data/lib/betfair_api_ng_rails/api/bf/enums/execution_report_error_code.rb +0 -30
- data/lib/betfair_api_ng_rails/api/bf/enums/execution_report_status.rb +0 -17
- data/lib/betfair_api_ng_rails/api/bf/enums/group_by.rb +0 -19
- data/lib/betfair_api_ng_rails/api/bf/enums/instruction_report_error_code.rb +0 -33
- data/lib/betfair_api_ng_rails/api/bf/enums/instruction_report_status.rb +0 -16
- data/lib/betfair_api_ng_rails/api/bf/enums/market_betting_type.rb +0 -19
- data/lib/betfair_api_ng_rails/api/bf/enums/market_projection.rb +0 -20
- data/lib/betfair_api_ng_rails/api/bf/enums/market_sort.rb +0 -19
- data/lib/betfair_api_ng_rails/api/bf/enums/market_status.rb +0 -17
- data/lib/betfair_api_ng_rails/api/bf/enums/match_projection.rb +0 -16
- data/lib/betfair_api_ng_rails/api/bf/enums/order_by.rb +0 -16
- data/lib/betfair_api_ng_rails/api/bf/enums/order_projection.rb +0 -16
- data/lib/betfair_api_ng_rails/api/bf/enums/order_status.rb +0 -15
- data/lib/betfair_api_ng_rails/api/bf/enums/order_type.rb +0 -16
- data/lib/betfair_api_ng_rails/api/bf/enums/persistence_type.rb +0 -16
- data/lib/betfair_api_ng_rails/api/bf/enums/price_data.rb +0 -18
- data/lib/betfair_api_ng_rails/api/bf/enums/rollup_model.rb +0 -17
- data/lib/betfair_api_ng_rails/api/bf/enums/runner_status.rb +0 -19
- data/lib/betfair_api_ng_rails/api/bf/enums/side.rb +0 -15
- data/lib/betfair_api_ng_rails/api/bf/enums/sort_dir.rb +0 -15
- data/lib/betfair_api_ng_rails/api/bf/enums/time_granularity.rb +0 -16
- data/lib/betfair_api_ng_rails/api/bf/formatters/js_tree_formatter.rb +0 -30
- data/lib/betfair_api_ng_rails/api/bf/helper.rb +0 -33
- data/lib/betfair_api_ng_rails/api/bf/http/factory.rb +0 -37
- data/lib/betfair_api_ng_rails/api/bf/http/requester.rb +0 -69
- data/lib/betfair_api_ng_rails/api/bf/http/responser.rb +0 -58
- data/lib/betfair_api_ng_rails/api/bf/orm/parsers/base.rb +0 -33
- data/lib/betfair_api_ng_rails/api/bf/orm/parsers/list_competitions.rb +0 -19
- data/lib/betfair_api_ng_rails/api/bf/orm/parsers/list_event_types.rb +0 -19
- data/lib/betfair_api_ng_rails/api/bf/orm/parsers/list_events.rb +0 -19
- data/lib/betfair_api_ng_rails/api/bf/orm/requester.rb +0 -52
- data/lib/betfair_api_ng_rails/api/bf/provider.rb +0 -38
- data/lib/betfair_api_ng_rails/api/bf/session_manager.rb +0 -46
@@ -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
|