diff --git a/packages/server/modules/core/graph/resolvers/admin.ts b/packages/server/modules/core/graph/resolvers/admin.ts index e3e9cc5c4..71b69c8be 100644 --- a/packages/server/modules/core/graph/resolvers/admin.ts +++ b/packages/server/modules/core/graph/resolvers/admin.ts @@ -1,3 +1,4 @@ +import { db } from '@/db/knex' import { Resolvers } from '@/modules/core/graph/generated/graphql' import { mapServerRoleToValue } from '@/modules/core/helpers/graphTypes' import { toProjectIdWhitelist } from '@/modules/core/helpers/token' @@ -6,7 +7,10 @@ import { adminProjectList, adminUserList } from '@/modules/core/services/admin' -import { getTotalStreamCount, getTotalUserCount } from '@/modules/stats/services' +import { + getTotalStreamCountFactory, + getTotalUserCount +} from '@/modules/stats/repositories' export = { Query: { @@ -38,7 +42,7 @@ export = { }, ServerStatistics: { async totalProjectCount() { - return await getTotalStreamCount() + return await getTotalStreamCountFactory({ db })() }, async totalUserCount() { diff --git a/packages/server/modules/stats/graph/resolvers/stats.ts b/packages/server/modules/stats/graph/resolvers/stats.ts index d1806be2e..dd9ec634f 100644 --- a/packages/server/modules/stats/graph/resolvers/stats.ts +++ b/packages/server/modules/stats/graph/resolvers/stats.ts @@ -6,13 +6,14 @@ import { getCommitHistory, getObjectHistory, getUserHistory, - getTotalStreamCount, + getTotalStreamCountFactory, getTotalCommitCount, getTotalObjectCount, getTotalUserCount -} from '@/modules/stats/services/index' +} from '@/modules/stats/repositories/index' import { Roles, Scopes } from '@speckle/shared' import { throwForNotHavingServerRole } from '@/modules/shared/authz' +import { db } from '@/db/knex' export = { Query: { @@ -28,7 +29,7 @@ export = { ServerStats: { async totalStreamCount() { - return await getTotalStreamCount() + return await getTotalStreamCountFactory({ db })() }, async totalCommitCount() { diff --git a/packages/server/modules/stats/services/index.ts b/packages/server/modules/stats/repositories/index.ts similarity index 94% rename from packages/server/modules/stats/services/index.ts rename to packages/server/modules/stats/repositories/index.ts index 39594b4b1..7e9699a3c 100644 --- a/packages/server/modules/stats/services/index.ts +++ b/packages/server/modules/stats/repositories/index.ts @@ -1,8 +1,9 @@ import knex from '@/db/knex' +import { Knex } from 'knex' -export async function getTotalStreamCount() { +export const getTotalStreamCountFactory = (deps: { db: Knex }) => async () => { const query = 'SELECT COUNT(*) FROM streams' - const result = await knex.raw(query) + const result = await deps.db.raw(query) return parseInt(result.rows[0].count) } diff --git a/packages/server/modules/stats/tests/stats.spec.ts b/packages/server/modules/stats/tests/stats.spec.ts index 7f2ee20d4..39d7d722c 100644 --- a/packages/server/modules/stats/tests/stats.spec.ts +++ b/packages/server/modules/stats/tests/stats.spec.ts @@ -14,14 +14,15 @@ import { getCommitHistory, getObjectHistory, getUserHistory, - getTotalStreamCount, + getTotalStreamCountFactory, getTotalCommitCount, getTotalObjectCount, getTotalUserCount -} from '@/modules/stats/services/index' +} from '@/modules/stats/repositories/index' import { Scopes } from '@speckle/shared' import { Server } from 'node:http' import { Express } from 'express' +import { db } from '@/db/knex' const params = { numUsers: 25, numStreams: 30, numObjects: 100, numCommits: 100 } @@ -38,7 +39,7 @@ describe('Server stats services @stats-services', function () { }) it('should return the total number of streams on this server', async () => { - const res = await getTotalStreamCount() + const res = await getTotalStreamCountFactory({ db })() expect(res).to.equal(params.numStreams) })