Module: CASino::ProcessorConcern::ProxyTickets

Includes:
Tickets
Included in:
ServiceTickets, CASino::ProxyTicketProviderProcessor
Defined in:
app/processors/casino/processor_concern/proxy_tickets.rb

Defined Under Namespace

Classes: ValidationResult

Constant Summary

Constants included from Tickets

Tickets::ALLOWED_TICKET_STRING_CHARACTERS

Instance Method Summary collapse

Methods included from Tickets

#random_ticket_string

Instance Method Details

#acquire_proxy_ticket(proxy_granting_ticket, service) ⇒ Object



9
10
11
12
13
14
# File 'app/processors/casino/processor_concern/proxy_tickets.rb', line 9

def acquire_proxy_ticket(proxy_granting_ticket, service)
  proxy_granting_ticket.proxy_tickets.create!({
    ticket: random_ticket_string('PT'),
    service: service,
  })
end

#ticket_valid_for_service?(ticket, service, renew = false) ⇒ Boolean

Returns:

  • (Boolean)


33
34
35
# File 'app/processors/casino/processor_concern/proxy_tickets.rb', line 33

def ticket_valid_for_service?(ticket, service, renew = false)
  validate_ticket_for_service(ticket, service, renew).success?
end

#validate_ticket_for_service(ticket, service, renew = false) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'app/processors/casino/processor_concern/proxy_tickets.rb', line 16

def validate_ticket_for_service(ticket, service, renew = false)
  if ticket.nil?
    result = ValidationResult.new 'INVALID_TICKET', 'Invalid validate request: Ticket does not exist', :warn
  else
    result = validate_existing_ticket_for_service(ticket, service, renew)
    ticket.consumed = true
    ticket.save!
    Rails.logger.debug "Consumed ticket '#{ticket.ticket}'"
  end
  if result.success?
    Rails.logger.info "Ticket '#{ticket.ticket}' for service '#{service}' successfully validated"
  else
    Rails.logger.send(result.error_severity, result.error_message)
  end
  result
end