diff --git a/lib/Class.js b/lib/Class.js index 69f6124..90a8e15 100644 --- a/lib/Class.js +++ b/lib/Class.js @@ -1,7 +1,11 @@ /* eslint-disable no-empty-function */ 'use strict'; +const crypto = require('crypto'); + const DatabaseConnectionPool = require('./DatabaseConnectionPool'); + +const Subject = require('./Subject'); const Test = require('./Test'); class Class { @@ -216,8 +220,43 @@ class Class { } - static createClass() { + static async createClass(accountId, name, subjectId) { + const s = await new Subject(subjectId); + const a = await new (require('./Account'))(accountId); + const id = crypto.randomUUID(); + + const conn = await new DatabaseConnectionPool(); + + let sql = ` + insert into class( + classId, + name, + subjectId) + values + (?, ?, ?); + `; + + await conn.runQuery(sql, [ + id, + name, + s.id + ]); + + sql = ` + insert into accountClassLink( + accountId, + classId) + values + (?, ?); + `; + + await conn.runQuery(sql, [ + a.id, + id + ]); + + return new Class(id); } }