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 = CanvasSync.get_canvas_sync_client(job_chain[:global_options]).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