1
0
mirror of https://github.com/matt-fidd/stratos.git synced 2026-01-01 19:59:27 +00:00

Refactored database connection system to use a shared pool per-request

This commit is contained in:
2022-03-23 23:29:55 +00:00
parent bd662661ee
commit 4c2a078530
14 changed files with 162 additions and 144 deletions

View File

@@ -1,15 +1,13 @@
/* eslint-disable no-empty-function, getter-return */
'use strict';
const DatabaseConnectionPool = require('./DatabaseConnectionPool');
const Class = require('./Class');
const TestTemplate = require('./TestTemplate');
const User = require('./User');
class Account extends User {
constructor(id) {
super('account', id);
constructor(conn, id) {
super(conn, 'account', id);
}
async getTestTemplates() {
@@ -22,11 +20,10 @@ class Account extends User {
accountId = ?;
`;
const conn = await new DatabaseConnectionPool();
const records = await conn.runQuery(sql, [ this.id ]);
const records = await this._conn.runQuery(sql, [ this.id ]);
const promises = records.map(record => {
return new TestTemplate(record.id);
return new TestTemplate(this._conn, record.id);
});
const objects = await Promise.all(promises);
@@ -36,17 +33,19 @@ class Account extends User {
createTestTemplate(name, maxMark) {
return TestTemplate.createTestTemplate(
this._conn,
this.id,
name,
maxMark);
}
createClass(name, subjectId) {
return Class.createClass(this.id, name, subjectId);
return Class.createClass(this._conn, this.id, name, subjectId);
}
static async createAccount(fname, oname, lname, email, password) {
static async createAccount(conn, fname, oname, lname, email, password) {
return await super.createUser(
conn,
'account',
fname,
oname,