module CanvasSync module Jobs # Starts a Canvas report and enqueues a ReportChecker class ReportStarter < CanvasSync::Job # @param job_chain [Hash] # @param report_name [Hash] e.g., 'provisioning_csv' # @param report_params [Hash] The Canvas report parameters # @param processor [String] a stringified report processor class name # @param options [Hash] hash of options that will be passed to the job processor # @return [nil] def perform(job_chain, report_name, report_params, processor, options) report = canvas_sync_client.start_report('self', report_name, report_params) CanvasSync::Jobs::ReportChecker.set(wait: report_checker_wait_time).perform_later( job_chain, report_name, report['id'], processor, options ) end end end end