class Envirobly::Api
def request(url, type:, headers: {})
def request(url, type:, headers: {}) uri = URI(url) http = Net::HTTP.new uri.host, uri.port http.use_ssl = true http.open_timeout = 10 http.read_timeout = 10 headers = default_headers.merge headers request = type.new(uri, headers) request.content_type = CONTENT_TYPE yield request if block_given? http.request(request).tap do |response| def response.object @json_parsed_body ||= JSON.parse(body) rescue @json_parsed_body = { error_message: body } end def response.success? (200..299).include?(code.to_i) end if @exit_on_error && !response.success? && response.object["error_message"].present? puts response.object["error_message"] # TODO: Replace with shell.say_error exit 1 end end end