From db98c1d5baf0e179be17502c9de118f20c1737b5 Mon Sep 17 00:00:00 2001 From: matt Date: Tue, 8 Mar 2022 11:43:05 +0000 Subject: [PATCH] Add Class.createClass --- lib/Class.js | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) 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); } }