refactor(server/shared): reduce (but not fix) circular dependencies

This commit is contained in:
Gergő Jedlicska
2023-08-01 12:11:47 +02:00
parent 58d85144bf
commit cb3dbb7a9d
11 changed files with 44 additions and 19 deletions
@@ -1,7 +1,10 @@
import { saveActivity } from '@/modules/activitystream/services'
import { ActionTypes, ResourceTypes } from '@/modules/activitystream/helpers/types'
import { BranchRecord } from '@/modules/core/helpers/types'
import { pubsub, BranchPubsubEvents } from '@/modules/shared'
import {
pubsub,
BranchSubscriptions as BranchPubsubEvents
} from '@/modules/shared/utils/subscriptions'
import {
BranchDeleteInput,
BranchUpdateInput,
@@ -14,7 +14,7 @@ import {
getViewerResourcesForComment,
getViewerResourcesFromLegacyIdentifiers
} from '@/modules/core/services/commit/viewerResources'
import { pubsub } from '@/modules/shared'
import { pubsub } from '@/modules/shared/utils/subscriptions'
import {
CommentSubscriptions,
ProjectSubscriptions,
@@ -1,6 +1,9 @@
import { saveActivity } from '@/modules/activitystream/services'
import { ActionTypes, ResourceTypes } from '@/modules/activitystream/helpers/types'
import { CommitPubsubEvents, pubsub } from '@/modules/shared'
import {
CommitSubscriptions as CommitPubsubEvents,
pubsub
} from '@/modules/shared/utils/subscriptions'
import {
CommitCreateInput,
CommitReceivedInput,
@@ -1,7 +1,10 @@
import { saveActivity } from '@/modules/activitystream/services'
import { ActionTypes, ResourceTypes } from '@/modules/activitystream/helpers/types'
import { StreamRoles } from '@/modules/core/helpers/mainConstants'
import { pubsub, StreamPubsubEvents } from '@/modules/shared'
import {
pubsub,
StreamSubscriptions as StreamPubsubEvents
} from '@/modules/shared/utils/subscriptions'
import { StreamCreateInput } from '@/test/graphql/generated/graphql'
import { Knex } from 'knex'
import { getStreamCollaborators } from '@/modules/core/repositories/streams'
@@ -1,4 +1,4 @@
const { pubsub } = require('@/modules/shared')
const { pubsub } = require('@/modules/shared/utils/subscriptions')
const { ForbiddenError: ApolloForbiddenError } = require('apollo-server-express')
const { ForbiddenError } = require('@/modules/shared/errors')
const { getStream } = require('@/modules/core/services/streams')
@@ -2,7 +2,11 @@
const { withFilter } = require('graphql-subscriptions')
const { authorizeResolver, pubsub, BranchPubsubEvents } = require('@/modules/shared')
const {
pubsub,
BranchSubscriptions: BranchPubsubEvents
} = require('@/modules/shared/utils/subscriptions')
const { authorizeResolver } = require('@/modules/shared')
const { getBranchByNameAndStreamId, getBranchById } = require('../../services/branches')
const {
@@ -2,7 +2,11 @@
const { UserInputError, ApolloError } = require('apollo-server-express')
const { withFilter } = require('graphql-subscriptions')
const { authorizeResolver, pubsub, CommitPubsubEvents } = require('@/modules/shared')
const {
pubsub,
CommitSubscriptions: CommitPubsubEvents
} = require('@/modules/shared/utils/subscriptions')
const { authorizeResolver } = require('@/modules/shared')
const {
getCommitById,
@@ -14,9 +14,12 @@ const {
} = require('@/modules/core/services/streams')
const {
authorizeResolver,
pubsub,
StreamPubsubEvents,
StreamSubscriptions: StreamPubsubEvents
} = require(`@/modules/shared/utils/subscriptions`)
const {
authorizeResolver,
validateScopes,
validateServerRole
} = require(`@/modules/shared`)
+1 -1
View File
@@ -4,7 +4,7 @@ import {
ServerRoles,
StreamRoles
} from '@/modules/core/helpers/mainConstants'
import { getRoles } from '@/modules/shared'
import { getRoles } from '@/modules/shared/roles'
import { getStream } from '@/modules/core/services/streams'
import {
+2 -9
View File
@@ -15,16 +15,9 @@ const {
const { adminOverrideEnabled } = require('@/modules/shared/helpers/envHelper')
const { ServerAcl: ServerAclSchema } = require('@/modules/core/dbSchema')
const { getRoles } = require('@/modules/shared/roles')
const ServerAcl = () => ServerAclSchema.knex()
let roles
const getRoles = async () => {
if (roles) return roles
roles = await knex('user_roles').select('*')
return roles
}
/**
* Validates a server role against the req's context object.
* @param {import('@/modules/shared/helpers/typeHelper').GraphQLContext} context
@@ -60,7 +53,7 @@ async function validateScopes(scopes, scope) {
async function authorizeResolver(userId, resourceId, requiredRole) {
userId = userId || null
if (!roles) roles = await knex('user_roles').select('*')
const roles = getRoles()
// TODO: Cache these results with a TTL of 1 mins or so, it's pointless to query the db every time we get a ping.
+12
View File
@@ -0,0 +1,12 @@
const knex = require(`@/db/knex`)
let roles
const getRoles = async () => {
if (roles) return roles
roles = await knex('user_roles').select('*')
return roles
}
module.exports = {
getRoles
}