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:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user