Skip to content

Instantly share code, notes, and snippets.

@briancarycom
Created July 8, 2022 18:13
Show Gist options
  • Save briancarycom/7022e316c0d25c2824bb93c610c40d47 to your computer and use it in GitHub Desktop.
Save briancarycom/7022e316c0d25c2824bb93c610c40d47 to your computer and use it in GitHub Desktop.
last course push needs to be removed
require 'litmos/loader'
require 'slack_notifier'
la = LitmosAccount.find ""
loader = Litmos::Loader.new(la)
lai = LitmosAccountInfo.new
account_key = lai.get_account_key(la.id)
bad_push = la.course_pushes.order(created_at: :desc).first
cas = bad_push.results
cas['team_courses'].each do |ca|
course_id = ca["next_course_id"]
curriculum_team_id = ca["curriculum_team_id"]
ct = Team.find(curriculum_team_id)
puts "course_id: #{course_id}"
puts "curriculum_team_id: #{curriculum_team_id}"
puts "location team: #{ct.parent.name} - #{ct.parent.id}"
# get course assignments created recently
recent_cas = ct.course_assignments.where(created_at: 2.days.ago .. DateTime.now)
puts "number of recent course assignments: #{recent_cas.count}"
most_recent_ca = recent_cas.first
puts "BAD COURSE: #{most_recent_ca.course.name} - #{most_recent_ca.course.id}"
puts "BAD COURSE LITMOS ID: #{most_recent_ca.course.litmos_id}"
# for each language sub team
# unassign from litmos
ct.sub_teams.each do |lt|
puts "language team litmos id: #{lt.litmos_id}"
course_assignments = Litmos::Teams.get_course_assignments(loader, lt)
puts "course assignments from litmos: #{course_assignments}"
sleep(2.0)
Litmos::Teams.unassign_courses(loader, lt, [most_recent_ca.course])
sleep(2.0)
# send notification
push_notification = ":black_circle: Unassigned #{most_recent_ca.course.name} from #{ct.parent.name} - #{ct.name} - #{lt.name}"
SlackNotifier.send_channel_notification(push_notification, lai.get_accounts[account_key.to_sym][:notifications_webhook])
most_recent_ca.destroy
end
puts "------------------"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment