Class: Zaig::Registration

Inherits:
Object
  • Object
show all
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.new) ⇒ Registration

Returns a new instance of Registration.



10
11
12
13
# File 'lib/zaig/registration.rb', line 10

def initialize(connection: Zaig::Connection.new, registration_payload: Zaig::RegistrationPayload.new)
  @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



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

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