Class: FocusNfe::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/focus_nfe/client.rb

Overview

Raiz de acesso à API. Cada cliente carrega sua própria Configuration e mantém duas HTTP::Connection memoizadas, uma por token: a de empresa (emissão/consulta de documentos) e a de conta (consultas auxiliares e gestão de empresas). Permite coexistência de várias empresas no mesmo processo sem estado compartilhado. Expõe os recursos da API instanciados preguiçosamente.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(configuration) ⇒ Client #initialize(token_empresa:, token_conta:, environment:, **options) ⇒ Client

Returns a new instance of Client.

Overloads:

  • #initialize(configuration) ⇒ Client

    Parameters:

  • #initialize(token_empresa:, token_conta:, environment:, **options) ⇒ Client

    Parameters:

    • token_empresa (String)

      token da empresa (emissão/consulta de documentos)

    • token_conta (String)

      token da conta (consultas auxiliares e gestão de empresas)

    • environment (Symbol)

      :producao ou :homologacao

    • options (Hash)

      demais opções da FocusNfe::Configuration (timeout, headers, …)

Raises:



21
22
23
# File 'lib/focus_nfe/client.rb', line 21

def initialize(configuration = nil, **)
  @configuration = (configuration || Configuration.new(**)).tap(&:validate!)
end

Instance Attribute Details

#configurationFocusNfe::Configuration (readonly)

Returns configuração validada deste cliente.

Returns:



11
12
13
# File 'lib/focus_nfe/client.rb', line 11

def configuration
  @configuration
end

Instance Method Details

#backupsFocusNfe::Recursos::Backups

Returns recurso de backups de XML, memoizado.

Returns:



148
149
150
# File 'lib/focus_nfe/client.rb', line 148

def backups
  @backups ||= Recursos::Backups.new(connection)
end

#cepsFocusNfe::Recursos::Ceps

Returns recurso de consulta de CEP, memoizado.

Returns:



103
104
105
# File 'lib/focus_nfe/client.rb', line 103

def ceps
  @ceps ||= Recursos::Ceps.new(connection_conta)
end

#cfopsFocusNfe::Recursos::Cfops

Returns recurso de consulta de CFOP, memoizado.

Returns:



113
114
115
# File 'lib/focus_nfe/client.rb', line 113

def cfops
  @cfops ||= Recursos::Cfops.new(connection_conta)
end

#cnaesFocusNfe::Recursos::Cnaes

Returns recurso de consulta de CNAE, memoizado.

Returns:



118
119
120
# File 'lib/focus_nfe/client.rb', line 118

def cnaes
  @cnaes ||= Recursos::Cnaes.new(connection_conta)
end

#cnpjsFocusNfe::Recursos::Cnpjs

Returns recurso de consulta de CNPJ, memoizado.

Returns:



128
129
130
# File 'lib/focus_nfe/client.rb', line 128

def cnpjs
  @cnpjs ||= Recursos::Cnpjs.new(connection_conta)
end

#connectionFocusNfe::HTTP::Connection

Returns conexão da empresa, memoizada.

Returns:

Raises:



27
28
29
# File 'lib/focus_nfe/client.rb', line 27

def connection
  @connection ||= build_connection(:empresa)
end

#connection_contaFocusNfe::HTTP::Connection

Returns conexão da conta, memoizada.

Returns:

Raises:



33
34
35
# File 'lib/focus_nfe/client.rb', line 33

def connection_conta
  @connection_conta ||= build_connection(:conta)
end

#cteFocusNfe::Recursos::Cte

Returns recurso de CT-e, memoizado.

Returns:



58
59
60
# File 'lib/focus_nfe/client.rb', line 58

def cte
  @cte ||= Recursos::Cte.new(connection)
end

#cte_osFocusNfe::Recursos::CteOs

Returns recurso de CT-e OS, memoizado.

Returns:



63
64
65
# File 'lib/focus_nfe/client.rb', line 63

def cte_os
  @cte_os ||= Recursos::CteOs.new(connection)
end

#ctes_recebidasFocusNfe::Recursos::CtesRecebidas

Returns recurso de CT-e recebidos, memoizado.

Returns:



93
94
95
# File 'lib/focus_nfe/client.rb', line 93

def ctes_recebidas
  @ctes_recebidas ||= Recursos::CtesRecebidas.new(connection)
end

#dceFocusNfe::Recursos::Dce

Returns recurso de DC-e, memoizado.

Returns:



78
79
80
# File 'lib/focus_nfe/client.rb', line 78

def dce
  @dce ||= Recursos::Dce.new(connection)
end

#emails_bloqueadosFocusNfe::Recursos::EmailsBloqueados

Returns recurso de e-mails bloqueados, memoizado.

Returns:



143
144
145
# File 'lib/focus_nfe/client.rb', line 143

def emails_bloqueados
  @emails_bloqueados ||= Recursos::EmailsBloqueados.new(connection)
end

#empresasFocusNfe::Recursos::Empresas

Returns recurso de gestão de empresas, memoizado.

Returns:



133
134
135
# File 'lib/focus_nfe/client.rb', line 133

def empresas
  @empresas ||= Recursos::Empresas.new(connection_conta)
end

#mdfeFocusNfe::Recursos::Mdfe

Returns recurso de MDF-e, memoizado.

Returns:



68
69
70
# File 'lib/focus_nfe/client.rb', line 68

def mdfe
  @mdfe ||= Recursos::Mdfe.new(connection)
end

#municipiosFocusNfe::Recursos::Municipios

Returns recurso de consulta de municípios, memoizado.

Returns:



108
109
110
# File 'lib/focus_nfe/client.rb', line 108

def municipios
  @municipios ||= Recursos::Municipios.new(connection_conta)
end

#ncmsFocusNfe::Recursos::Ncms

Returns recurso de consulta de NCM, memoizado.

Returns:



123
124
125
# File 'lib/focus_nfe/client.rb', line 123

def ncms
  @ncms ||= Recursos::Ncms.new(connection_conta)
end

#nfceFocusNfe::Recursos::Nfce

Returns recurso de NFC-e, memoizado.

Returns:



43
44
45
# File 'lib/focus_nfe/client.rb', line 43

def nfce
  @nfce ||= Recursos::Nfce.new(connection)
end

#nfcomFocusNfe::Recursos::Nfcom

Returns recurso de NFCom, memoizado.

Returns:



73
74
75
# File 'lib/focus_nfe/client.rb', line 73

def nfcom
  @nfcom ||= Recursos::Nfcom.new(connection)
end

#nfeFocusNfe::Recursos::Nfe

Returns recurso de NF-e, memoizado.

Returns:



38
39
40
# File 'lib/focus_nfe/client.rb', line 38

def nfe
  @nfe ||= Recursos::Nfe.new(connection)
end

#nfes_recebidasFocusNfe::Recursos::NfesRecebidas

Returns recurso de NF-e recebidas, memoizado.

Returns:



88
89
90
# File 'lib/focus_nfe/client.rb', line 88

def nfes_recebidas
  @nfes_recebidas ||= Recursos::NfesRecebidas.new(connection)
end

#nfgasFocusNfe::Recursos::Nfgas

Returns recurso de NFGas, memoizado.

Returns:



83
84
85
# File 'lib/focus_nfe/client.rb', line 83

def nfgas
  @nfgas ||= Recursos::Nfgas.new(connection)
end

#nfseFocusNfe::Recursos::Nfse

Returns recurso de NFS-e, memoizado.

Returns:



48
49
50
# File 'lib/focus_nfe/client.rb', line 48

def nfse
  @nfse ||= Recursos::Nfse.new(connection)
end

#nfse_nacionalFocusNfe::Recursos::NfseNacional

Returns recurso de NFS-e nacional, memoizado.

Returns:



53
54
55
# File 'lib/focus_nfe/client.rb', line 53

def nfse_nacional
  @nfse_nacional ||= Recursos::NfseNacional.new(connection)
end

#nfses_nacionais_recebidasFocusNfe::Recursos::NfsesNacionaisRecebidas

Returns recurso de NFS-e nacionais recebidas, memoizado.

Returns:



98
99
100
# File 'lib/focus_nfe/client.rb', line 98

def nfses_nacionais_recebidas
  @nfses_nacionais_recebidas ||= Recursos::NfsesNacionaisRecebidas.new(connection)
end

#webhooksFocusNfe::Recursos::Webhooks

Returns recurso de gestão de webhooks, memoizado.

Returns:



138
139
140
# File 'lib/focus_nfe/client.rb', line 138

def webhooks
  @webhooks ||= Recursos::Webhooks.new(connection)
end