diff --git a/lib/Class.js b/lib/Class.js index c18719e..0a94c13 100644 --- a/lib/Class.js +++ b/lib/Class.js @@ -231,14 +231,27 @@ class Class { } } - removeUser(u) { - switch (u.type) { - case 'account': - break; - case 'student': - break; - default: - throw new Error('Invalid user type'); + async removeUser(u) { + const validTypes = [ 'account', 'student' ]; + + if (!validTypes.includes(u.type)) + throw new Error('Invalid user type'); + + const sql = ` + delete from ${u.type}ClassLink + where + ${u.type}id = ? + and classId = ?; + `; + + try { + await this.#conn.runQuery(sql, [ + u.id, + this.id + ]); + } catch (e) { + console.error(e); + throw new Error('Could not remove user from class'); } }