lib/octoparts/client.rb in octoparts-0.0.3 vs lib/octoparts/client.rb in octoparts-0.0.4

- old
+ new

@@ -19,12 +19,19 @@ process(:post, path, params, headers) end # TODO: doc def invoke(params) - stringify_params = params.deep_stringify_keys - aggregate_request = Model::AggregateRequest.new.extend(Representer::AggregateRequestRepresenter).from_hash(stringify_params) + aggregate_request = case params + when Hash + stringify_params = params.deep_stringify_keys + Model::AggregateRequest.new.extend(Representer::AggregateRequestRepresenter).from_hash(stringify_params) + when Octoparts::Model::AggregateRequest + params.extend(Representer::AggregateRequestRepresenter) + else + raise Octopart::ArgumentError + end body = aggregate_request.to_json(camelize: true) headers = { content_type: 'application/json' } resp = post(OCTOPARTS_API_ENDPOINT_PATH, body, headers) Response.new( Model::AggregateResponse.new.extend(Representer::AggregateResponseRepresenter).from_json(resp.body), @@ -68,10 +75,10 @@ def process(method, path, params, headers) @connection ||= Faraday.new(url: @endpoint) do |connection| connection.adapter Faraday.default_adapter end response = @connection.send(method, path, params, @headers.merge(headers || {})) - if error = Octoparts::Error.from_response(response) + if error = Octoparts::ResponseError.from_response(response) raise error end response end end