Class: Arca::VEConsumer
- Inherits:
-
Object
- Object
- Arca::VEConsumer
- Defined in:
- lib/arca/ve_consumer.rb
Constant Summary collapse
- WSDL =
{ development: "https://stable-middleware-tecno-ext.afip.gob.ar/ve-ws/services/veconsumer?wsdl", production: "https://infraestructura.afip.gob.ar/ve-ws/services/veconsumer?wsdl", test: "#{Root}/test/fixtures/ve_consumer/ve_consumer.wsdl" }.freeze
Instance Attribute Summary collapse
-
#cuit ⇒ Object
readonly
Returns the value of attribute cuit.
-
#wsaa ⇒ Object
readonly
Returns the value of attribute wsaa.
Instance Method Summary collapse
-
#consultar_comunicaciones(filter = {}) ⇒ Object
Consulta comunicaciones del contribuyente con filtros opcionales.
-
#consultar_estados ⇒ Object
Lista los posibles estados de una comunicación.
-
#consultar_sistemas_publicadores(id_sistema_publicador: nil) ⇒ Object
Lista los sistemas publicadores habilitados en Ventanilla Electrónica.
-
#consumir_comunicacion(id_comunicacion, incluir_adjuntos: false) ⇒ Object
Recupera una comunicación por id y la marca como leída.
-
#initialize(options = {}) ⇒ VEConsumer
constructor
A new instance of VEConsumer.
Constructor Details
#initialize(options = {}) ⇒ VEConsumer
Returns a new instance of VEConsumer.
17 18 19 20 21 22 23 24 25 |
# File 'lib/arca/ve_consumer.rb', line 17 def initialize( = {}) @cuit = normalize_cuit([:cuit]) @wsaa = WSAA.new .merge(service: "veconsumerws") @client = Client.new Hash([:savon]).reverse_merge( wsdl: WSDL[@wsaa.env], soap_version: 2, convert_request_keys_to: :camelcase ) end |
Instance Attribute Details
#cuit ⇒ Object (readonly)
Returns the value of attribute cuit.
15 16 17 |
# File 'lib/arca/ve_consumer.rb', line 15 def cuit @cuit end |
#wsaa ⇒ Object (readonly)
Returns the value of attribute wsaa.
15 16 17 |
# File 'lib/arca/ve_consumer.rb', line 15 def wsaa @wsaa end |
Instance Method Details
#consultar_comunicaciones(filter = {}) ⇒ Object
Consulta comunicaciones del contribuyente con filtros opcionales. Claves opcionales del filter: estado, fecha_desde, fecha_hasta, comunicacion_id_desde, comunicacion_id_hasta, tiene_adjunto, sistema_publicador_id, pagina, resultados_por_pagina, referencia1, referencia2. Retorna un hash con :pagina, :total_paginas, :items_por_pagina, :total_items e :items (Array de ComunicacionSimplificada).
34 35 36 37 38 |
# File 'lib/arca/ve_consumer.rb', line 34 def consultar_comunicaciones(filter = {}) r = raw_request(:consultar_comunicaciones, auth_request.merge(filter: filter)) paginada = r[:respuesta_paginada] paginada.merge(items: get_array(paginada[:items], :comunicacion_simplificada)) end |
#consultar_estados ⇒ Object
Lista los posibles estados de una comunicación. 1=No leída, 2=Leída.
66 67 68 69 |
# File 'lib/arca/ve_consumer.rb', line 66 def consultar_estados r = raw_request(:consultar_estados, auth_request) Array.wrap(r.dig(:estados, :estado)) end |
#consultar_sistemas_publicadores(id_sistema_publicador: nil) ⇒ Object
Lista los sistemas publicadores habilitados en Ventanilla Electrónica. Con id_sistema_publicador filtra por sistema específico.
58 59 60 61 62 63 |
# File 'lib/arca/ve_consumer.rb', line 58 def consultar_sistemas_publicadores(id_sistema_publicador: nil) params = auth_request params = params.merge(id_sistema_publicador: id_sistema_publicador) if id_sistema_publicador r = raw_request(:consultar_sistemas_publicadores, params) Array.wrap(r.dig(:sistemas, :sistema)) end |
#consumir_comunicacion(id_comunicacion, incluir_adjuntos: false) ⇒ Object
Recupera una comunicación por id y la marca como leída. Con incluir_adjuntos: true se incluyen los adjuntos vía MTOM en la respuesta; el contenido binario de cada adjunto queda en :content como String. Retorna la Comunicacion con :adjuntos como Array.
44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/arca/ve_consumer.rb', line 44 def consumir_comunicacion(id_comunicacion, incluir_adjuntos: false) response = client_request(:consumir_comunicacion, auth_request.merge( id_comunicacion: id_comunicacion, incluir_adjuntos: incluir_adjuntos )) resp = response.to_hash[:consumir_comunicacion_response] raise ServerError, "Unexpected response structure" unless resp comunicacion = resp[:comunicacion] comunicacion.merge(adjuntos: build_adjuntos(comunicacion[:adjuntos], response.)) end |