Class: Wsaa::Tra
- Inherits:
-
Object
- Object
- Wsaa::Tra
- Defined in:
- lib/wsaa/tra.rb
Overview
Builds the Ticket de Requerimiento de Acceso (TRA) XML document.
The TRA is the access request ticket required by WSAA for authentication.
Constant Summary collapse
- TIMEZONE_OFFSET =
'-03:00'
Instance Attribute Summary collapse
-
#expiration_time ⇒ Time
readonly
When the TRA expires.
-
#generation_time ⇒ Time
readonly
When the TRA was generated.
-
#service ⇒ String
readonly
The AFIP service name.
-
#unique_id ⇒ Integer
readonly
Unique identifier for the request.
Instance Method Summary collapse
-
#initialize(service:, generation_time: nil, expiration_time: nil, unique_id: nil) ⇒ Tra
constructor
Creates a new TRA.
-
#to_xml ⇒ String
Converts the TRA to an XML string.
Constructor Details
#initialize(service:, generation_time: nil, expiration_time: nil, unique_id: nil) ⇒ Tra
Creates a new TRA.
25 26 27 28 29 30 |
# File 'lib/wsaa/tra.rb', line 25 def initialize(service:, generation_time: nil, expiration_time: nil, unique_id: nil) @service = service @unique_id = unique_id || Time.now.to_i @generation_time = generation_time || default_generation_time @expiration_time = expiration_time || default_expiration_time end |
Instance Attribute Details
#expiration_time ⇒ Time (readonly)
When the TRA expires.
13 14 15 |
# File 'lib/wsaa/tra.rb', line 13 def expiration_time @expiration_time end |
#generation_time ⇒ Time (readonly)
When the TRA was generated.
13 14 15 |
# File 'lib/wsaa/tra.rb', line 13 def generation_time @generation_time end |
#service ⇒ String (readonly)
The AFIP service name.
13 14 15 |
# File 'lib/wsaa/tra.rb', line 13 def service @service end |
#unique_id ⇒ Integer (readonly)
Unique identifier for the request.
13 14 15 |
# File 'lib/wsaa/tra.rb', line 13 def unique_id @unique_id end |
Instance Method Details
#to_xml ⇒ String
Converts the TRA to an XML string.
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/wsaa/tra.rb', line 36 def to_xml doc = REXML::Document.new doc << REXML::XMLDecl.new('1.0', 'UTF-8') root = doc.add_element('loginTicketRequest', 'version' => '1.0') header = root.add_element('header') header.add_element('uniqueId').text = unique_id.to_s header.add_element('generationTime').text = format_time(generation_time) header.add_element('expirationTime').text = format_time(expiration_time) root.add_element('service').text = service output = String.new doc.write(output) output end |