Class: Zaig::Registration

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/zaig/registration.rb

Overview

Class to request a registration to the remote server.

Constant Summary collapse

ENDPOINT =
"zaig/consulta_de_credito"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(connection: Zaig::Connection.new, registration_payload: Zaig::RegistrationPayload.instance) ⇒ Registration

Returns a new instance of Registration.



12
13
14
15
# File 'lib/zaig/registration.rb', line 12

def initialize(connection: Zaig::Connection.new, registration_payload: Zaig::RegistrationPayload.instance)
  @connection = connection
  @registration_payload = registration_payload
end

Instance Attribute Details

#connectionObject (readonly)

Returns the value of attribute connection.



6
7
8
# File 'lib/zaig/registration.rb', line 6

def connection
  @connection
end

Instance Method Details

#call(obj) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/zaig/registration.rb', line 17

def call(obj)
  payload = @registration_payload.call(obj)

  res = @connection.post(url: Zaig.configuration.registration_endpoint, body: payload.to_json)

  verify_response(res)

  # Lets parse the clueless response
  parsed_res = JSON.parse(res.body, symbolize_names: true)
  res_zaig = parsed_res[:resposta_zaig]

  ::Zaig::Entities::Response.new(
    analysis_status: res_zaig[:analysis_status],
    credit_proposal_legal_person_key: res_zaig[:credit_proposal_legal_person_key],
    message: parsed_res[:msg],
    raw_data: res.body,
    reason: res_zaig[:reason],
    request: res,
    status_code: res.status,
    zaig_id: res_zaig[:id]
  )
end