canvas_sync 0.22.4 → 0.22.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (429) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -0
  3. data/Rakefile +0 -0
  4. data/app/controllers/canvas_sync/api/v1/health_check_controller.rb +0 -0
  5. data/app/controllers/canvas_sync/api/v1/live_events_controller.rb +0 -0
  6. data/app/models/canvas_sync/job_log.rb +5 -1
  7. data/app/models/canvas_sync/sync_batch.rb +0 -1
  8. data/config/initializers/apartment.rb +0 -0
  9. data/config/routes.rb +0 -0
  10. data/db/migrate/20170915210836_create_canvas_sync_job_log.rb +0 -0
  11. data/db/migrate/20180725155729_add_job_id_to_canvas_sync_job_logs.rb +0 -0
  12. data/db/migrate/20190916154829_add_fork_count_to_canvas_sync_job_logs.rb +0 -0
  13. data/db/migrate/20201018210836_create_canvas_sync_sync_batches.rb +0 -0
  14. data/db/migrate/20201030210836_add_full_sync_to_canvas_sync_sync_batch.rb +0 -0
  15. data/lib/canvas_sync/api_syncable.rb +0 -0
  16. data/lib/canvas_sync/batch_processor.rb +0 -0
  17. data/lib/canvas_sync/class_callback_executor.rb +0 -0
  18. data/lib/canvas_sync/concerns/ability_helper.rb +0 -0
  19. data/lib/canvas_sync/concerns/account/ancestry.rb +0 -0
  20. data/lib/canvas_sync/concerns/account/base.rb +0 -0
  21. data/lib/canvas_sync/concerns/api_syncable.rb +0 -0
  22. data/lib/canvas_sync/concerns/auto_relations.rb +11 -0
  23. data/lib/canvas_sync/concerns/legacy_columns.rb +0 -0
  24. data/lib/canvas_sync/concerns/live_event_sync.rb +0 -0
  25. data/lib/canvas_sync/concerns/role/base.rb +0 -0
  26. data/lib/canvas_sync/concerns/sync_mapping.rb +0 -0
  27. data/lib/canvas_sync/config.rb +0 -0
  28. data/lib/canvas_sync/engine.rb +0 -0
  29. data/lib/canvas_sync/generators/install_generator.rb +0 -0
  30. data/lib/canvas_sync/generators/install_live_events_generator.rb +0 -0
  31. data/lib/canvas_sync/generators/templates/migrations/create_accounts.rb +0 -0
  32. data/lib/canvas_sync/generators/templates/migrations/create_admins.rb +0 -0
  33. data/lib/canvas_sync/generators/templates/migrations/create_assignment_groups.rb +0 -0
  34. data/lib/canvas_sync/generators/templates/migrations/create_assignments.rb +0 -0
  35. data/lib/canvas_sync/generators/templates/migrations/create_content_migrations.rb +0 -0
  36. data/lib/canvas_sync/generators/templates/migrations/create_context_module_items.rb +0 -0
  37. data/lib/canvas_sync/generators/templates/migrations/create_context_modules.rb +0 -0
  38. data/lib/canvas_sync/generators/templates/migrations/create_course_nicknames.rb +0 -0
  39. data/lib/canvas_sync/generators/templates/migrations/create_course_progresses.rb +0 -0
  40. data/lib/canvas_sync/generators/templates/migrations/create_courses.rb +0 -0
  41. data/lib/canvas_sync/generators/templates/migrations/create_enrollments.rb +0 -0
  42. data/lib/canvas_sync/generators/templates/migrations/create_grading_period_groups.rb +0 -0
  43. data/lib/canvas_sync/generators/templates/migrations/create_grading_periods.rb +0 -0
  44. data/lib/canvas_sync/generators/templates/migrations/create_group_memberships.rb +0 -0
  45. data/lib/canvas_sync/generators/templates/migrations/create_groups.rb +0 -0
  46. data/lib/canvas_sync/generators/templates/migrations/create_learning_outcome_results.rb +0 -0
  47. data/lib/canvas_sync/generators/templates/migrations/create_learning_outcomes.rb +0 -0
  48. data/lib/canvas_sync/generators/templates/migrations/create_pseudonyms.rb +0 -0
  49. data/lib/canvas_sync/generators/templates/migrations/create_roles.rb +0 -0
  50. data/lib/canvas_sync/generators/templates/migrations/create_rubric_assessments.rb +0 -0
  51. data/lib/canvas_sync/generators/templates/migrations/create_rubric_associations.rb +0 -0
  52. data/lib/canvas_sync/generators/templates/migrations/create_rubrics.rb +0 -0
  53. data/lib/canvas_sync/generators/templates/migrations/create_sections.rb +0 -0
  54. data/lib/canvas_sync/generators/templates/migrations/create_submissions.rb +0 -0
  55. data/lib/canvas_sync/generators/templates/migrations/create_terms.rb +0 -0
  56. data/lib/canvas_sync/generators/templates/migrations/create_user_observers.rb +0 -0
  57. data/lib/canvas_sync/generators/templates/migrations/create_users.rb +0 -0
  58. data/lib/canvas_sync/generators/templates/models/account.rb +0 -0
  59. data/lib/canvas_sync/generators/templates/models/admin.rb +0 -0
  60. data/lib/canvas_sync/generators/templates/models/assignment.rb +0 -0
  61. data/lib/canvas_sync/generators/templates/models/assignment_group.rb +0 -0
  62. data/lib/canvas_sync/generators/templates/models/content_migration.rb +0 -0
  63. data/lib/canvas_sync/generators/templates/models/context_module.rb +0 -0
  64. data/lib/canvas_sync/generators/templates/models/context_module_item.rb +0 -0
  65. data/lib/canvas_sync/generators/templates/models/course.rb +0 -0
  66. data/lib/canvas_sync/generators/templates/models/course_nickname.rb +0 -0
  67. data/lib/canvas_sync/generators/templates/models/course_progress.rb +8 -0
  68. data/lib/canvas_sync/generators/templates/models/enrollment.rb +0 -0
  69. data/lib/canvas_sync/generators/templates/models/grading_period.rb +0 -0
  70. data/lib/canvas_sync/generators/templates/models/grading_period_group.rb +0 -0
  71. data/lib/canvas_sync/generators/templates/models/group.rb +0 -0
  72. data/lib/canvas_sync/generators/templates/models/group_membership.rb +0 -0
  73. data/lib/canvas_sync/generators/templates/models/learning_outcome.rb +0 -0
  74. data/lib/canvas_sync/generators/templates/models/learning_outcome_result.rb +0 -0
  75. data/lib/canvas_sync/generators/templates/models/pseudonym.rb +0 -0
  76. data/lib/canvas_sync/generators/templates/models/role.rb +0 -0
  77. data/lib/canvas_sync/generators/templates/models/rubric.rb +0 -0
  78. data/lib/canvas_sync/generators/templates/models/rubric_assessment.rb +0 -0
  79. data/lib/canvas_sync/generators/templates/models/rubric_association.rb +0 -0
  80. data/lib/canvas_sync/generators/templates/models/section.rb +0 -0
  81. data/lib/canvas_sync/generators/templates/models/submission.rb +0 -0
  82. data/lib/canvas_sync/generators/templates/models/term.rb +0 -0
  83. data/lib/canvas_sync/generators/templates/models/user.rb +0 -0
  84. data/lib/canvas_sync/generators/templates/models/user_observer.rb +0 -0
  85. data/lib/canvas_sync/generators/templates/services/live_events/assignment_event.rb +0 -0
  86. data/lib/canvas_sync/generators/templates/services/live_events/assignment_group_event.rb +0 -0
  87. data/lib/canvas_sync/generators/templates/services/live_events/course_event.rb +0 -0
  88. data/lib/canvas_sync/generators/templates/services/live_events/course_section_event.rb +0 -0
  89. data/lib/canvas_sync/generators/templates/services/live_events/enrollment_event.rb +0 -0
  90. data/lib/canvas_sync/generators/templates/services/live_events/grade_event.rb +0 -0
  91. data/lib/canvas_sync/generators/templates/services/live_events/module_event.rb +0 -0
  92. data/lib/canvas_sync/generators/templates/services/live_events/module_item_event.rb +0 -0
  93. data/lib/canvas_sync/generators/templates/services/live_events/submission_event.rb +0 -0
  94. data/lib/canvas_sync/generators/templates/services/live_events/syllabus_event.rb +0 -0
  95. data/lib/canvas_sync/generators/templates/services/live_events/user_event.rb +0 -0
  96. data/lib/canvas_sync/importers/bulk_importer.rb +0 -0
  97. data/lib/canvas_sync/importers/legacy_importer.rb +0 -0
  98. data/lib/canvas_sync/job.rb +0 -0
  99. data/lib/canvas_sync/job_batches/batch.rb +22 -18
  100. data/lib/canvas_sync/job_batches/callback.rb +0 -0
  101. data/lib/canvas_sync/job_batches/chain_builder.rb +24 -3
  102. data/lib/canvas_sync/job_batches/compat/active_job.rb +0 -0
  103. data/lib/canvas_sync/job_batches/compat/sidekiq/web/batches_assets/css/styles.less +0 -0
  104. data/lib/canvas_sync/job_batches/compat/sidekiq/web/batches_assets/js/batch_tree.js +0 -0
  105. data/lib/canvas_sync/job_batches/compat/sidekiq/web/batches_assets/js/util.js +0 -0
  106. data/lib/canvas_sync/job_batches/compat/sidekiq/web/helpers.rb +0 -0
  107. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/_batch_tree.erb +0 -0
  108. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/_batches_table.erb +0 -0
  109. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/_common.erb +0 -0
  110. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/_jobs_table.erb +0 -0
  111. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/_pagination.erb +0 -0
  112. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/batch.erb +0 -0
  113. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/batches.erb +0 -0
  114. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/pool.erb +0 -0
  115. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/pools.erb +0 -0
  116. data/lib/canvas_sync/job_batches/compat/sidekiq/web.rb +0 -0
  117. data/lib/canvas_sync/job_batches/compat/sidekiq.rb +0 -0
  118. data/lib/canvas_sync/job_batches/compat.rb +0 -0
  119. data/lib/canvas_sync/job_batches/context_hash.rb +0 -0
  120. data/lib/canvas_sync/job_batches/hier_batch_ids.lua +0 -0
  121. data/lib/canvas_sync/job_batches/jobs/base_job.rb +0 -0
  122. data/lib/canvas_sync/job_batches/jobs/concurrent_batch_job.rb +0 -0
  123. data/lib/canvas_sync/job_batches/jobs/managed_batch_job.rb +4 -0
  124. data/lib/canvas_sync/job_batches/jobs/serial_batch_job.rb +0 -0
  125. data/lib/canvas_sync/job_batches/pool.rb +0 -0
  126. data/lib/canvas_sync/job_batches/pool_refill.lua +0 -0
  127. data/lib/canvas_sync/job_batches/redis_model.rb +0 -0
  128. data/lib/canvas_sync/job_batches/redis_script.rb +0 -0
  129. data/lib/canvas_sync/job_batches/schedule_callback.lua +0 -0
  130. data/lib/canvas_sync/job_batches/status.rb +1 -0
  131. data/lib/canvas_sync/job_uniqueness/compat/active_job.rb +0 -0
  132. data/lib/canvas_sync/job_uniqueness/compat/sidekiq.rb +0 -0
  133. data/lib/canvas_sync/job_uniqueness/compat.rb +0 -0
  134. data/lib/canvas_sync/job_uniqueness/configuration.rb +0 -0
  135. data/lib/canvas_sync/job_uniqueness/job_uniqueness.rb +0 -0
  136. data/lib/canvas_sync/job_uniqueness/lock_context.rb +41 -7
  137. data/lib/canvas_sync/job_uniqueness/locksmith.rb +0 -0
  138. data/lib/canvas_sync/job_uniqueness/on_conflict/base.rb +0 -0
  139. data/lib/canvas_sync/job_uniqueness/on_conflict/log.rb +0 -0
  140. data/lib/canvas_sync/job_uniqueness/on_conflict/null_strategy.rb +0 -0
  141. data/lib/canvas_sync/job_uniqueness/on_conflict/raise.rb +0 -0
  142. data/lib/canvas_sync/job_uniqueness/on_conflict/reject.rb +0 -0
  143. data/lib/canvas_sync/job_uniqueness/on_conflict/reschedule.rb +0 -0
  144. data/lib/canvas_sync/job_uniqueness/on_conflict.rb +0 -0
  145. data/lib/canvas_sync/job_uniqueness/strategy/base.rb +0 -0
  146. data/lib/canvas_sync/job_uniqueness/strategy/until_and_while_executing.rb +0 -0
  147. data/lib/canvas_sync/job_uniqueness/strategy/until_executed.rb +0 -0
  148. data/lib/canvas_sync/job_uniqueness/strategy/until_executing.rb +0 -0
  149. data/lib/canvas_sync/job_uniqueness/strategy/until_expired.rb +0 -0
  150. data/lib/canvas_sync/job_uniqueness/strategy/while_executing.rb +0 -0
  151. data/lib/canvas_sync/job_uniqueness/strategy.rb +0 -0
  152. data/lib/canvas_sync/job_uniqueness/unique_job_common.rb +0 -0
  153. data/lib/canvas_sync/jobs/begin_sync_chain_job.rb +0 -0
  154. data/lib/canvas_sync/jobs/canvas_process_waiter.rb +0 -0
  155. data/lib/canvas_sync/jobs/report_checker.rb +0 -0
  156. data/lib/canvas_sync/jobs/report_processor_job.rb +0 -0
  157. data/lib/canvas_sync/jobs/report_starter.rb +0 -0
  158. data/lib/canvas_sync/jobs/sync_accounts_job.rb +0 -0
  159. data/lib/canvas_sync/jobs/sync_admins_job.rb +0 -0
  160. data/lib/canvas_sync/jobs/sync_assignment_groups_job.rb +0 -0
  161. data/lib/canvas_sync/jobs/sync_assignments_job.rb +0 -0
  162. data/lib/canvas_sync/jobs/sync_content_migrations_job.rb +0 -0
  163. data/lib/canvas_sync/jobs/sync_context_module_items_job.rb +0 -0
  164. data/lib/canvas_sync/jobs/sync_context_modules_job.rb +0 -0
  165. data/lib/canvas_sync/jobs/sync_course_progresses_job.rb +0 -0
  166. data/lib/canvas_sync/jobs/sync_provisioning_report_job.rb +0 -0
  167. data/lib/canvas_sync/jobs/sync_roles_job.rb +0 -0
  168. data/lib/canvas_sync/jobs/sync_rubric_assessments_job.rb +0 -0
  169. data/lib/canvas_sync/jobs/sync_rubric_associations_job.rb +0 -0
  170. data/lib/canvas_sync/jobs/sync_rubrics_job.rb +0 -0
  171. data/lib/canvas_sync/jobs/sync_simple_table_job.rb +0 -0
  172. data/lib/canvas_sync/jobs/sync_submissions_job.rb +0 -0
  173. data/lib/canvas_sync/jobs/sync_terms_job.rb +0 -0
  174. data/lib/canvas_sync/jobs/term_batches_job.rb +4 -1
  175. data/lib/canvas_sync/live_events/base_handler.rb +0 -0
  176. data/lib/canvas_sync/live_events/process_event_job.rb +0 -0
  177. data/lib/canvas_sync/live_events.rb +0 -0
  178. data/lib/canvas_sync/misc_helper.rb +0 -0
  179. data/lib/canvas_sync/processors/assignment_groups_processor.rb +0 -0
  180. data/lib/canvas_sync/processors/assignments_processor.rb +0 -0
  181. data/lib/canvas_sync/processors/content_migrations_processor.rb +0 -0
  182. data/lib/canvas_sync/processors/context_module_items_processor.rb +0 -0
  183. data/lib/canvas_sync/processors/context_modules_processor.rb +0 -0
  184. data/lib/canvas_sync/processors/course_completion_report_processor.rb +0 -0
  185. data/lib/canvas_sync/processors/model_mappings.yml +0 -0
  186. data/lib/canvas_sync/processors/normal_processor.rb +0 -0
  187. data/lib/canvas_sync/processors/provisioning_report_processor.rb +0 -0
  188. data/lib/canvas_sync/processors/report_processor.rb +0 -0
  189. data/lib/canvas_sync/processors/rubric_assessments_processor.rb +0 -0
  190. data/lib/canvas_sync/processors/rubric_associations_processor.rb +0 -0
  191. data/lib/canvas_sync/processors/rubrics_processor.rb +0 -0
  192. data/lib/canvas_sync/processors/submissions_processor.rb +0 -0
  193. data/lib/canvas_sync/record.rb +0 -0
  194. data/lib/canvas_sync/sidekiq_job.rb +0 -0
  195. data/lib/canvas_sync/version.rb +1 -1
  196. data/lib/canvas_sync.rb +0 -0
  197. data/spec/canvas_sync/canvas_sync_spec.rb +59 -41
  198. data/spec/canvas_sync/jobs/canvas_process_waiter_spec.rb +0 -0
  199. data/spec/canvas_sync/jobs/job_spec.rb +0 -0
  200. data/spec/canvas_sync/jobs/report_checker_spec.rb +0 -0
  201. data/spec/canvas_sync/jobs/report_processor_job_spec.rb +0 -0
  202. data/spec/canvas_sync/jobs/report_starter_spec.rb +0 -0
  203. data/spec/canvas_sync/jobs/sync_admins_job_spec.rb +0 -0
  204. data/spec/canvas_sync/jobs/sync_assignment_groups_job_spec.rb +0 -0
  205. data/spec/canvas_sync/jobs/sync_assignments_job_spec.rb +0 -0
  206. data/spec/canvas_sync/jobs/sync_content_migrations_job_spec.rb +0 -0
  207. data/spec/canvas_sync/jobs/sync_context_module_items_job_spec.rb +0 -0
  208. data/spec/canvas_sync/jobs/sync_context_modules_job_spec.rb +0 -0
  209. data/spec/canvas_sync/jobs/sync_provisioning_report_job_spec.rb +0 -0
  210. data/spec/canvas_sync/jobs/sync_roles_job_spec.rb +0 -0
  211. data/spec/canvas_sync/jobs/sync_simple_table_job_spec.rb +0 -0
  212. data/spec/canvas_sync/jobs/sync_submissions_job_spec.rb +0 -0
  213. data/spec/canvas_sync/jobs/sync_terms_job_spec.rb +0 -0
  214. data/spec/canvas_sync/live_events/live_event_sync_spec.rb +0 -0
  215. data/spec/canvas_sync/live_events/live_events_controller_spec.rb +0 -0
  216. data/spec/canvas_sync/live_events/process_event_job_spec.rb +0 -0
  217. data/spec/canvas_sync/misc_helper_spec.rb +0 -0
  218. data/spec/canvas_sync/models/accounts_spec.rb +0 -0
  219. data/spec/canvas_sync/models/admins_spec.rb +0 -0
  220. data/spec/canvas_sync/models/assignment_group_spec.rb +0 -0
  221. data/spec/canvas_sync/models/assignment_spec.rb +0 -0
  222. data/spec/canvas_sync/models/context_module_item_spec.rb +0 -0
  223. data/spec/canvas_sync/models/context_module_spec.rb +0 -0
  224. data/spec/canvas_sync/models/course_spec.rb +0 -0
  225. data/spec/canvas_sync/models/enrollment_spec.rb +0 -0
  226. data/spec/canvas_sync/models/group_membership_spec.rb +0 -0
  227. data/spec/canvas_sync/models/group_spec.rb +0 -0
  228. data/spec/canvas_sync/models/roles_spec.rb +0 -0
  229. data/spec/canvas_sync/models/section_spec.rb +0 -0
  230. data/spec/canvas_sync/models/submission_spec.rb +0 -0
  231. data/spec/canvas_sync/models/term_spec.rb +0 -0
  232. data/spec/canvas_sync/models/user_spec.rb +0 -0
  233. data/spec/canvas_sync/processors/assignment_groups_processor_spec.rb +0 -0
  234. data/spec/canvas_sync/processors/assignments_processor_spec.rb +0 -0
  235. data/spec/canvas_sync/processors/content_migrations_processor_spec.rb +0 -0
  236. data/spec/canvas_sync/processors/context_module_items_processor_spec.rb +0 -0
  237. data/spec/canvas_sync/processors/context_modules_processor_spec.rb +0 -0
  238. data/spec/canvas_sync/processors/course_completion_report_processor_spec.rb +0 -0
  239. data/spec/canvas_sync/processors/normal_processor_spec.rb +0 -0
  240. data/spec/canvas_sync/processors/provisioning_report_processor_spec.rb +0 -0
  241. data/spec/canvas_sync/processors/rubric_assessments_spec.rb +0 -0
  242. data/spec/canvas_sync/processors/rubric_associations_spec.rb +0 -0
  243. data/spec/canvas_sync/processors/rubrics_processor_spec.rb +0 -0
  244. data/spec/canvas_sync/processors/submissions_processor_spec.rb +0 -0
  245. data/spec/canvas_sync/services/module_event_spec.rb +0 -0
  246. data/spec/canvas_sync/services/module_item_event_spec.rb +0 -0
  247. data/spec/dummy/README.rdoc +0 -0
  248. data/spec/dummy/Rakefile +0 -0
  249. data/spec/dummy/app/models/account.rb +0 -0
  250. data/spec/dummy/app/models/admin.rb +0 -0
  251. data/spec/dummy/app/models/application_record.rb +0 -0
  252. data/spec/dummy/app/models/assignment.rb +0 -0
  253. data/spec/dummy/app/models/assignment_group.rb +0 -0
  254. data/spec/dummy/app/models/content_migration.rb +0 -0
  255. data/spec/dummy/app/models/context_module.rb +0 -0
  256. data/spec/dummy/app/models/context_module_item.rb +0 -0
  257. data/spec/dummy/app/models/course.rb +0 -0
  258. data/spec/dummy/app/models/course_nickname.rb +0 -0
  259. data/spec/dummy/app/models/course_progress.rb +8 -0
  260. data/spec/dummy/app/models/enrollment.rb +0 -0
  261. data/spec/dummy/app/models/grading_period.rb +0 -0
  262. data/spec/dummy/app/models/grading_period_group.rb +0 -0
  263. data/spec/dummy/app/models/group.rb +0 -0
  264. data/spec/dummy/app/models/group_membership.rb +0 -0
  265. data/spec/dummy/app/models/learning_outcome.rb +0 -0
  266. data/spec/dummy/app/models/learning_outcome_result.rb +0 -0
  267. data/spec/dummy/app/models/pseudonym.rb +0 -0
  268. data/spec/dummy/app/models/role.rb +0 -0
  269. data/spec/dummy/app/models/rubric.rb +0 -0
  270. data/spec/dummy/app/models/rubric_assessment.rb +0 -0
  271. data/spec/dummy/app/models/rubric_association.rb +0 -0
  272. data/spec/dummy/app/models/section.rb +0 -0
  273. data/spec/dummy/app/models/submission.rb +0 -0
  274. data/spec/dummy/app/models/term.rb +0 -0
  275. data/spec/dummy/app/models/user.rb +0 -0
  276. data/spec/dummy/app/models/user_observer.rb +0 -0
  277. data/spec/dummy/app/services/live_events/assignment_created_event.rb +0 -0
  278. data/spec/dummy/app/services/live_events/assignment_event.rb +0 -0
  279. data/spec/dummy/app/services/live_events/assignment_updated_event.rb +0 -0
  280. data/spec/dummy/app/services/live_events/base_event.rb +0 -0
  281. data/spec/dummy/app/services/live_events/course_created_event.rb +0 -0
  282. data/spec/dummy/app/services/live_events/course_event.rb +0 -0
  283. data/spec/dummy/app/services/live_events/course_section_created_event.rb +0 -0
  284. data/spec/dummy/app/services/live_events/course_section_event.rb +0 -0
  285. data/spec/dummy/app/services/live_events/course_section_updated_event.rb +0 -0
  286. data/spec/dummy/app/services/live_events/course_updated_event.rb +0 -0
  287. data/spec/dummy/app/services/live_events/enrollment_created_event.rb +0 -0
  288. data/spec/dummy/app/services/live_events/enrollment_event.rb +0 -0
  289. data/spec/dummy/app/services/live_events/enrollment_updated_event.rb +0 -0
  290. data/spec/dummy/app/services/live_events/grade_changed_event.rb +0 -0
  291. data/spec/dummy/app/services/live_events/grade_event.rb +0 -0
  292. data/spec/dummy/app/services/live_events/module_created_event.rb +0 -0
  293. data/spec/dummy/app/services/live_events/module_event.rb +0 -0
  294. data/spec/dummy/app/services/live_events/module_item_created_event.rb +0 -0
  295. data/spec/dummy/app/services/live_events/module_item_event.rb +0 -0
  296. data/spec/dummy/app/services/live_events/module_item_updated_event.rb +0 -0
  297. data/spec/dummy/app/services/live_events/module_updated_event.rb +0 -0
  298. data/spec/dummy/app/services/live_events/submission_created_event.rb +0 -0
  299. data/spec/dummy/app/services/live_events/submission_event.rb +0 -0
  300. data/spec/dummy/app/services/live_events/submission_updated_event.rb +0 -0
  301. data/spec/dummy/app/services/live_events/syllabus_event.rb +0 -0
  302. data/spec/dummy/app/services/live_events/syllabus_updated_event.rb +0 -0
  303. data/spec/dummy/app/services/live_events/user_created_event.rb +0 -0
  304. data/spec/dummy/app/services/live_events/user_event.rb +0 -0
  305. data/spec/dummy/app/services/live_events/user_updated_event.rb +0 -0
  306. data/spec/dummy/config/application.rb +0 -0
  307. data/spec/dummy/config/boot.rb +0 -0
  308. data/spec/dummy/config/database.yml +0 -0
  309. data/spec/dummy/config/environment.rb +0 -0
  310. data/spec/dummy/config/environments/development.rb +0 -0
  311. data/spec/dummy/config/environments/test.rb +0 -0
  312. data/spec/dummy/config/initializers/assets.rb +0 -0
  313. data/spec/dummy/config/initializers/session_store.rb +0 -0
  314. data/spec/dummy/config/initializers/wrap_parameters.rb +0 -0
  315. data/spec/dummy/config/routes.rb +0 -0
  316. data/spec/dummy/config/secrets.yml +0 -0
  317. data/spec/dummy/config.ru +0 -0
  318. data/spec/dummy/db/migrate/20190702203621_create_courses.rb +0 -0
  319. data/spec/dummy/db/migrate/20190702203622_create_accounts.rb +0 -0
  320. data/spec/dummy/db/migrate/20190702203623_create_terms.rb +0 -0
  321. data/spec/dummy/db/migrate/20190702203624_create_enrollments.rb +0 -0
  322. data/spec/dummy/db/migrate/20190702203625_create_sections.rb +0 -0
  323. data/spec/dummy/db/migrate/20190702203626_create_assignments.rb +0 -0
  324. data/spec/dummy/db/migrate/20190702203627_create_submissions.rb +0 -0
  325. data/spec/dummy/db/migrate/20190702203630_create_assignment_groups.rb +0 -0
  326. data/spec/dummy/db/migrate/20190702203631_create_context_modules.rb +0 -0
  327. data/spec/dummy/db/migrate/20190702203632_create_context_module_items.rb +0 -0
  328. data/spec/dummy/db/migrate/20190927204545_create_roles.rb +0 -0
  329. data/spec/dummy/db/migrate/20190927204546_create_admins.rb +0 -0
  330. data/spec/dummy/db/migrate/20200415171620_create_groups.rb +0 -0
  331. data/spec/dummy/db/migrate/20200416214248_create_group_memberships.rb +0 -0
  332. data/spec/dummy/db/migrate/20201016181346_create_pseudonyms.rb +0 -0
  333. data/spec/dummy/db/migrate/20210907233329_create_user_observers.rb +0 -0
  334. data/spec/dummy/db/migrate/20210907233330_create_grading_periods.rb +0 -0
  335. data/spec/dummy/db/migrate/20211001184920_create_grading_period_groups.rb +0 -0
  336. data/spec/dummy/db/migrate/20220308072643_create_content_migrations.rb +0 -0
  337. data/spec/dummy/db/migrate/20220712210559_create_learning_outcomes.rb +0 -0
  338. data/spec/dummy/db/migrate/20220926221926_create_users.rb +0 -0
  339. data/spec/dummy/db/migrate/20240408223326_create_course_nicknames.rb +0 -0
  340. data/spec/dummy/db/migrate/20240509105100_create_rubrics.rb +0 -0
  341. data/spec/dummy/db/migrate/20240510094100_create_rubric_associations.rb +0 -0
  342. data/spec/dummy/db/migrate/20240510101100_create_rubric_assessments.rb +0 -0
  343. data/spec/dummy/db/migrate/20240523101010_create_learning_outcome_results.rb +0 -0
  344. data/spec/dummy/db/migrate/20240828161300_create_course_progresses.rb +0 -0
  345. data/spec/dummy/db/schema.rb +0 -0
  346. data/spec/factories/account_factory.rb +0 -0
  347. data/spec/factories/admin_factory.rb +0 -0
  348. data/spec/factories/assignment_factory.rb +0 -0
  349. data/spec/factories/assignment_group_factory.rb +0 -0
  350. data/spec/factories/context_module_factory.rb +0 -0
  351. data/spec/factories/context_module_item_factory.rb +0 -0
  352. data/spec/factories/course_factory.rb +0 -0
  353. data/spec/factories/enrollment_factory.rb +0 -0
  354. data/spec/factories/group_factory.rb +0 -0
  355. data/spec/factories/group_membership_factory.rb +0 -0
  356. data/spec/factories/role_factory.rb +0 -0
  357. data/spec/factories/section_factory.rb +0 -0
  358. data/spec/factories/submission_factory.rb +0 -0
  359. data/spec/factories/term_factory.rb +0 -0
  360. data/spec/factories/user_factory.rb +0 -0
  361. data/spec/job_batching/batch_spec.rb +0 -0
  362. data/spec/job_batching/callback_spec.rb +0 -0
  363. data/spec/job_batching/compat/active_job_spec.rb +0 -0
  364. data/spec/job_batching/compat/sidekiq_spec.rb +0 -0
  365. data/spec/job_batching/context_hash_spec.rb +0 -0
  366. data/spec/job_batching/flow_spec.rb +0 -0
  367. data/spec/job_batching/integration/fail_then_succeed.rb +0 -0
  368. data/spec/job_batching/integration/integration.rb +0 -0
  369. data/spec/job_batching/integration/nested.rb +0 -0
  370. data/spec/job_batching/integration/simple.rb +0 -0
  371. data/spec/job_batching/integration/workflow.rb +0 -0
  372. data/spec/job_batching/integration_helper.rb +0 -0
  373. data/spec/job_batching/pool_spec.rb +0 -0
  374. data/spec/job_batching/status_spec.rb +0 -0
  375. data/spec/job_batching/support/base_job.rb +0 -0
  376. data/spec/job_batching/support/sample_callback.rb +0 -0
  377. data/spec/job_uniqueness/compat/active_job_spec.rb +0 -0
  378. data/spec/job_uniqueness/compat/sidekiq_spec.rb +0 -0
  379. data/spec/job_uniqueness/lock_context_spec.rb +11 -0
  380. data/spec/job_uniqueness/on_conflict/log_spec.rb +0 -0
  381. data/spec/job_uniqueness/on_conflict/raise_spec.rb +0 -0
  382. data/spec/job_uniqueness/on_conflict/reschedule_spec.rb +0 -0
  383. data/spec/job_uniqueness/on_conflict_spec.rb +0 -0
  384. data/spec/job_uniqueness/spec_helper.rb +0 -0
  385. data/spec/job_uniqueness/strategy/base_spec.rb +0 -0
  386. data/spec/job_uniqueness/strategy/until_and_while_executing_spec.rb +0 -0
  387. data/spec/job_uniqueness/strategy/until_executed_spec.rb +0 -0
  388. data/spec/job_uniqueness/strategy/until_executing_spec.rb +0 -0
  389. data/spec/job_uniqueness/strategy/until_expired_spec.rb +0 -0
  390. data/spec/job_uniqueness/strategy/while_executing_spec.rb +0 -0
  391. data/spec/job_uniqueness/support/lock_strategy.rb +0 -0
  392. data/spec/job_uniqueness/support/on_conflict.rb +0 -0
  393. data/spec/job_uniqueness/support/test_worker.rb +0 -0
  394. data/spec/job_uniqueness/unique_job_common_spec.rb +0 -0
  395. data/spec/spec_helper.rb +0 -0
  396. data/spec/support/fake_canvas.rb +0 -0
  397. data/spec/support/fixtures/canvas_responses/admins.json +0 -0
  398. data/spec/support/fixtures/canvas_responses/module.json +0 -0
  399. data/spec/support/fixtures/canvas_responses/module_item.json +0 -0
  400. data/spec/support/fixtures/canvas_responses/roles.json +0 -0
  401. data/spec/support/fixtures/canvas_responses/terms.json +0 -0
  402. data/spec/support/fixtures/reports/assignment_groups.csv +0 -0
  403. data/spec/support/fixtures/reports/assignments.csv +0 -0
  404. data/spec/support/fixtures/reports/content_migrations.csv +0 -0
  405. data/spec/support/fixtures/reports/context_module_items.csv +0 -0
  406. data/spec/support/fixtures/reports/context_modules.csv +0 -0
  407. data/spec/support/fixtures/reports/course_nicknames.csv +0 -0
  408. data/spec/support/fixtures/reports/course_progresses.csv +0 -0
  409. data/spec/support/fixtures/reports/course_progresses_conflict.csv +0 -0
  410. data/spec/support/fixtures/reports/courses.csv +0 -0
  411. data/spec/support/fixtures/reports/enrollments.csv +0 -0
  412. data/spec/support/fixtures/reports/grading_period_groups.csv +0 -0
  413. data/spec/support/fixtures/reports/grading_periods.csv +0 -0
  414. data/spec/support/fixtures/reports/group_memberships.csv +0 -0
  415. data/spec/support/fixtures/reports/groups.csv +0 -0
  416. data/spec/support/fixtures/reports/learning_outcome_results.csv +0 -0
  417. data/spec/support/fixtures/reports/learning_outcomes.csv +0 -0
  418. data/spec/support/fixtures/reports/provisioning_csv +0 -0
  419. data/spec/support/fixtures/reports/provisioning_csv_unzipped/courses.csv +0 -0
  420. data/spec/support/fixtures/reports/provisioning_csv_unzipped/users.csv +0 -0
  421. data/spec/support/fixtures/reports/rubric_assessments.csv +0 -0
  422. data/spec/support/fixtures/reports/rubric_associations.csv +0 -0
  423. data/spec/support/fixtures/reports/rubrics.csv +0 -0
  424. data/spec/support/fixtures/reports/sections.csv +0 -0
  425. data/spec/support/fixtures/reports/submissions.csv +0 -0
  426. data/spec/support/fixtures/reports/user_observers.csv +0 -0
  427. data/spec/support/fixtures/reports/users.csv +0 -0
  428. data/spec/support/fixtures/reports/xlist.csv +0 -0
  429. metadata +193 -192
File without changes
File without changes
File without changes
File without changes
data/spec/dummy/Rakefile CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -9,6 +9,7 @@
9
9
  # CourseProgress is not a Canvas model. It is a table built from the Custom Report
10
10
  class CourseProgress < ApplicationRecord
11
11
  include CanvasSync::Record
12
+ include CanvasSync::Concerns::ApiSyncable
12
13
 
13
14
  canvas_sync_features :defaults
14
15
 
@@ -17,4 +18,11 @@ class CourseProgress < ApplicationRecord
17
18
 
18
19
  validates_presence_of :canvas_user_id, :canvas_course_id
19
20
  validates_uniqueness_of :canvas_user_id, scope: :canvas_course_id
21
+
22
+ api_syncable({
23
+ requirement_count: :requirement_count,
24
+ requirement_completed_count: :requirement_completed_count,
25
+ # provisioning report has completion_date instead of completed_at in the API
26
+ completion_date: :completed_at
27
+ }, -> (api) { api.course_progress(canvas_course_id, canvas_user_id) })
20
28
  end
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
data/spec/dummy/config.ru CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -24,6 +24,17 @@ RSpec.describe CanvasSync::JobUniqueness::LockContext do
24
24
  TestWorker.unique_job_options[:scope] = scope
25
25
  end
26
26
 
27
+ it 'returns matching keys for equal hashes' do
28
+ context_data[:args] = [{ foo: 'bar', bar: 'foo' }]
29
+ key1 = lock_context.base_key
30
+ lock_context.instance_variable_set(:@base_key, nil)
31
+
32
+ context_data[:args] = [{ bar: 'foo', foo: 'bar' }]
33
+ key2 = lock_context.base_key
34
+
35
+ expect(key1).to eq key2
36
+ end
37
+
27
38
  context 'when scope is a Proc' do
28
39
  let(:scope) { ->(queue:) { "blob" } }
29
40
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
data/spec/spec_helper.rb CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes