mrpin-sdk 0.3.141 → 1.0.2

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 (124) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +47 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +65 -0
  6. data/Rakefile +1 -0
  7. data/app/assets/stylesheets/mrpin/sign_in.css +32 -0
  8. data/app/assets/stylesheets/mrpin.css.scss +3 -0
  9. data/app/views/devise/sessions/new.html.erb +16 -0
  10. data/app/views/layouts/devise.html.erb +12 -0
  11. data/lib/mrpin/all_files.rb +48 -0
  12. data/lib/mrpin/api/base/api_object.rb +48 -0
  13. data/lib/mrpin/api/base/handler_base.rb +86 -0
  14. data/lib/mrpin/api/base/request_base.rb +15 -0
  15. data/lib/mrpin/api/base/response_base.rb +29 -0
  16. data/lib/mrpin/api/bundles/init/handler_bundles_init.rb +36 -0
  17. data/lib/mrpin/api/bundles/init/request_bundles_init.rb +7 -0
  18. data/lib/mrpin/api/bundles/init/response_bundles_init.rb +5 -0
  19. data/lib/mrpin/api/packs/requests_pack.rb +38 -0
  20. data/lib/mrpin/api/packs/responses_pack.rb +38 -0
  21. data/lib/mrpin/api/platform/base/handler_platform_base.rb +26 -0
  22. data/lib/mrpin/api/platform/base/request_platform_base.rb +54 -0
  23. data/lib/mrpin/api/platform/report/handler_report_error.rb +74 -0
  24. data/lib/mrpin/api/platform/report/request_report_error.rb +20 -0
  25. data/lib/mrpin/api/standard/response_error.rb +19 -0
  26. data/lib/mrpin/api/standard/response_ok.rb +18 -0
  27. data/lib/mrpin/api/standard/response_session_end.rb +21 -0
  28. data/lib/mrpin/api/standard/response_with_url_data.rb +7 -0
  29. data/lib/mrpin/api/system/echo/handler_system_echo.rb +25 -0
  30. data/lib/mrpin/api/system/echo/request_system_echo.rb +19 -0
  31. data/lib/mrpin/config/initializers/00_carrier_wave.rb +4 -0
  32. data/lib/mrpin/config/initializers/01_devise.rb +264 -0
  33. data/lib/mrpin/config/initializers/02_mongo.rb +2 -0
  34. data/lib/mrpin/config/initializers/03_i18n.rb +3 -0
  35. data/lib/mrpin/config/initializers.rb +7 -0
  36. data/lib/mrpin/config/locales/rails_admin.en.yml +10 -0
  37. data/lib/mrpin/controllers/application_controller_base.rb +14 -0
  38. data/lib/mrpin/controllers/system_controller_base.rb +222 -0
  39. data/lib/mrpin/core/admin/admin_user.rb +39 -0
  40. data/lib/mrpin/core/admin/e_admin_user_role.rb +4 -0
  41. data/lib/mrpin/core/app_config_base.rb +48 -0
  42. data/lib/mrpin/core/app_info/app_info_base.rb +413 -0
  43. data/lib/mrpin/core/app_info/e_app_state.rb +13 -0
  44. data/lib/mrpin/core/base/amf_serializable.rb +16 -0
  45. data/lib/mrpin/core/base/enum_base.rb +12 -0
  46. data/lib/mrpin/core/base/info_base.rb +18 -0
  47. data/lib/mrpin/core/base/manager_base.rb +74 -0
  48. data/lib/mrpin/core/base/manager_with_json_data.rb +98 -0
  49. data/lib/mrpin/core/base/model_base.rb +219 -0
  50. data/lib/mrpin/core/bundles/bundle_base.rb +197 -0
  51. data/lib/mrpin/core/bundles/bundle_info_base.rb +29 -0
  52. data/lib/mrpin/core/bundles/e_build_type.rb +7 -0
  53. data/lib/mrpin/core/bundles/manager_bundles_base.rb +56 -0
  54. data/lib/mrpin/core/constants/constants_remote.rb +14 -0
  55. data/lib/mrpin/core/currency_exchanger/base/exchanger_base.rb +21 -0
  56. data/lib/mrpin/core/currency_exchanger/currency_exchanger.rb +40 -0
  57. data/lib/mrpin/core/currency_exchanger/e_currency_type.rb +8 -0
  58. data/lib/mrpin/core/currency_exchanger/fixer/exchanger_fixer.rb +40 -0
  59. data/lib/mrpin/core/currency_exchanger/local/exchanger_local.rb +23 -0
  60. data/lib/mrpin/core/currency_exchanger/yahoo/exchanger_yahoo.rb +34 -0
  61. data/lib/mrpin/core/exceptions/assertion_error.rb +3 -0
  62. data/lib/mrpin/core/extensions/hash.rb +25 -0
  63. data/lib/mrpin/core/extensions/mongoid_id_alias.rb +7 -0
  64. data/lib/mrpin/core/extensions/object.rb +57 -0
  65. data/lib/mrpin/core/extensions/thread.rb +23 -0
  66. data/lib/mrpin/core/extensions/time.rb +5 -0
  67. data/lib/mrpin/core/logger/logger_sdk.rb +14 -0
  68. data/lib/mrpin/core/platform/e_platform_type.rb +14 -0
  69. data/lib/mrpin/core/player/e_player_role.rb +7 -0
  70. data/lib/mrpin/core/player/e_sex_type.rb +7 -0
  71. data/lib/mrpin/core/player/player_statistic_base.rb +50 -0
  72. data/lib/mrpin/core/purchase/e_sale_type.rb +7 -0
  73. data/lib/mrpin/core/remote/e_response_type.rb +4 -0
  74. data/lib/mrpin/core/remote/http/manager_remote_http.rb +107 -0
  75. data/lib/mrpin/core/remote/socket/base/extensions/manager_remote_socket_api.rb +43 -0
  76. data/lib/mrpin/core/remote/socket/base/extensions/manager_remote_socket_disconnect.rb +69 -0
  77. data/lib/mrpin/core/remote/socket/base/extensions/manager_remote_socket_handle.rb +155 -0
  78. data/lib/mrpin/core/remote/socket/base/extensions/manager_remote_socket_sessions.rb +41 -0
  79. data/lib/mrpin/core/remote/socket/base/extensions/manager_remote_socket_statistic.rb +41 -0
  80. data/lib/mrpin/core/remote/socket/base/extensions/network_interface_helper.rb +53 -0
  81. data/lib/mrpin/core/remote/socket/base/manager_remote_socket_base.rb +131 -0
  82. data/lib/mrpin/core/remote/socket/base/socket_client_base.rb +181 -0
  83. data/lib/mrpin/core/remote/socket/base/socket_client_crossdomain.rb +33 -0
  84. data/lib/mrpin/core/remote/socket/flash/manager_remote_socket_flash.rb +51 -0
  85. data/lib/mrpin/core/remote/socket/flash/socket_client_flash.rb +21 -0
  86. data/lib/mrpin/core/remote/socket/unity/manager_remote_socket_unity.rb +58 -0
  87. data/lib/mrpin/core/remote/socket/unity/socket_client_unity.rb +19 -0
  88. data/lib/mrpin/core/remote/socket/websocket/manager_remote_web_sockets.rb +101 -0
  89. data/lib/mrpin/core/remote/socket/websocket/socket_client_web_sockets.rb +129 -0
  90. data/lib/mrpin/core/remote/socket/with_policy/socket_client_with_policy.rb +66 -0
  91. data/lib/mrpin/core/review.rb +231 -0
  92. data/lib/mrpin/core/scheduler/manager_scheduler.rb +66 -0
  93. data/lib/mrpin/core/statistic/error_client_base.rb +136 -0
  94. data/lib/mrpin/core/statistic/error_server_base.rb +93 -0
  95. data/lib/mrpin/core/statistic/manager_statistics_base.rb +221 -0
  96. data/lib/mrpin/core/statistic/statistic_application_base.rb +88 -0
  97. data/lib/mrpin/core/statistic/statistic_config_base.rb +38 -0
  98. data/lib/mrpin/core/statistic/system_handler_profiler.rb +85 -0
  99. data/lib/mrpin/core/string/e_language_type.rb +29 -0
  100. data/lib/mrpin/core/string/e_string_type_base.rb +14 -0
  101. data/lib/mrpin/core/string/localization_base.rb +77 -0
  102. data/lib/mrpin/core/string/localization_base_map.rb +303 -0
  103. data/lib/mrpin/core/string/manager_string_base.rb +159 -0
  104. data/lib/mrpin/core/threads/thread_with_task.rb +62 -0
  105. data/lib/mrpin/core/uploaders/aws/aws_file_info.rb +16 -0
  106. data/lib/mrpin/core/uploaders/aws/aws_uploader.rb +229 -0
  107. data/lib/mrpin/core/uploaders/carrierwave/file_uploader.rb +7 -0
  108. data/lib/mrpin/core/uploaders/carrierwave/file_uploader_helpers_base.rb +66 -0
  109. data/lib/mrpin/core/uploaders/carrierwave/file_uploader_helpers_local.rb +111 -0
  110. data/lib/mrpin/core/uploaders/carrierwave/file_uploader_helpers_s3.rb +87 -0
  111. data/lib/mrpin/core/uploaders/carrierwave/zip_uploader.rb +10 -0
  112. data/lib/mrpin/core/utils/mongo.rb +41 -0
  113. data/lib/mrpin/core/utils/sorter_base.rb +344 -0
  114. data/lib/mrpin/core/utils/utils_io.rb +27 -0
  115. data/lib/mrpin/core/utils/utils_string.rb +17 -0
  116. data/lib/mrpin/core/utils/utils_zip.rb +58 -0
  117. data/lib/mrpin/libs/rails_admin/localization.rb +70 -0
  118. data/lib/mrpin/libs.rb +11 -0
  119. data/lib/mrpin/rails/engine.rb +11 -0
  120. data/lib/mrpin/vendors.rb +19 -0
  121. data/lib/mrpin/version.rb +3 -0
  122. data/lib/mrpin-sdk.rb +6 -0
  123. data/mrpin-sdk.gemspec +54 -0
  124. metadata +163 -96
@@ -0,0 +1,56 @@
1
+ class ManagerBundlesBase < ManagerWithJsonData
2
+
3
+ #
4
+ # Properties
5
+ #
6
+
7
+ public
8
+ attr_reader :build_type
9
+
10
+ protected
11
+ def data_client_folder
12
+ "data_client/bundles/#{@build_type}/"
13
+ end
14
+
15
+ protected
16
+ def get_json_data_client
17
+ result = {}
18
+
19
+ bundles_map = {}
20
+
21
+ bundles_list = get_bundles_list
22
+
23
+ bundles_list.each do |bundle_info|
24
+ bundles_map[bundle_info.name] = bundle_info.serialize
25
+ end
26
+
27
+ result[:bundles_map] = bundles_map
28
+
29
+ result.to_json
30
+ end
31
+
32
+
33
+ #
34
+ # Methods
35
+ #
36
+
37
+ # default constructor
38
+ public
39
+ def initialize(build_type)
40
+ super
41
+
42
+ @class_asset = BundleBase
43
+
44
+ @build_type = build_type
45
+ end
46
+
47
+ private
48
+ def get_bundles_list
49
+ result = @class_asset.where(build_type: @build_type).to_a
50
+
51
+ result.map!(&:create_info)
52
+
53
+ result
54
+ end
55
+
56
+ end
@@ -0,0 +1,14 @@
1
+ class Constants
2
+
3
+ REMOTE_PORT_FLASH = 5001
4
+ REMOTE_PORT_FLASH_CROSSDOMAIN = 843
5
+
6
+ REMOTE_PORT_WEBSOCKET = 5002
7
+ REMOTE_PORT_WEBSOCKET_SECURE = 5102
8
+
9
+ REMOTE_PORT_UNITY = 5003
10
+ REMOTE_PORT_UNITY_CROSSDOMAIN = 843
11
+
12
+ THREADS_HANDLERS_COUNT = Rails.env.production? ? 20 : 2
13
+
14
+ end
@@ -0,0 +1,21 @@
1
+ class ExchangerBase
2
+
3
+ #
4
+ # Properties
5
+ #
6
+
7
+ #
8
+ # Methods
9
+ #
10
+
11
+ # default constructor
12
+ public
13
+ def initialize
14
+ end
15
+
16
+ public
17
+ def get_rate(from_currency, to_currency)
18
+ 0.0
19
+ end
20
+
21
+ end
@@ -0,0 +1,40 @@
1
+ class CurrencyExchanger
2
+
3
+ def initialize
4
+ @exchangers = []
5
+
6
+ if Rails.env.development?
7
+ @exchangers << ExchangerLocal.new
8
+ end
9
+
10
+ @exchangers << ExchangerYahoo.new
11
+ @exchangers << ExchangerFixer.new
12
+
13
+ end
14
+
15
+ public
16
+ def get_rate(from_currency, to_currency)
17
+ result = nil
18
+
19
+ if from_currency == to_currency
20
+ result = 1.0
21
+ else
22
+ @exchangers.each do |exchanger|
23
+ begin
24
+
25
+ result = exchanger.get_rate(from_currency, to_currency)
26
+
27
+ break if !result.nil? && result > 0
28
+
29
+ rescue Exception => e
30
+ AppInfo.instance.on_server_error("Can't fetch currency rate form #{exchanger.class.name}. Error: #{e.message}")
31
+ end
32
+ end
33
+ end
34
+
35
+ assert(!result.nil? && result > 0, "can't fetch rate from servers")
36
+
37
+ result
38
+ end
39
+
40
+ end
@@ -0,0 +1,8 @@
1
+ class ECurrencyType < EnumBase
2
+
3
+ ECT_USD = 'USD'
4
+ ECT_EUR = 'EUR'
5
+ ECT_RUB = 'RUB'
6
+ ECT_UAH = 'UAH'
7
+
8
+ end
@@ -0,0 +1,40 @@
1
+ class ExchangerFixer < ExchangerBase
2
+
3
+ #
4
+ # Properties
5
+ #
6
+
7
+ #
8
+ # Methods
9
+ #
10
+
11
+ # default constructor
12
+ public
13
+ def initialize
14
+ super
15
+
16
+ @exchanger_api = ManagerRemoteHttp.new(url: 'http://api.fixer.io')
17
+ end
18
+
19
+
20
+ public
21
+ def get_rate(from_currency, to_currency)
22
+
23
+ params =
24
+ {
25
+ base: from_currency,
26
+ symbols: to_currency
27
+ }
28
+
29
+ response = @exchanger_api.get('latest', params)
30
+
31
+ assert(response[:status] == EResponseType::ERT_OK, response)
32
+
33
+ response_exchanger = JSON.parse response[:response], {symbolize_names: true}
34
+
35
+ rate_string = response_exchanger.assert_property!(:rates).assert_property!(to_currency.to_sym)
36
+
37
+ rate_string.to_f
38
+ end
39
+
40
+ end
@@ -0,0 +1,23 @@
1
+ # used only local
2
+ class ExchangerLocal < ExchangerBase
3
+
4
+ #
5
+ # properties
6
+ #
7
+
8
+ #
9
+ # methods
10
+ #
11
+
12
+ # default constructor
13
+ public
14
+ def initialize
15
+ super
16
+ end
17
+
18
+ public
19
+ def get_rate(from_currency, to_currency)
20
+ 1.0
21
+ end
22
+
23
+ end
@@ -0,0 +1,34 @@
1
+ class ExchangerYahoo < ExchangerBase
2
+
3
+
4
+ # default constructor
5
+ public
6
+ def initialize
7
+ super
8
+
9
+ @exchanger_api = ManagerRemoteHttp.new(url: 'http://query.yahooapis.com')
10
+ end
11
+
12
+
13
+ public
14
+ def get_rate(from_currency, to_currency)
15
+ params =
16
+ {
17
+ q: "select * from yahoo.finance.xchange where pair in ('#{from_currency}#{to_currency}')",
18
+ format: 'json',
19
+ env: 'store://datatables.org/alltableswithkeys',
20
+ callback: nil
21
+ }
22
+
23
+ response = @exchanger_api.get('v1/public/yql', params)
24
+
25
+ assert(response[:status] == EResponseType::ERT_OK, response)
26
+
27
+ response_exchanger = JSON.parse response[:response], {symbolize_names: true}
28
+
29
+ rate_string = response_exchanger.assert_property!(:query).assert_property!(:results).assert_property!(:rate).assert_property!(:Rate)
30
+
31
+ rate_string.to_f
32
+ end
33
+
34
+ end
@@ -0,0 +1,3 @@
1
+ class AssertionError < StandardError
2
+
3
+ end
@@ -0,0 +1,25 @@
1
+ class Hash
2
+
3
+ # raise argument error
4
+ def assert_property!(param)
5
+ assert(has_key?(param), "Not found params '#{param}'.")
6
+
7
+ self[param]
8
+ end
9
+
10
+ def recursive_symbolize_keys!
11
+ symbolize_keys!
12
+
13
+ # symbolize each hash in .values
14
+ values.each do |value|
15
+ value.recursive_symbolize_keys! if value.is_a?(Hash)
16
+ end
17
+ # symbolize each hash inside an array in .values
18
+ values.select { |value| value.is_a?(Array) }.flatten.each do |item|
19
+ item.recursive_symbolize_keys! if item.is_a?(Hash)
20
+ end
21
+
22
+ self
23
+ end
24
+
25
+ end
@@ -0,0 +1,7 @@
1
+ module MongoidIdAlias
2
+
3
+ def id
4
+ @id = @id || self._id.to_s
5
+ end
6
+
7
+ end
@@ -0,0 +1,57 @@
1
+ class Object
2
+
3
+ def get_class_by_name(class_name)
4
+ assert(!class_name.nil? && !class_name.empty?, 'Class name must be non nil or empty')
5
+
6
+ class_name.split('::').inject(Object) do |mod, class_name|
7
+ mod.const_get(class_name)
8
+ end
9
+ end
10
+
11
+ def assert(condition, message = 'Assertion failed!')
12
+ raise AssertionError, message unless condition
13
+ end
14
+
15
+ def assert_property!(param)
16
+ assert(respond_to?(param), "Not found param '#{param}'")
17
+
18
+ self.send(param)
19
+ end
20
+
21
+ def get_var_from_env(name)
22
+ result = ENV[name]
23
+
24
+ assert(!result.nil?, "can't find environment variable #{name}")
25
+
26
+ result
27
+ end
28
+
29
+ def fetch_property(param)
30
+ result = assert_property!(param)
31
+ assert(!result.nil?, "Param '#{param}' is nil")
32
+ result
33
+ end
34
+
35
+ def fetch_property_or_default(param, default)
36
+ if respond_to?(param) && !self.send(param).nil?
37
+ self.send(param)
38
+ else
39
+ default
40
+ end
41
+ end
42
+
43
+ def get_response_ok(response = nil)
44
+ {
45
+ status: EResponseType::ERT_OK,
46
+ response: response
47
+ }
48
+ end
49
+
50
+ def get_response_error(response = nil)
51
+ {
52
+ status: EResponseType::ERT_ERROR,
53
+ response: response
54
+ }
55
+ end
56
+
57
+ end
@@ -0,0 +1,23 @@
1
+ class Thread
2
+
3
+ #
4
+ # properties
5
+ #
6
+ attr_accessor :name
7
+
8
+ #
9
+ # methods
10
+ #
11
+
12
+ public
13
+ def to_s
14
+ result = @name
15
+
16
+ if result.nil?
17
+ result = super
18
+ end
19
+
20
+ result
21
+ end
22
+
23
+ end
@@ -0,0 +1,5 @@
1
+ class Time
2
+ def to_ms
3
+ self.to_f * 1000.0
4
+ end
5
+ end
@@ -0,0 +1,14 @@
1
+ class LoggerSdk < Logger::Formatter
2
+
3
+ def initialize
4
+ super
5
+ @datetime_format = '%y-%m-%dT %H:%m:%s'
6
+ @format = "[%5s] %s : %s\n"
7
+
8
+ end
9
+
10
+ def call(severity, time, progname, msg)
11
+ @format % [severity, format_datetime(time), msg2str(msg)]
12
+ end
13
+
14
+ end
@@ -0,0 +1,14 @@
1
+ class EPlatformType < EnumBase
2
+
3
+ EPT_AWEETS = 'aweets'
4
+ EPT_FB = 'fb'
5
+ EPT_FS = 'fs'
6
+ EPT_MM = 'mm'
7
+ EPT_MAMBA = 'mamba'
8
+ EPT_OK = 'ok'
9
+ EPT_VK = 'vk'
10
+
11
+ EPT_ANDROID = 'android'
12
+ EPT_IOS = 'ios'
13
+
14
+ end
@@ -0,0 +1,7 @@
1
+ class EPlayerRole < EnumBase
2
+
3
+ EPR_PLAYER = 'player'
4
+ EPR_TESTER = 'tester'
5
+ EPR_BANNED = 'banned'
6
+
7
+ end
@@ -0,0 +1,7 @@
1
+ class ESexType < EnumBase
2
+
3
+ EST_MALE = 'male'
4
+ EST_FEMALE = 'female'
5
+ EST_UNKNOWN = 'unknown'
6
+
7
+ end
@@ -0,0 +1,50 @@
1
+ class PlayerStatisticBase < ModelBase
2
+
3
+ include Mongoid::Document
4
+ prepend MongoidIdAlias
5
+
6
+ #
7
+ # Static methods
8
+ #
9
+
10
+ public
11
+ def self.filters_for_admin_list(section)
12
+ section.filters [:player_id]
13
+ end
14
+
15
+
16
+ #
17
+ # db
18
+ #
19
+
20
+ store_in collection: 'player_statistics'
21
+
22
+ #
23
+ # fields
24
+ #
25
+
26
+ field :player_id, type: String
27
+
28
+ field :referrer_type_install, type: String
29
+ field :referrer_source_install, type: String
30
+
31
+ field :referrer_type_login, type: String
32
+ field :referrer_source_login, type: String
33
+
34
+
35
+ #
36
+ # Properties
37
+ #
38
+
39
+ #
40
+ # Methods
41
+ #
42
+
43
+
44
+ # default constructor
45
+ public
46
+ def initialize(options = nil)
47
+ super
48
+ end
49
+
50
+ end
@@ -0,0 +1,7 @@
1
+ class ESaleType < EnumBase
2
+
3
+ EST_BASE = 'base'
4
+ EST_POPULAR = 'popular'
5
+ EST_BEST = 'best'
6
+
7
+ end
@@ -0,0 +1,4 @@
1
+ module EResponseType
2
+ ERT_OK = 'ok'
3
+ ERT_ERROR = 'error'
4
+ end
@@ -0,0 +1,107 @@
1
+ class ManagerRemoteHttp
2
+ METHODS = [:post, :get]
3
+
4
+ DEFAULT_READ_TIMEOUT = 10
5
+ DEFAULT_OPEN_TIMEOUT = 10
6
+ DEFAULT_REDIRECT_LIMIT = 0
7
+
8
+ def initialize(options = {})
9
+
10
+ url = options.assert_property!(:url)
11
+
12
+ faraday_options =
13
+ {
14
+ request:
15
+ {
16
+ timeout: options[:read_timeout] || DEFAULT_READ_TIMEOUT,
17
+ open_timeout: options[:open_timeout] || DEFAULT_OPEN_TIMEOUT
18
+ }
19
+ }
20
+
21
+ redirect_limit = options[:redirect_limit] || DEFAULT_REDIRECT_LIMIT
22
+
23
+ @connection = Faraday.new(url, faraday_options) do |builder|
24
+ builder.request :url_encoded # for POST/PUT params
25
+ builder.request :retry, {max: 3, interval: 0.2, interval_randomness: 0, backoff_factor: 1.5} # [0.2 0.3 0.45] intervals between retries
26
+
27
+ if redirect_limit > 0
28
+ builder.use FaradayMiddleware::FollowRedirects, {limit: redirect_limit}
29
+ end
30
+
31
+ builder.adapter :net_http
32
+ end
33
+ end
34
+
35
+ public
36
+ def get(controller, params = nil)
37
+ run_request(:get, controller, params)
38
+ end
39
+
40
+ alias :request_get_to :get
41
+
42
+ public
43
+ def post(controller, params = nil)
44
+ run_request(:post, controller, params)
45
+ end
46
+
47
+ private
48
+ def run_request(method, controller, params = nil)
49
+ result = nil
50
+
51
+ begin
52
+
53
+ response = @connection.send method, controller, params
54
+
55
+ result = if response.success?
56
+ {
57
+ status: EResponseType::ERT_OK,
58
+ response: response.body
59
+ }
60
+ else
61
+ {
62
+ status: EResponseType::ERT_ERROR,
63
+ response: [response.status, response.body].join(':')
64
+ }
65
+ end
66
+
67
+ rescue Exception => e
68
+ result = {status: EResponseType::ERT_ERROR, response: e.message}
69
+ end
70
+
71
+
72
+ result
73
+ end
74
+
75
+ public
76
+ def json_to(controller, params = {}, method = :post)
77
+ result = nil
78
+
79
+ begin
80
+
81
+ unless METHODS.include?(method)
82
+ raise ArgumentError, "Not supported method: #{method}"
83
+ end
84
+
85
+ response = @connection.send(method) do |req|
86
+ req.url controller
87
+ req.headers['Content-Type'] = 'application/json'
88
+ req.body = params.to_json
89
+ end
90
+
91
+ result = if response.success?
92
+ JSON.parse response.body, {symbolize_names: true}
93
+ else
94
+ {
95
+ status: EResponseType::ERT_ERROR,
96
+ response: [response.status, response.body].join(':')
97
+ }
98
+ end
99
+
100
+ rescue Exception => e
101
+ result = {status: EResponseType::ERT_ERROR, response: e.message}
102
+ end
103
+
104
+ result
105
+ end
106
+
107
+ end
@@ -0,0 +1,43 @@
1
+ module ManagerRemoteSocketApi
2
+
3
+ #
4
+ # Properties
5
+ #
6
+
7
+ #
8
+ # Methods
9
+ #
10
+
11
+
12
+ private
13
+ def init_api
14
+ @handlers_map = {}
15
+
16
+ nil
17
+ end
18
+
19
+ protected
20
+ def register_classes
21
+ class_map =
22
+ {
23
+ #base api
24
+ 'Api::ResponseOk' => 'Api::ResponseOk',
25
+ 'Api::ResponseError' => 'Api::ResponseError',
26
+
27
+ 'Api::ResponsesPack' => 'Api::ResponsesPack',
28
+ 'Api::RequestsPack' => 'Api::RequestsPack',
29
+ }
30
+
31
+ AMF::Root.register_classes(class_map)
32
+ end
33
+
34
+ protected
35
+ def register_handlers
36
+ #system
37
+ @handlers_map[Api::RequestSystemEcho] = Api::HandlerSystemEcho.new
38
+
39
+ nil
40
+ end
41
+
42
+
43
+ end