module QueueIt::Queueable
Public Instance Methods
create_or_verify_queue_it_session(secret_key, event_id, customer_id, request_url, params, current_tickets_url)
click to toggle source
# File lib/queue_it/queueable.rb, line 38 def create_or_verify_queue_it_session(secret_key, event_id, customer_id, request_url, params, current_tickets_url) # If there exists a session, we return. This needs to be refactored when we start to look at the timestamp parameter return if cookies.signed[queue_it_session_variable(event_id)].present? begin queue_number = QueueIt::ExtractQueueNumber.new.( secret_key: secret_key, request_url: request_url, request_params: params) cookies.signed[queue_it_session_variable(event_id)] = { value: queue_number, expires: 24.hours.from_now } # If the request URL contains queue_it params we remove them and redirect # this is done to mask the params we use to create and verify the queue_it session if QueueIt::UrlBuilder.contains_queue_params?(request_url) redirect_to QueueIt::UrlBuilder.clean_url(request_url) and return end rescue QueueIt::MissingArgsGiven queue_url = QueueIt::UrlBuilder.build_queue_url(customer_id, event_id, current_tickets_url) destroy_all_queue_it_sessions render("queue_it/enter_queue", layout: false, locals: { queue_it_url: queue_url }) and return rescue QueueIt::NotAuthorized queue_cancel_url = QueueIt::UrlBuilder.build_cancel_url(customer_id, event_id) destroy_all_queue_it_sessions render("queue_it/cheating_queue", layout: false, locals: { queue_it_url: queue_cancel_url }) and return end end
destroy_all_queue_it_sessions()
click to toggle source
# File lib/queue_it/queueable.rb, line 21 def destroy_all_queue_it_sessions session_variable_prefix = queue_it_session_variable("") cookies.each do |key, _| cookies.delete(key) if key.starts_with?(session_variable_prefix) end end
destroy_queue_it_session(event_id)
click to toggle source
# File lib/queue_it/queueable.rb, line 28 def destroy_queue_it_session(event_id) cookies.delete(queue_it_session_variable(event_id)) end
protect_with_queue!(known_user_secret_key, event_id, customer_id, redirect_url: nil)
click to toggle source
# File lib/queue_it/queueable.rb, line 8 def protect_with_queue!(known_user_secret_key, event_id, customer_id, redirect_url: nil) create_or_verify_queue_it_session(known_user_secret_key, event_id, customer_id, request.original_url, params, redirect_url) end
queue_it_queue_id(event_id)
click to toggle source
# File lib/queue_it/queueable.rb, line 17 def queue_it_queue_id(event_id) cookies.signed[queue_it_session_variable(event_id)].to_i end
queue_it_session_variable(event_id)
click to toggle source
# File lib/queue_it/queueable.rb, line 32 def queue_it_session_variable(event_id) "KnownQueueItUser-#{event_id}" end