From d213df36dcc982e4ba772e0894d5367552f18554 Mon Sep 17 00:00:00 2001 From: sighphyre Date: Mon, 24 Oct 2022 11:35:55 +0200 Subject: [PATCH] add expectTransaction to abstract transactor class --- src/lib/db/group-store.ts | 4 ++-- src/lib/db/transactional.ts | 30 +++++++++++++++++------------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/lib/db/group-store.ts b/src/lib/db/group-store.ts index 70bd7f1a59..d4f9d289f3 100644 --- a/src/lib/db/group-store.ts +++ b/src/lib/db/group-store.ts @@ -9,7 +9,7 @@ import Group, { IGroupUser, IGroupUserModel, } from '../types/group'; -import { expectTransaction, Transactor } from './transactional'; +import { Transactor } from './transactional'; const T = { GROUPS: 'groups', @@ -210,7 +210,7 @@ export default class GroupStore deletableUsers: IGroupUser[], userName: string, ): Promise { - expectTransaction(this.db); + this.expectTransaction(this.db); await this.addUsersToGroup(groupId, newUsers, userName); await this.deleteUsersFromGroup(deletableUsers); } diff --git a/src/lib/db/transactional.ts b/src/lib/db/transactional.ts index 7d8e3fab93..561d3783c4 100644 --- a/src/lib/db/transactional.ts +++ b/src/lib/db/transactional.ts @@ -1,6 +1,20 @@ import { Knex } from 'knex'; import { Transactional } from 'lib/types/stores/transactional'; +export const expectTransaction = (db: Knex | Knex.Transaction): void => { + if (db.isTransaction) { + return; + } + const isRunningInTest = process.env.NODE_ENV === 'test'; + const errorMessage = + 'A store method that was expected to be run in a transaction was run outside of a transaction'; + if (isRunningInTest) { + throw new Error(errorMessage); + } else { + console.error(errorMessage); + } +}; + export abstract class Transactor implements Transactional { args: any[]; @@ -19,18 +33,8 @@ export abstract class Transactor implements Transactional { clone.db = transaction; return clone as T; } -} -export const expectTransaction = (db: Knex | Knex.Transaction): void => { - if (db.isTransaction) { - return; + expectTransaction(db: Knex | Knex.Transaction): void { + expectTransaction(db); } - const isRunningInTest = process.env.NODE_ENV === 'test'; - const errorMessage = - 'A store method that was expected to be run in a transaction was run outside of a transaction'; - if (isRunningInTest) { - throw new Error(errorMessage); - } else { - console.error(errorMessage); - } -}; +}