From 10402fa945949f5cefe23d785acbee2c983eef80 Mon Sep 17 00:00:00 2001
From: Scott Erickson <sderickson@gmail.com>
Date: Fri, 19 Feb 2016 13:13:45 -0800
Subject: [PATCH] Make fix-arena-sessions script run across all classrooms

---
 .../2016-02-11-fix-arena-sessions.js          | 54 +++++++++----------
 1 file changed, 27 insertions(+), 27 deletions(-)

diff --git a/scripts/mongodb/migrations/2016-02-11-fix-arena-sessions.js b/scripts/mongodb/migrations/2016-02-11-fix-arena-sessions.js
index 4c4617e3f..3f38448c7 100644
--- a/scripts/mongodb/migrations/2016-02-11-fix-arena-sessions.js
+++ b/scripts/mongodb/migrations/2016-02-11-fix-arena-sessions.js
@@ -2,33 +2,33 @@
 // Usage:
 // mongo <address>:<port>/<database> <script file> -u <username> -p <password>
 
-// Set classroomID and levelSlug first before running!
+print('Loading levels...');
+var levels = [db.levels.findOne({slug: 'wakka-maul'}), db.levels.findOne({slug: 'cross-bones'})];
+print('Loaded');
 
-var classroomID = ObjectId('568ac66d648b9e5100de0cca');
-var levelSlug = 'wakka-maul';
+db.classrooms.find({'aceConfig.language': 'javascript'}).forEach(function(classroom) {
+    for (var l in levels) {
+        var level = levels[l];
+        print('----------------------------');
+        print('Classroom:', classroom.name);
+        print('Members:', classroom.members.length);
+        print('Level:', level.name);
 
-var classroom = db.classrooms.findOne({_id: classroomID});
-var level = db.levels.findOne({slug: levelSlug});
-
-if(!classroom) { throw new Error('Classroom not found (should be an id)'); }
-if(!level) { throw new Error('Level not found (should be a slug)'); }
-
-print('Classroom:', classroom.name);
-print('Members:', classroom.members.length);
-print('Level:', level.name);
-
-for (var i in classroom.members) {
-  var member = classroom.members[i];
-  var sessions = db.level.sessions.find({'level.original': level.original+'', 'creator': member+''}).toArray();
-  print('  user:', member);
-  for (var j in sessions) {
-    var session = sessions[j];
-    print('    session:', session._id, 'has language', session.codeLanguage);
-    if (session.codeLanguage === classroom.aceConfig.language) {
-      print('    all is well');
-      continue;
+        for (var i in classroom.members) {
+            var member = classroom.members[i];
+            var sessions = db.level.sessions.find({'level.original': level.original+'', 'creator': member+''}).toArray();
+            print('  user:', member);
+            for (var j in sessions) {
+                var session = sessions[j];
+                print('    session:', session._id, 'has language', session.codeLanguage);
+                if (session.codeLanguage === classroom.aceConfig.language) {
+                    print('    all is well');
+                    continue;
+                }
+                print('      updating language...');
+                print('      ', db.level.sessions.update({_id: session._id}, {$set: {codeLanguage: classroom.aceConfig.language}}));
+            }
+        }
     }
-    print('      updating language...');
-    print('      ', db.level.sessions.update({_id: session._id}, {$set: {codeLanguage: classroom.aceConfig.language}}));
-  }
-}
+});
+