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

63 lines
1.4 KiB
TypeScript

import { Resolvers } from '@/modules/core/graph/generated/graphql'
import { validateScopes } from '@/modules/shared'
import {
getStreamHistory,
getCommitHistory,
getObjectHistory,
getUserHistory,
getTotalStreamCount,
getTotalCommitCount,
getTotalObjectCount,
getTotalUserCount
} from '@/modules/stats/services/index'
import { Roles, Scopes } from '@speckle/shared'
import { throwForNotHavingServerRole } from '@/modules/shared/authz'
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 getTotalStreamCount()
},
async totalCommitCount() {
return await getTotalCommitCount()
},
async totalObjectCount() {
return await getTotalObjectCount()
},
async totalUserCount() {
return await getTotalUserCount()
},
async streamHistory() {
return await getStreamHistory()
},
async commitHistory() {
return await getCommitHistory()
},
async objectHistory() {
return await getObjectHistory()
},
async userHistory() {
return await getUserHistory()
}
}
} as Resolvers