Module: Wireway::Core::Request
Instance Method Summary collapse
- #black_box(**args) ⇒ Object
- #dashboard(**args) ⇒ Object
- #get(addresses:, route:, params: {}) ⇒ Object
-
#node_addresses ⇒ Object
后期应由专门组件对于已登记地址信息进行活跃验证,并将可用节点信息回传给Satcom 后期当某一节点调用不通过时将常量赋值为404进行更新 url路径不需要动态获取,只有ip和端口是动态的,如果请求路径都不一致,不能认为是合规的节点.
- #platforms_exposed_api ⇒ Object
- #post(addresses:, route:, params: {}) ⇒ Object
- #request_api_params(platform_code:, api_code:) ⇒ Object
- #satcom(**args) ⇒ Object
- #wireway(**args) ⇒ Object
Instance Method Details
#black_box(**args) ⇒ Object
98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/wireway/core/request.rb', line 98 def black_box(**args) params = {}.merge!(args) route = '/black_box/restful/request_api' res = node_addresses return res unless res[0] res = post(addresses: res[1][:black_box], route: route, params: params) do |result| body = JSON.parse(result[1][:body]).deep_symbolize_keys return [false, body[:result], body[:errors]].compact unless body[:success] [true, body] end end |
#dashboard(**args) ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/wireway/core/request.rb', line 56 def dashboard(**args) params = { response_type: 'json', }.merge!(args) route = '/dashboard/restful/request_api' res = node_addresses return res unless res[0] post(addresses: res[1][:dashboard], route: route, params: params) do |result| return [true, result[1][:body]] if (params[:response_type] != 'json') body = JSON.parse(result[1][:body]).deep_symbolize_keys return [false, body[:result]] unless body[:success] [true, body[:result]] end end |
#get(addresses:, route:, params: {}) ⇒ Object
110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
# File 'lib/wireway/core/request.rb', line 110 def get(addresses:, route:, params: {}) result = round_robin(addresses: addresses) do |address| full_url = [address+route, URI.encode_www_form(params)] full_url.delete_if{|item| !item.present? } RestClient.get(full_url.join("?")) end return result unless (result[0] && block_given?) begin yield result rescue return [false, '[Wireway]运行时结果处理异常', {errors: {message: $!.to_s, path: $@}}] end end |
#node_addresses ⇒ Object
后期应由专门组件对于已登记地址信息进行活跃验证,并将可用节点信息回传给Satcom 后期当某一节点调用不通过时将常量赋值为404进行更新 url路径不需要动态获取,只有ip和端口是动态的,如果请求路径都不一致,不能认为是合规的节点.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/wireway/core/request.rb', line 11 def node_addresses return $wireway_node_addresses unless $wireway_node_addresses == 404 nodes = ['123.57.155.17:3113'] route = '/satcom/other/c919/node_addresses.json' res = get(addresses: nodes, route: route) do |result| hash = JSON.parse(result[1][:body]).deep_symbolize_keys [true, hash] end return res unless res[0] nodes = res[1].map{|key, value| [key, value[:nodes]]}.to_h $wireway_node_addresses = [true, nodes] end |
#platforms_exposed_api ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/wireway/core/request.rb', line 26 def platforms_exposed_api res = node_addresses return res unless res[0] exposed_api = {} platforms = {:satcom => ["123.57.155.17:3113"], :dashboard => ['123.57.155.17:3111'], :black_box => ['123.57.155.17:3116']} platforms.each do |platform_code, addresses| route = "/#{platform_code}/restful/exposed_api" res = get(addresses: addresses, route: route) do |result| hash = JSON.parse(result[1][:body]).deep_symbolize_keys exposed_api.merge!(hash) if hash.is_a?(Hash) end end [true, exposed_api] end |
#post(addresses:, route:, params: {}) ⇒ Object
125 126 127 128 129 130 131 132 133 134 135 136 |
# File 'lib/wireway/core/request.rb', line 125 def post(addresses:, route:, params: {}) result = round_robin(addresses: addresses) do |address| RestClient.post "#{address}/#{route}", params end return result unless (result[0] && block_given?) begin yield result rescue return [false, '[Wireway]运行时结果处理异常', {errors: {message: $!.to_s, path: $@}}] end end |
#request_api_params(platform_code:, api_code:) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/wireway/core/request.rb', line 43 def request_api_params(platform_code:, api_code:) res = node_addresses return res unless res[0] addresses = res[1][platform_code.to_sym] route = "/#{platform_code}/restful/request_api_params" get(addresses: addresses, route: route, params: {api_code: api_code}) do |result| hash = JSON.parse(result[1][:body]).deep_symbolize_keys [true, hash] end end |
#satcom(**args) ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/wireway/core/request.rb', line 71 def satcom(**args) params = {}.merge!(args) route = '/satcom/restful/request_api' res = node_addresses return res unless res[0] post(addresses: res[1][:satcom], route: route, params: params) do |result| body = JSON.parse(result[1][:body]).deep_symbolize_keys return [false, body[:result], body[:errors]].compact unless body[:success] # [true, body[:result]] [true, body] end end |
#wireway(**args) ⇒ Object
84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/wireway/core/request.rb', line 84 def wireway(**args) params = { local: false }.merge!(args) route = '/wireway/restful/request_api_result' res = node_addresses return res unless res[0] post(addresses: res[1][:wireway], route: route, params: params) do |result| body = JSON.parse(result[1][:body]).deep_symbolize_keys return [false, body[:result], body[:errors]].compact unless body[:success] [true, body[:result]] end end |