Module: Waitmate::Ticket

Defined in:
lib/waitmate/ticket.rb

Defined Under Namespace

Classes: Result

Constant Summary collapse

PURPOSE =
"waitmate:ticket"
SALT =
"waitmate ticket v1"
KEY_LENGTH =
32

Class Method Summary collapse

Class Method Details

.issue(queue_name:, session_id:) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/waitmate/ticket.rb', line 27

def issue(queue_name:, session_id:)
  encryptor.encrypt_and_sign(
    payload(queue_name, session_id),
    expires_in: Waitmate.configuration.ticket_ttl,
    purpose: PURPOSE
  )
end

.verify(token:, queue_name:, session_id:) ⇒ Object



35
36
37
38
39
40
41
42
# File 'lib/waitmate/ticket.rb', line 35

def verify(token:, queue_name:, session_id:)
  data = encryptor.decrypt_and_verify(token.to_s, purpose: PURPOSE)
  return failure(:invalid) unless valid_payload?(data, queue_name, session_id)

  success
rescue ActiveSupport::MessageEncryptor::InvalidMessage
  failure(:invalid)
end