class Object
Public Instance Methods
execute(req_body: nil, query_params: {}, headers: {}, method: 'post')
click to toggle source
# File lib/faastruby-rpc/test_helper.rb, line 30 def execute(req_body: nil, query_params: {}, headers: {}, method: 'post') @thread = Thread.new do url = "#{FAASTRUBY_HOST}/#{@path}#{convert_query_params(query_params)}" uri = URI.parse(url) use_ssl = uri.scheme == 'https' ? true : false response = FaaStRuby::RPC.response(@path) resp_headers = {} response.headers.each{|k,v| resp_headers[k] = v} case resp_headers['content-type'] when 'application/json' begin resp_body = Oj.load(response.body) rescue Oj::ParseError => e if response.body.is_a?(String) resp_body = response.body else raise e if @raise_errors resp_body = { 'error' => e.message, 'location' => e.backtrace&.first } end end when 'application/yaml' resp_body = YAML.load(response.body) else resp_body = response.body end raise FaaStRuby::RPC::ExecutionError.new("Function #{@path} returned status code #{response.code} - #{resp_body['error']} - #{resp_body['location']}") if response.code.to_i >= 400 && @raise_errors @response = FaaStRuby::RPC::Response.new(resp_body, response.code.to_i, resp_headers) end self end
require_function(function, as:, raise_errors: true)
click to toggle source
# File lib/faastruby-rpc.rb, line 16 def require_function(function, as:, raise_errors: true) as[0] = as[0].capitalize Object.send(:remove_const, as) if Object.const_defined?(as) Object.const_set as, FaaStRuby::RPC::Caller.new(function, raise_errors: raise_errors) return false end