Class: Credigy::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/credigy/request.rb

Direct Known Subclasses

Authorized, Login

Instance Method Summary collapse

Instance Method Details

#basic_configObject



35
36
37
# File 'lib/credigy/request.rb', line 35

def basic_config
  { wsdl: wsdl, log: Credigy.configuration.verbose }
end

#callObject



5
6
7
8
9
# File 'lib/credigy/request.rb', line 5

def call
  response_class.new(response, self).tap do |response|
    raise "Falha ao chamar operação #{operation}: #{response.body}" unless response.success?
  end
end

#clientObject



19
20
21
# File 'lib/credigy/request.rb', line 19

def client
  @client ||= Savon.client(config_options)
end

#config_optionsObject



31
32
33
# File 'lib/credigy/request.rb', line 31

def config_options
  basic_config.merge(extra_config_options)
end

#extra_config_optionsObject



39
40
41
# File 'lib/credigy/request.rb', line 39

def extra_config_options
  { soap_header: soap_header, env_namespace: :soapenv, namespace_identifier: :cred }
end

#messageObject



27
28
29
# File 'lib/credigy/request.rb', line 27

def message
  {}
end

#operationObject

Raises:

  • (NotImplementedError)


23
24
25
# File 'lib/credigy/request.rb', line 23

def operation
  raise NotImplementedError
end

#responseObject



15
16
17
# File 'lib/credigy/request.rb', line 15

def response
  client.call(operation, message: message)
end

#response_classObject



11
12
13
# File 'lib/credigy/request.rb', line 11

def response_class
  Object.const_get("#{self.class}Response")
end

#soap_headerObject



43
44
45
# File 'lib/credigy/request.rb', line 43

def soap_header
  {}
end

#wsdlObject



47
48
49
# File 'lib/credigy/request.rb', line 47

def wsdl
  Credigy.configuration.wsdl
end