Class: Biro::Bacen::Response

Inherits:
Biro::BaseResponse show all
Defined in:
lib/biro/gateways/bacen/response.rb

Instance Attribute Summary

Attributes inherited from Biro::BaseResponse

#body

Instance Method Summary collapse

Constructor Details

#initialize(response) ⇒ Response

Returns a new instance of Response.



6
7
8
# File 'lib/biro/gateways/bacen/response.rb', line 6

def initialize(response)
  @body = response.body
end

Instance Method Details

#assumed_co_obligationObject



18
19
20
# File 'lib/biro/gateways/bacen/response.rb', line 18

def assumed_co_obligation
  result.dig(:coobrigacao_assumida)&.to_f&.round(2)
end

#base_dateObject



26
27
28
# File 'lib/biro/gateways/bacen/response.rb', line 26

def base_date
  result.dig(:data_base_consultada)
end

#cnpj_ifObject



10
11
12
# File 'lib/biro/gateways/bacen/response.rb', line 10

def cnpj_if
  result.dig(:cnpj_da_if_solicitante)
end

#cpfObject



14
15
16
# File 'lib/biro/gateways/bacen/response.rb', line 14

def cpf
  result.dig(:codigo_do_cliente)
end

#customer_typeObject



91
92
93
# File 'lib/biro/gateways/bacen/response.rb', line 91

def customer_type
  result.dig(:tipo_do_cliente).to_i
end

#indirect_riskObject



87
88
89
# File 'lib/biro/gateways/bacen/response.rb', line 87

def indirect_risk
  result.dig(:risco_indireto_vendor).to_i
end

#institutions_amountObject



63
64
65
# File 'lib/biro/gateways/bacen/response.rb', line 63

def institutions_amount
  result.dig(:quantidade_de_instituicoes).to_i
end

#invoice_listObject



34
35
36
37
38
39
40
41
42
43
44
# File 'lib/biro/gateways/bacen/response.rb', line 34

def invoice_list
  return if operation_list.blank?

  Array.wrap(result.dig(:lista_de_resumo_das_operacoes)).map do |item|
  {
    :tax_variation => item[:variacao_cambial],
    :modality =>  item[:modalidade],
    :dues_list =>  invoice_list_item(item[:lista_de_vencimentos])
  }
  end
end

#invoice_list_item(items) ⇒ Object



46
47
48
49
50
51
52
53
# File 'lib/biro/gateways/bacen/response.rb', line 46

def invoice_list_item(items)
  Array.wrap(items).map do |item|
  {
    :code => item[:codigo_vencimento],
    :value  => item[:valor_vencimento]
  }
  end
end

#operation_amountObject



67
68
69
# File 'lib/biro/gateways/bacen/response.rb', line 67

def operation_amount
  result.dig(:quantidade_de_operacoes).to_i
end

#processed_documents_percentageObject



55
56
57
# File 'lib/biro/gateways/bacen/response.rb', line 55

def processed_documents_percentage
  result.dig(:percentual_documentos_processados)&.to_f&.round(2)
end

#processed_volume_percentageObject



59
60
61
# File 'lib/biro/gateways/bacen/response.rb', line 59

def processed_volume_percentage
  result.dig(:percentual_volume_processado)&.to_f&.round(2)
end

#received_co_obligationObject



22
23
24
# File 'lib/biro/gateways/bacen/response.rb', line 22

def received_co_obligation
  result.dig(:coobrigacao_recebida)&.to_f&.round(2)
end

#relationship_initial_dateObject



30
31
32
# File 'lib/biro/gateways/bacen/response.rb', line 30

def relationship_initial_date
  result.dig(:data_inicio_relacionamento)&.to_date
end

#result_validationObject



95
96
97
98
99
100
101
# File 'lib/biro/gateways/bacen/response.rb', line 95

def result_validation
  validation_content = result.dig(:lista_de_mensagens_de_validacao)

  return { } if validation_content.blank?

  validation_content
end

#sub_judice_operation_amountObject



75
76
77
# File 'lib/biro/gateways/bacen/response.rb', line 75

def sub_judice_operation_amount
  result.dig(:quantidade_operacoes_sub_judice).to_i
end

#sub_judice_total_responsibilityObject



83
84
85
# File 'lib/biro/gateways/bacen/response.rb', line 83

def sub_judice_total_responsibility
  result.dig(:responsabilidade_total_sub_judice).to_i
end

#unconformity_operation_amountObject



71
72
73
# File 'lib/biro/gateways/bacen/response.rb', line 71

def unconformity_operation_amount
  result.dig(:quantidade_operacoes_discordancia).to_i
end

#unconformity_total_responsibilityObject



79
80
81
# File 'lib/biro/gateways/bacen/response.rb', line 79

def unconformity_total_responsibility
  result.dig(:responsabilidade_total_discordancia).to_i
end