# frozen_string_literal: true require 'json' require 'securerandom' # Main class for managing the upload queue in case of rate limiting class QueueManager QUEUE_FILE = 'queue.json' def self.enqueue(file_path) id = SecureRandom.uuid entry = { id:, file_path:, timestamp: Time.now.to_i } queue = load_queue queue << entry save_queue(queue) id end def self.dequeue queue = load_queue entry = queue.shift save_queue(queue) entry end def self.load_queue return [] unless File.exist?(QUEUE_FILE) JSON.parse(File.read(QUEUE_FILE), symbolize_names: true) end def self.save_queue(queue) File.write(QUEUE_FILE, JSON.pretty_generate(queue)) end end