class SageoneSdk::Middleware::SDataParser

Sdata parser

Public Instance Methods

call(environment) click to toggle source
# File lib/sageone_sdk/middleware/sdata_parser.rb, line 11
def call(environment)
  @app.call(environment).on_complete do |env|
    element = ::JSON.parse(env[:body])

    if element.respond_to?(:each_pair)
      response_body = Hashie::Mash.new(element)
      if env.success?
        env[:body] = SageoneSdk::SDataResponse.new(response_body)
      else
        env[:body] = SageoneSdk::SDataErrorResponse.new(response_body)
      end
    else
      env[:body] = element.map { |x| Hashie::Mash.new(x) }
    end
  end
end