module Tidas::Utilities::ResponsePackager

Public Class Methods

handle_result(body, data = nil) click to toggle source
# File lib/tidas/utilities/response_packager.rb, line 18
def self.handle_result(body, data = nil)
  result_type = body.keys[0]
  content = body[result_type]
  case result_type
    when :error_result
      return ErrorResult.new(tidas_id:content[:tidas_id], errors:content[:errors])
    when :successful_result
      if content[:returned_data] != nil
        return SuccessfulResult.new(tidas_id:content[:tidas_id], data:content[:returned_data], message:content[:message])
      else
        return SuccessfulResult.new(tidas_id:content[:tidas_id], data:data, message:content[:message])
      end
    else
      return InvalidResponse
  end
end
package_response(response, data = nil) click to toggle source
# File lib/tidas/utilities/response_packager.rb, line 5
def self.package_response(response, data = nil)
  if [500, 404].include? response.status
    return InvalidResponse
  end
  begin
    body = JSON.parse(response.body, symbolize_names: true)
    return handle_result(body, data)
  rescue JSON::ParserError
    return InvalidResponse
  end
  return InvalidResponse
end