Sha256: 6f86a09216b5a02ac37afa05321f4db09265fd9e0bf11d6660b17b2af8244ce1

Contents?: true

Size: 949 Bytes

Versions: 1

Compression:

Stored size: 949 Bytes

Contents

module DpdApi
  class Base
    class << self
      def operations
        client.operations
      end

    protected

      def client
        Savon.client(wsdl: self.url)
      end

      def response(method, params = {})
        begin
          params    = DpdApi.configuration
                            .auth_params
                            .clone
                            .deep_merge!(params)
          request   = params.blank? ?  params : { request: params  }
          response  = client.call(method, message: request)
          namespace = "#{method}_response".to_sym
          resources = response.body[namespace][:return]
          resources = if resources.is_a?(Array)
                        resources
                      else
                        [] << resources
                      end
          resources
        rescue Savon::SOAPFault => error
          { errors: error.to_s }
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dpd_api-0.0.1 lib/dpd_api/base.rb