Module: Wireway::BusinessLogic::Restful
Instance Method Summary collapse
- #dashboard(**args) ⇒ Object
- #get(addresses:, route:, params: {}) ⇒ Object
-
#node_addresses ⇒ Object
后期应由专门组件对于已登记地址信息进行活跃验证,并将可用节点信息回传给Satcom 后期当某一节点调用不通过时将常量赋值为404进行更新 url路径不需要动态获取,只有ip和端口是动态的,如果请求路径都不一致,不能认为是合规的节点.
- #post(addresses:, route:, params: {}) ⇒ Object
- #satcom(**args) ⇒ Object
- #wireway(**args) ⇒ Object
Instance Method Details
#dashboard(**args) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'app/models/wireway/business_logic/restful.rb', line 24 def dashboard(**args) params = { response_type: 'json', }.merge!(args) route = '/dashboard/restful/request_api' post(addresses: node_addresses[:dashboard], route: route, params: params) do |result| return result if (params[:response_type] != 'json') body = JSON.parse(result[1][:body]).deep_symbolize_keys return [false, body[:result]] unless body[:success] [true, body[:html_content]] end end |
#get(addresses:, route:, params: {}) ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'app/models/wireway/business_logic/restful.rb', line 62 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, '运行时结果处理异常', {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 |
# File 'app/models/wireway/business_logic/restful.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 raise res[1] unless res[0] $wireway_node_addresses = res[1].map{|key, value| [key, value[:nodes]]}.to_h end |
#post(addresses:, route:, params: {}) ⇒ Object
77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'app/models/wireway/business_logic/restful.rb', line 77 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, '运行时结果处理异常', {errors: {message: $!.to_s, path: $@}}] end end |
#satcom(**args) ⇒ Object
38 39 40 41 42 43 44 45 46 47 |
# File 'app/models/wireway/business_logic/restful.rb', line 38 def satcom(**args) params = {}.merge!(args) route = '/satcom/restful/request_api' post(addresses: node_addresses[: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]] end end |
#wireway(**args) ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'app/models/wireway/business_logic/restful.rb', line 49 def wireway(**args) params = { local: false }.merge!(args) route = '/wireway/restful/request_api' post(addresses: node_addresses[: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 |