Class: CanvasSync::Processors::ProvisioningReportProcessor
- Inherits:
-
Object
- Object
- CanvasSync::Processors::ProvisioningReportProcessor
- Defined in:
- lib/canvas_sync/processors/provisioning_report_processor.rb
Constant Summary collapse
- USERS_CSV_MAPPING =
Used by the bulk importer. The keys are CSV columns and the values are the database columns.
{ canvas_user_id: :canvas_user_id, user_id: :sis_id, email: :email, first_name: :first_name, last_name: :last_name, status: :status, login_id: :login_id }
- COURSES_CSV_MAPPING =
{ canvas_course_id: :canvas_course_id, course_id: :sis_id, short_name: :short_name, long_name: :long_name, canvas_account_id: :canvas_account_id, canvas_term_id: :canvas_term_id, term_id: :term_sis_id, start_date: :start_date, end_date: :end_date, status: :status }
- ENROLLMENTS_CSV_MAPPING =
{ canvas_enrollment_id: :canvas_enrollment_id, canvas_course_id: :canvas_course_id, course_id: :course_sis_id, canvas_user_id: :canvas_user_id, user_id: :user_sis_id, role: :role, role_id: :role_id, canvas_section_id: :canvas_section_id, section_id: :section_sis_id, status: :status, base_role_type: :base_role_type }
- SECTIONS_CSV_MAPPING =
{ canvas_section_id: :canvas_section_id, section_id: :sis_id, canvas_course_id: :canvas_course_id, name: :name, status: :status, start_date: :start_date, end_date: :end_date }
- XLIST_CSV_MAPPING =
{ canvas_section_id: :canvas_section_id, canvas_nonxlist_course_id: :canvas_nonxlist_course_id }
Class Method Summary collapse
-
.process(report_file_path, options) ⇒ Object
Processes a provisioning report using the bulk importer.
Instance Method Summary collapse
-
#initialize(report_file_path, options) ⇒ ProvisioningReportProcessor
constructor
A new instance of ProvisioningReportProcessor.
Constructor Details
#initialize(report_file_path, options) ⇒ ProvisioningReportProcessor
Returns a new instance of ProvisioningReportProcessor.
75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/canvas_sync/processors/provisioning_report_processor.rb', line 75 def initialize(report_file_path, ) @options = if [:models].length == 1 run_import([:models][0], report_file_path) else unzipped_file_path = extract(report_file_path) Dir[unzipped_file_path + "/*.csv"].each do |file_path| model_name = file_path.split("/").last.split(".").first run_import(model_name, file_path) end end end |
Class Method Details
.process(report_file_path, options) ⇒ Object
Processes a provisioning report using the bulk importer.
options must contain a models key. If there is only one model Canvas downloads the single report directly as a CSV. If it's more than one model Canvas downloads a ZIP file, so we have to extract that and iterate through it for processing.
71 72 73 |
# File 'lib/canvas_sync/processors/provisioning_report_processor.rb', line 71 def self.process(report_file_path, ) self.new(report_file_path, ) end |