Files
speckle-server/packages/server/modules/stats/graph/resolvers/stats.ts
T
2024-09-10 15:13:23 +03:00

64 lines
1.6 KiB
TypeScript

import { Resolvers } from '@/modules/core/graph/generated/graphql'
import { validateScopes } from '@/modules/shared'
import {
getStreamHistoryFactory,
getCommitHistoryFactory,
getObjectHistoryFactory,
getUserHistoryFactory,
getTotalStreamCountFactory,
getTotalCommitCountFactory,
getTotalObjectCountFactory,
getTotalUserCountFactory
} from '@/modules/stats/repositories/index'
import { Roles, Scopes } from '@speckle/shared'
import { throwForNotHavingServerRole } from '@/modules/shared/authz'
import { db } from '@/db/knex'
export = {
Query: {
/**
* @deprecated('Use admin.serverStatistics')
*/
async serverStats(_parent, _args, context) {
await throwForNotHavingServerRole(context, Roles.Server.Admin)
await validateScopes(context.scopes, Scopes.Server.Stats)
return {}
}
},
ServerStats: {
async totalStreamCount() {
return await getTotalStreamCountFactory({ db })()
},
async totalCommitCount() {
return await getTotalCommitCountFactory({ db })()
},
async totalObjectCount() {
return await getTotalObjectCountFactory({ db })()
},
async totalUserCount() {
return await getTotalUserCountFactory({ db })()
},
async streamHistory() {
return await getStreamHistoryFactory({ db })()
},
async commitHistory() {
return await getCommitHistoryFactory({ db })()
},
async objectHistory() {
return await getObjectHistoryFactory({ db })()
},
async userHistory() {
return await getUserHistoryFactory({ db })()
}
}
} as Resolvers