diff --git a/.graphqlconfig b/.graphqlconfig index a1c42c4ed..3737c2734 100644 --- a/.graphqlconfig +++ b/.graphqlconfig @@ -1,7 +1,7 @@ { "projects": { "tenant": { - "schemaPath": "src/core/server/graph/tenant/schema/schema.graphql" + "schemaPath": "src/core/server/graph/schema/schema.graphql" } } } diff --git a/package.json b/package.json index 428038b3b..8db1eb005 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "lint:server": "eslint 'src/**/*.{js,ts,tsx}' --ignore-pattern 'src/core/client/**'", "lint:client": "eslint 'src/core/client/**/*.{js,ts,tsx}'", "lint:scripts": "eslint 'scripts/**/*.{js,ts,tsx}'", - "lint:graphql": "graphql-schema-linter src/core/server/graph/tenant/schema/schema.graphql", + "lint:graphql": "graphql-schema-linter src/core/server/graph/schema/schema.graphql", "lint-fix": "npm run lint:server -- --fix && npm run lint:client -- --fix && npm run lint:scripts -- --fix", "test": "node --trace-warnings scripts/test.js --env=jsdom", "tscheck": "npm-run-all --parallel tscheck:*", @@ -394,7 +394,7 @@ "*.{j,t}s{,x}": [ "eslint" ], - "src/core/server/graph/tenant/schema/schema.graphql": [ + "src/core/server/graph/schema/schema.graphql": [ "graphql-schema-linter" ], "{src/core/client/stream/events.ts,scripts/generateEventDocs.ts,events.md}": [ diff --git a/scripts/compileRelay.ts b/scripts/compileRelay.ts index 688544070..4ffe58eb8 100644 --- a/scripts/compileRelay.ts +++ b/scripts/compileRelay.ts @@ -74,7 +74,7 @@ if (persist) { if (fs.existsSync(persist)) { // Create the new filename. const name = path.basename(program.src); - const generated = "./src/core/server/graph/common/persisted/__generated__"; + const generated = "./src/core/server/graph/persisted/__generated__"; // Create the generated directory if it doesn't exist. fs.ensureDirSync(generated); diff --git a/scripts/generateSchemaTypes.js b/scripts/generateSchemaTypes.js index ac1c6b4a7..425713c99 100644 --- a/scripts/generateSchemaTypes.js +++ b/scripts/generateSchemaTypes.js @@ -12,12 +12,12 @@ async function main() { name: "tenant", fileName: path.join( __dirname, - "../src/core/server/graph/tenant/schema/__generated__/types.ts" + "../src/core/server/graph/schema/__generated__/types.ts" ), config: { - contextType: "TenantContext", + contextType: "GraphContext", importStatements: [ - 'import TenantContext from "coral-server/graph/tenant/context";', + 'import GraphContext from "coral-server/graph/context";', 'import { Cursor } from "coral-server/models/helpers";', ], customScalarType: { Cursor: "Cursor", Time: "Date" }, diff --git a/src/core/server/app/handlers/api/account/confirm.ts b/src/core/server/app/handlers/api/account/confirm.ts index 876e4eccd..6e181fbcd 100644 --- a/src/core/server/app/handlers/api/account/confirm.ts +++ b/src/core/server/app/handlers/api/account/confirm.ts @@ -8,7 +8,7 @@ import { UserForbiddenError, UserNotFoundError, } from "coral-server/errors"; -import { GQLUSER_ROLE } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLUSER_ROLE } from "coral-server/graph/schema/__generated__/types"; import { retrieveUser, User } from "coral-server/models/user"; import { decodeJWT, extractTokenFromRequest } from "coral-server/services/jwt"; import { diff --git a/src/core/server/app/handlers/api/auth/local/signup.ts b/src/core/server/app/handlers/api/auth/local/signup.ts index f43d3d66c..ee7d6b2b7 100644 --- a/src/core/server/app/handlers/api/auth/local/signup.ts +++ b/src/core/server/app/handlers/api/auth/local/signup.ts @@ -6,7 +6,7 @@ import { handleSuccessfulLogin } from "coral-server/app/middleware/passport"; import { validate } from "coral-server/app/request/body"; import { RequestLimiter } from "coral-server/app/request/limiter"; import { IntegrationDisabled } from "coral-server/errors"; -import { GQLUSER_ROLE } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLUSER_ROLE } from "coral-server/graph/schema/__generated__/types"; import { LocalProfile, User } from "coral-server/models/user"; import { create } from "coral-server/services/users"; import { sendConfirmationEmail } from "coral-server/services/users/auth"; diff --git a/src/core/server/app/handlers/api/graphql.ts b/src/core/server/app/handlers/api/graphql.ts index 12d35c99f..3efb12ed8 100644 --- a/src/core/server/app/handlers/api/graphql.ts +++ b/src/core/server/app/handlers/api/graphql.ts @@ -1,9 +1,7 @@ import { CLIENT_ID_HEADER } from "coral-common/constants"; import { AppOptions } from "coral-server/app"; import { graphqlMiddleware } from "coral-server/app/middleware/graphql"; -import TenantContext, { - TenantContextOptions, -} from "coral-server/graph/tenant/context"; +import GraphContext, { GraphContextOptions } from "coral-server/graph/context"; import { Request, RequestHandler } from "coral-server/types/express"; export type GraphMiddlewareOptions = Pick< @@ -47,7 +45,7 @@ export const graphQLHandler = ({ } // Create some new options to store the tenant context details inside. - const opts: TenantContextOptions = { + const opts: GraphContextOptions = { ...options, id, now, @@ -72,7 +70,7 @@ export const graphQLHandler = ({ return { schema, - context: new TenantContext(opts), + context: new GraphContext(opts), }; }, metrics diff --git a/src/core/server/app/handlers/api/install.ts b/src/core/server/app/handlers/api/install.ts index e7de68574..709d019d4 100644 --- a/src/core/server/app/handlers/api/install.ts +++ b/src/core/server/app/handlers/api/install.ts @@ -26,7 +26,7 @@ import { import { create, CreateUser } from "coral-server/services/users"; import { Request, RequestHandler } from "coral-server/types/express"; -import { GQLUSER_ROLE } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLUSER_ROLE } from "coral-server/graph/schema/__generated__/types"; export type TenantInstallCheckHandlerOptions = Pick< AppOptions, diff --git a/src/core/server/app/middleware/graphql/graphqlMiddleware.ts b/src/core/server/app/middleware/graphql/graphqlMiddleware.ts index e0ecba4d3..b61c82020 100644 --- a/src/core/server/app/middleware/graphql/graphqlMiddleware.ts +++ b/src/core/server/app/middleware/graphql/graphqlMiddleware.ts @@ -14,7 +14,7 @@ import { ErrorWrappingExtension, LoggerExtension, MetricsExtension, -} from "coral-server/graph/common/extensions"; +} from "coral-server/graph/extensions"; import { Metrics } from "coral-server/services/metrics"; // Sourced from: https://github.com/apollographql/apollo-server/blob/958846887598491fadea57b3f9373d129300f250/packages/apollo-server-core/src/ApolloServer.ts#L46-L57 diff --git a/src/core/server/app/middleware/graphql/persistedQueryMiddleware.ts b/src/core/server/app/middleware/graphql/persistedQueryMiddleware.ts index 855df0375..fbf25d446 100644 --- a/src/core/server/app/middleware/graphql/persistedQueryMiddleware.ts +++ b/src/core/server/app/middleware/graphql/persistedQueryMiddleware.ts @@ -1,7 +1,7 @@ import { AppOptions } from "coral-server/app"; import { RawQueryNotAuthorized } from "coral-server/errors"; -import { getPersistedQuery } from "coral-server/graph/common/persisted"; -import { GQLUSER_ROLE } from "coral-server/graph/tenant/schema/__generated__/types"; +import { getPersistedQuery } from "coral-server/graph/persisted"; +import { GQLUSER_ROLE } from "coral-server/graph/schema/__generated__/types"; import { RequestHandler } from "coral-server/types/express"; type PersistedQueryMiddlewareOptions = Pick< diff --git a/src/core/server/app/middleware/passport/strategies/facebook.ts b/src/core/server/app/middleware/passport/strategies/facebook.ts index 74d999b25..0222e03fb 100644 --- a/src/core/server/app/middleware/passport/strategies/facebook.ts +++ b/src/core/server/app/middleware/passport/strategies/facebook.ts @@ -15,7 +15,7 @@ import { } from "coral-server/models/user"; import { findOrCreate } from "coral-server/services/users"; -import { GQLUSER_ROLE } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLUSER_ROLE } from "coral-server/graph/schema/__generated__/types"; export type FacebookStrategyOptions = OAuth2StrategyOptions; diff --git a/src/core/server/app/middleware/passport/strategies/google.ts b/src/core/server/app/middleware/passport/strategies/google.ts index 96d81d093..8d2f81c65 100644 --- a/src/core/server/app/middleware/passport/strategies/google.ts +++ b/src/core/server/app/middleware/passport/strategies/google.ts @@ -15,7 +15,7 @@ import { } from "coral-server/models/user"; import { findOrCreate } from "coral-server/services/users"; -import { GQLUSER_ROLE } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLUSER_ROLE } from "coral-server/graph/schema/__generated__/types"; export type GoogleStrategyOptions = OAuth2StrategyOptions; diff --git a/src/core/server/app/middleware/passport/strategies/oidc/index.ts b/src/core/server/app/middleware/passport/strategies/oidc/index.ts index fba8a4d8b..627b870bb 100644 --- a/src/core/server/app/middleware/passport/strategies/oidc/index.ts +++ b/src/core/server/app/middleware/passport/strategies/oidc/index.ts @@ -29,7 +29,7 @@ import { findOrCreate } from "coral-server/services/users"; import { validateUsername } from "coral-server/services/users/helpers"; import { Request } from "coral-server/types/express"; -import { GQLUSER_ROLE } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLUSER_ROLE } from "coral-server/graph/schema/__generated__/types"; export interface Params { id_token?: string; diff --git a/src/core/server/app/middleware/passport/strategies/verifiers/sso.ts b/src/core/server/app/middleware/passport/strategies/verifiers/sso.ts index 74e7f1a46..6aca55b69 100644 --- a/src/core/server/app/middleware/passport/strategies/verifiers/sso.ts +++ b/src/core/server/app/middleware/passport/strategies/verifiers/sso.ts @@ -27,7 +27,7 @@ import { findOrCreate } from "coral-server/services/users"; import { GQLSSOAuthIntegration, GQLUSER_ROLE, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import { Verifier } from "../jwt"; diff --git a/src/core/server/cron/notificationDigesting.ts b/src/core/server/cron/notificationDigesting.ts index f56cab314..d1d6aa711 100644 --- a/src/core/server/cron/notificationDigesting.ts +++ b/src/core/server/cron/notificationDigesting.ts @@ -2,7 +2,7 @@ import { Db } from "mongodb"; import path from "path"; import { Config } from "coral-server/config"; -import { GQLDIGEST_FREQUENCY } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLDIGEST_FREQUENCY } from "coral-server/graph/schema/__generated__/types"; import { MailerQueue } from "coral-server/queue/tasks/mailer"; import { DigestibleTemplate } from "coral-server/queue/tasks/mailer/templates"; import { JWTSigningConfig } from "coral-server/services/jwt"; diff --git a/src/core/server/errors/index.ts b/src/core/server/errors/index.ts index 24e64516a..d7c95d158 100644 --- a/src/core/server/errors/index.ts +++ b/src/core/server/errors/index.ts @@ -11,7 +11,7 @@ import { reduceSeconds, UNIT } from "coral-common/helpers/i18n"; import { translate } from "coral-server/services/i18n"; import { Writable } from "coral-common/types"; -import { GQLUSER_AUTH_CONDITIONS } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLUSER_AUTH_CONDITIONS } from "coral-server/graph/schema/__generated__/types"; import { ERROR_TRANSLATIONS } from "./translations"; /** diff --git a/src/core/server/graph/common/context.ts b/src/core/server/graph/common/context.ts deleted file mode 100644 index 3838a854a..000000000 --- a/src/core/server/graph/common/context.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { Db } from "mongodb"; -import uuid from "uuid"; - -import { LanguageCode } from "coral-common/helpers/i18n/locales"; -import { Config } from "coral-server/config"; -import logger, { Logger } from "coral-server/logger"; -import { PersistedQuery } from "coral-server/models/queries"; -import { User } from "coral-server/models/user"; -import { I18n } from "coral-server/services/i18n"; -import { AugmentedRedis } from "coral-server/services/redis"; -import { Request } from "coral-server/types/express"; -import { RedisPubSub } from "graphql-redis-subscriptions"; - -export interface CommonContextOptions { - id?: string; - now?: Date; - user?: User; - req?: Request; - logger?: Logger; - lang?: LanguageCode; - disableCaching?: boolean; - persisted?: PersistedQuery; - config: Config; - i18n: I18n; - pubsub: RedisPubSub; - mongo: Db; - redis: AugmentedRedis; -} - -export default class CommonContext { - public readonly user?: User; - public readonly req?: Request; - public readonly persisted?: PersistedQuery; - public readonly id: string; - public readonly config: Config; - public readonly i18n: I18n; - public readonly lang: LanguageCode; - public readonly now: Date; - public readonly logger: Logger; - public readonly pubsub: RedisPubSub; - public readonly mongo: Db; - public readonly redis: AugmentedRedis; - public readonly disableCaching: boolean; - - constructor({ - id = uuid.v1(), - now = new Date(), - logger: log = logger, - user, - req, - persisted, - config, - i18n, - lang = i18n.getDefaultLang(), - pubsub, - mongo, - redis, - disableCaching = false, - }: CommonContextOptions) { - this.id = id; - this.logger = log.child( - { - context: "graph", - contextID: id, - }, - true - ); - this.now = now; - this.user = user; - this.req = req; - this.persisted = persisted; - this.config = config; - this.i18n = i18n; - this.lang = lang; - this.pubsub = pubsub; - this.mongo = mongo; - this.redis = redis; - this.disableCaching = disableCaching; - } -} diff --git a/src/core/server/graph/common/resolvers/mutation.ts b/src/core/server/graph/common/resolvers/mutation.ts deleted file mode 100644 index 78de8a76a..000000000 --- a/src/core/server/graph/common/resolvers/mutation.ts +++ /dev/null @@ -1,3 +0,0 @@ -export interface ClientMutationProps { - clientMutationId: string; -} diff --git a/src/core/server/graph/context.ts b/src/core/server/graph/context.ts new file mode 100644 index 000000000..2521c3802 --- /dev/null +++ b/src/core/server/graph/context.ts @@ -0,0 +1,118 @@ +import { RedisPubSub } from "graphql-redis-subscriptions"; +import { Db } from "mongodb"; +import uuid from "uuid"; + +import { LanguageCode } from "coral-common/helpers/i18n/locales"; +import { Config } from "coral-server/config"; +import { + createPublisher, + Publisher, +} from "coral-server/graph/subscriptions/publisher"; +import logger, { Logger } from "coral-server/logger"; +import { PersistedQuery } from "coral-server/models/queries"; +import { Tenant } from "coral-server/models/tenant"; +import { User } from "coral-server/models/user"; +import { MailerQueue } from "coral-server/queue/tasks/mailer"; +import { NotifierQueue } from "coral-server/queue/tasks/notifier"; +import { ScraperQueue } from "coral-server/queue/tasks/scraper"; +import { I18n } from "coral-server/services/i18n"; +import { JWTSigningConfig } from "coral-server/services/jwt"; +import { AugmentedRedis } from "coral-server/services/redis"; +import createSlackPublisher from "coral-server/services/slack/publisher"; +import TenantCache from "coral-server/services/tenant/cache"; +import { Request } from "coral-server/types/express"; + +import loaders from "./loaders"; +import mutators from "./mutators"; + +export interface GraphContextOptions { + clientID?: string; + disableCaching?: boolean; + id?: string; + lang?: LanguageCode; + logger?: Logger; + now?: Date; + persisted?: PersistedQuery; + req?: Request; + signingConfig?: JWTSigningConfig; + user?: User; + + config: Config; + i18n: I18n; + mailerQueue: MailerQueue; + mongo: Db; + notifierQueue: NotifierQueue; + pubsub: RedisPubSub; + redis: AugmentedRedis; + scraperQueue: ScraperQueue; + tenant: Tenant; + tenantCache: TenantCache; +} + +export default class GraphContext { + public readonly config: Config; + public readonly disableCaching: boolean; + public readonly i18n: I18n; + public readonly id: string; + public readonly lang: LanguageCode; + public readonly loaders: ReturnType; + public readonly logger: Logger; + public readonly mailerQueue: MailerQueue; + public readonly mongo: Db; + public readonly mutators: ReturnType; + public readonly now: Date; + public readonly publisher: Publisher; + public readonly pubsub: RedisPubSub; + public readonly redis: AugmentedRedis; + public readonly scraperQueue: ScraperQueue; + public readonly tenant: Tenant; + public readonly tenantCache: TenantCache; + + public readonly clientID?: string; + public readonly persisted?: PersistedQuery; + public readonly req?: Request; + public readonly signingConfig?: JWTSigningConfig; + public readonly user?: User; + + constructor(options: GraphContextOptions) { + this.id = options.id || uuid.v1(); + this.now = options.now || new Date(); + this.lang = options.lang || options.i18n.getDefaultLang(); + this.disableCaching = options.disableCaching || false; + + this.logger = (options.logger || logger).child( + { context: "graph", contextID: this.id }, + true + ); + + this.user = options.user; + this.req = options.req; + this.persisted = options.persisted; + this.config = options.config; + this.i18n = options.i18n; + this.pubsub = options.pubsub; + this.mongo = options.mongo; + this.redis = options.redis; + this.tenant = options.tenant; + this.tenantCache = options.tenantCache; + this.scraperQueue = options.scraperQueue; + this.mailerQueue = options.mailerQueue; + this.signingConfig = options.signingConfig; + this.clientID = options.clientID; + + this.publisher = createPublisher({ + pubsub: this.pubsub, + slackPublisher: createSlackPublisher( + this.mongo, + this.config, + this.tenant + ), + notifierQueue: options.notifierQueue, + tenantID: this.tenant.id, + clientID: this.clientID, + }); + + this.loaders = loaders(this); + this.mutators = mutators(this); + } +} diff --git a/src/core/server/graph/common/directives/auth.ts b/src/core/server/graph/directives/auth.ts similarity index 96% rename from src/core/server/graph/common/directives/auth.ts rename to src/core/server/graph/directives/auth.ts index b5727f04a..02e9c67d4 100644 --- a/src/core/server/graph/common/directives/auth.ts +++ b/src/core/server/graph/directives/auth.ts @@ -6,7 +6,7 @@ import { UserForbiddenError, UserSuspended, } from "coral-server/errors"; -import CommonContext from "coral-server/graph/common/context"; +import GraphContext from "coral-server/graph/context"; import { consolidateUserStatus, consolidateUserSuspensionStatus, @@ -16,7 +16,7 @@ import { import { GQLUSER_AUTH_CONDITIONS, GQLUSER_ROLE, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import { calculateLocationKey } from "./helpers"; @@ -64,7 +64,7 @@ const calculateAuthConditionsMemoized = memoize(calculateAuthConditions); const auth: DirectiveResolverFn< Record, - CommonContext + GraphContext > = ( next, src, diff --git a/src/core/server/graph/common/directives/constraint.ts b/src/core/server/graph/directives/constraint.ts similarity index 100% rename from src/core/server/graph/common/directives/constraint.ts rename to src/core/server/graph/directives/constraint.ts diff --git a/src/core/server/graph/common/directives/helpers.ts b/src/core/server/graph/directives/helpers.ts similarity index 100% rename from src/core/server/graph/common/directives/helpers.ts rename to src/core/server/graph/directives/helpers.ts diff --git a/src/core/server/graph/tenant/directives/rate.ts b/src/core/server/graph/directives/rate.ts similarity index 92% rename from src/core/server/graph/tenant/directives/rate.ts rename to src/core/server/graph/directives/rate.ts index e2e95e779..701fdb61b 100644 --- a/src/core/server/graph/tenant/directives/rate.ts +++ b/src/core/server/graph/directives/rate.ts @@ -2,9 +2,9 @@ import { DirectiveResolverFn } from "graphql-tools"; import { DateTime } from "luxon"; import { RateLimitExceeded } from "coral-server/errors"; -import { calculateLocationKey } from "coral-server/graph/common/directives/helpers"; +import { calculateLocationKey } from "coral-server/graph/directives/helpers"; -import TenantContext from "../context"; +import GraphContext from "../context"; export interface RateDirectiveArgs { max?: number; @@ -14,7 +14,7 @@ export interface RateDirectiveArgs { const rate: DirectiveResolverFn< Record, - TenantContext + GraphContext > = async ( next, src, diff --git a/src/core/server/graph/common/errors.ts b/src/core/server/graph/errors.ts similarity index 100% rename from src/core/server/graph/common/errors.ts rename to src/core/server/graph/errors.ts diff --git a/src/core/server/graph/common/extensions/ErrorWrappingExtension.ts b/src/core/server/graph/extensions/ErrorWrappingExtension.ts similarity index 89% rename from src/core/server/graph/common/extensions/ErrorWrappingExtension.ts rename to src/core/server/graph/extensions/ErrorWrappingExtension.ts index a873b7324..531bbca3f 100644 --- a/src/core/server/graph/common/extensions/ErrorWrappingExtension.ts +++ b/src/core/server/graph/extensions/ErrorWrappingExtension.ts @@ -8,12 +8,9 @@ import { InternalDevelopmentError, InternalError, } from "coral-server/errors"; -import CommonContext from "coral-server/graph/common/context"; +import GraphContext from "coral-server/graph/context"; -function hoistCoralErrorExtensions( - ctx: CommonContext, - err: GraphQLError -): void { +function hoistCoralErrorExtensions(ctx: GraphContext, err: GraphQLError): void { // Grab or wrap the originalError so that it's a CoralError. const originalError = extractOriginalError(err, ctx); if (!originalError) { @@ -44,7 +41,7 @@ function hoistCoralErrorExtensions( */ function extractOriginalError( err: GraphQLError, - ctx: CommonContext + ctx: GraphContext ): CoralError | undefined { if (err instanceof ApolloError) { // ApolloError's don't need to be hoisted as they contain validation @@ -78,7 +75,7 @@ function extractOriginalError( * @param err the error that occurred */ export function enrichError( - ctx: CommonContext, + ctx: GraphContext, err: GraphQLError ): GraphQLError { if (err.extensions) { @@ -97,11 +94,11 @@ export function enrichError( return err; } -export class ErrorWrappingExtension implements GraphQLExtension { +export class ErrorWrappingExtension implements GraphQLExtension { public willSendResponse(o: { graphqlResponse: GraphQLResponse; - context: CommonContext; - }): void | { graphqlResponse: GraphQLResponse; context: CommonContext } { + context: GraphContext; + }): void | { graphqlResponse: GraphQLResponse; context: GraphContext } { if (o.graphqlResponse.errors) { return { ...o, diff --git a/src/core/server/graph/common/extensions/LoggerExtension.ts b/src/core/server/graph/extensions/LoggerExtension.ts similarity index 88% rename from src/core/server/graph/common/extensions/LoggerExtension.ts rename to src/core/server/graph/extensions/LoggerExtension.ts index 051a64ccb..e0ab84bf8 100644 --- a/src/core/server/graph/common/extensions/LoggerExtension.ts +++ b/src/core/server/graph/extensions/LoggerExtension.ts @@ -6,16 +6,16 @@ import { } from "graphql-extensions"; import now from "performance-now"; -import CommonContext from "coral-server/graph/common/context"; +import GraphContext from "coral-server/graph/context"; import { getOperationMetadata, getPersistedQueryMetadata } from "./helpers"; -export function logError(ctx: CommonContext, err: GraphQLError) { +export function logError(ctx: GraphContext, err: GraphQLError) { ctx.logger.error({ err }, "graphql query error"); } export function logQuery( - ctx: CommonContext, + ctx: GraphContext, document: DocumentNode, persisted = ctx.persisted, responseTime?: number @@ -38,7 +38,7 @@ export function logQuery( ); } -export class LoggerExtension implements GraphQLExtension { +export class LoggerExtension implements GraphQLExtension { public executionDidStart(o: { executionArgs: ExecutionArgs; }): EndHandler | void { @@ -64,7 +64,7 @@ export class LoggerExtension implements GraphQLExtension { public willSendResponse(response: { graphqlResponse: GraphQLResponse; - context: CommonContext; + context: GraphContext; }): void { if (response.graphqlResponse.errors) { response.graphqlResponse.errors.forEach(err => diff --git a/src/core/server/graph/common/extensions/MetricsExtension.ts b/src/core/server/graph/extensions/MetricsExtension.ts similarity index 90% rename from src/core/server/graph/common/extensions/MetricsExtension.ts rename to src/core/server/graph/extensions/MetricsExtension.ts index f73140f6c..cef01957d 100644 --- a/src/core/server/graph/common/extensions/MetricsExtension.ts +++ b/src/core/server/graph/extensions/MetricsExtension.ts @@ -1,4 +1,4 @@ -import CommonContext from "coral-server/graph/common/context"; +import GraphContext from "coral-server/graph/context"; import { Metrics } from "coral-server/services/metrics"; import { ExecutionArgs } from "graphql"; import { EndHandler, GraphQLExtension } from "graphql-extensions"; @@ -6,7 +6,7 @@ import now from "performance-now"; import { getOperationMetadata } from "./helpers"; -export class MetricsExtension implements GraphQLExtension { +export class MetricsExtension implements GraphQLExtension { constructor(private metrics: Metrics) {} public executionDidStart(o: { diff --git a/src/core/server/graph/common/extensions/helpers.ts b/src/core/server/graph/extensions/helpers.ts similarity index 100% rename from src/core/server/graph/common/extensions/helpers.ts rename to src/core/server/graph/extensions/helpers.ts diff --git a/src/core/server/graph/common/extensions/index.ts b/src/core/server/graph/extensions/index.ts similarity index 100% rename from src/core/server/graph/common/extensions/index.ts rename to src/core/server/graph/extensions/index.ts diff --git a/src/core/server/graph/tenant/loaders/Auth.ts b/src/core/server/graph/loaders/Auth.ts similarity index 78% rename from src/core/server/graph/tenant/loaders/Auth.ts rename to src/core/server/graph/loaders/Auth.ts index ddfe4922a..a294fe1d2 100644 --- a/src/core/server/graph/tenant/loaders/Auth.ts +++ b/src/core/server/graph/loaders/Auth.ts @@ -1,10 +1,10 @@ import DataLoader from "dataloader"; -import TenantContext from "coral-server/graph/tenant/context"; -import { GQLDiscoveredOIDCConfiguration } from "coral-server/graph/tenant/schema/__generated__/types"; +import GraphContext from "coral-server/graph/context"; +import { GQLDiscoveredOIDCConfiguration } from "coral-server/graph/schema/__generated__/types"; import { discoverOIDCConfiguration } from "coral-server/services/tenant"; -export default (ctx: TenantContext) => ({ +export default (ctx: GraphContext) => ({ discoverOIDCConfiguration: new DataLoader< string, GQLDiscoveredOIDCConfiguration | null diff --git a/src/core/server/graph/tenant/loaders/CommentActions.ts b/src/core/server/graph/loaders/CommentActions.ts similarity index 87% rename from src/core/server/graph/tenant/loaders/CommentActions.ts rename to src/core/server/graph/loaders/CommentActions.ts index 6f80d17a8..a09a3aaa6 100644 --- a/src/core/server/graph/tenant/loaders/CommentActions.ts +++ b/src/core/server/graph/loaders/CommentActions.ts @@ -1,6 +1,6 @@ import { defaultTo } from "lodash"; -import Context from "coral-server/graph/tenant/context"; +import Context from "coral-server/graph/context"; import { CommentActionConnectionInput, retrieveCommentActionConnection, diff --git a/src/core/server/graph/tenant/loaders/CommentModerationActions.ts b/src/core/server/graph/loaders/CommentModerationActions.ts similarity index 82% rename from src/core/server/graph/tenant/loaders/CommentModerationActions.ts rename to src/core/server/graph/loaders/CommentModerationActions.ts index 96a74990f..85203c487 100644 --- a/src/core/server/graph/tenant/loaders/CommentModerationActions.ts +++ b/src/core/server/graph/loaders/CommentModerationActions.ts @@ -1,13 +1,13 @@ import { defaultTo } from "lodash"; -import TenantContext from "coral-server/graph/tenant/context"; +import GraphContext from "coral-server/graph/context"; import { CommentToStatusHistoryArgs, UserToCommentModerationActionHistoryArgs, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import { retrieveCommentModerationActionConnection } from "coral-server/models/action/moderation/comment"; -export default (ctx: TenantContext) => ({ +export default (ctx: GraphContext) => ({ forModerator: ( { first, after }: UserToCommentModerationActionHistoryArgs, moderatorID: string diff --git a/src/core/server/graph/tenant/loaders/Comments.ts b/src/core/server/graph/loaders/Comments.ts similarity index 98% rename from src/core/server/graph/tenant/loaders/Comments.ts rename to src/core/server/graph/loaders/Comments.ts index dc47c52de..1b2bff90b 100644 --- a/src/core/server/graph/tenant/loaders/Comments.ts +++ b/src/core/server/graph/loaders/Comments.ts @@ -2,7 +2,7 @@ import DataLoader from "dataloader"; import { defaultTo, isNil, omitBy } from "lodash"; import { DateTime } from "luxon"; -import Context from "coral-server/graph/tenant/context"; +import Context from "coral-server/graph/context"; import { CommentToParentsArgs, CommentToRepliesArgs, @@ -15,7 +15,7 @@ import { UserToAllCommentsArgs, UserToCommentsArgs, UserToRejectedCommentsArgs, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import { retrieveManyUserActionPresence } from "coral-server/models/action/comment"; import { Comment, diff --git a/src/core/server/graph/tenant/loaders/Stories.ts b/src/core/server/graph/loaders/Stories.ts similarity index 93% rename from src/core/server/graph/tenant/loaders/Stories.ts rename to src/core/server/graph/loaders/Stories.ts index 15bd58eb0..a0ed762bc 100644 --- a/src/core/server/graph/tenant/loaders/Stories.ts +++ b/src/core/server/graph/loaders/Stories.ts @@ -1,11 +1,11 @@ import DataLoader from "dataloader"; import { defaultTo } from "lodash"; -import TenantContext from "coral-server/graph/tenant/context"; +import GraphContext from "coral-server/graph/context"; import { GQLSTORY_STATUS, QueryToStoriesArgs, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import { Connection } from "coral-server/models/helpers"; import { retrieveManyStories, @@ -54,7 +54,7 @@ const queryFilter = (query?: string): StoryConnectionInput["filter"] => { * * @param ctx graph context to use to prime the loaders. */ -const primeStoriesFromConnection = (ctx: TenantContext) => ( +const primeStoriesFromConnection = (ctx: GraphContext) => ( connection: Readonly>> ) => { if (!ctx.disableCaching) { @@ -67,7 +67,7 @@ const primeStoriesFromConnection = (ctx: TenantContext) => ( return connection; }; -export default (ctx: TenantContext) => ({ +export default (ctx: GraphContext) => ({ findOrCreate: new DataLoader( createManyBatchLoadFn((input: FindOrCreateStory) => findOrCreate(ctx.mongo, ctx.tenant, input, ctx.scraperQueue, ctx.now) diff --git a/src/core/server/graph/tenant/loaders/Users.ts b/src/core/server/graph/loaders/Users.ts similarity index 96% rename from src/core/server/graph/tenant/loaders/Users.ts rename to src/core/server/graph/loaders/Users.ts index 7863ad677..1022cad41 100644 --- a/src/core/server/graph/tenant/loaders/Users.ts +++ b/src/core/server/graph/loaders/Users.ts @@ -1,12 +1,12 @@ import DataLoader from "dataloader"; import { defaultTo } from "lodash"; -import Context from "coral-server/graph/tenant/context"; +import Context from "coral-server/graph/context"; import { GQLUSER_ROLE, GQLUSER_STATUS, QueryToUsersArgs, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import { Connection } from "coral-server/models/helpers"; import { retrieveManyUsers, diff --git a/src/core/server/graph/tenant/loaders/index.ts b/src/core/server/graph/loaders/index.ts similarity index 89% rename from src/core/server/graph/tenant/loaders/index.ts rename to src/core/server/graph/loaders/index.ts index 6e18d6a31..989cc9467 100644 --- a/src/core/server/graph/tenant/loaders/index.ts +++ b/src/core/server/graph/loaders/index.ts @@ -1,4 +1,4 @@ -import Context from "coral-server/graph/tenant/context"; +import Context from "coral-server/graph/context"; import Auth from "./Auth"; import CommentActions from "./CommentActions"; diff --git a/src/core/server/graph/tenant/loaders/util.ts b/src/core/server/graph/loaders/util.ts similarity index 100% rename from src/core/server/graph/tenant/loaders/util.ts rename to src/core/server/graph/loaders/util.ts diff --git a/src/core/server/graph/tenant/mutators/Actions.ts b/src/core/server/graph/mutators/Actions.ts similarity index 85% rename from src/core/server/graph/tenant/mutators/Actions.ts rename to src/core/server/graph/mutators/Actions.ts index 8bc494d11..dcedd783d 100644 --- a/src/core/server/graph/tenant/mutators/Actions.ts +++ b/src/core/server/graph/mutators/Actions.ts @@ -1,4 +1,4 @@ -import TenantContext from "coral-server/graph/tenant/context"; +import GraphContext from "coral-server/graph/context"; import { approveComment, rejectComment } from "coral-server/stacks"; import { @@ -6,7 +6,7 @@ import { GQLRejectCommentInput, } from "../schema/__generated__/types"; -export const Actions = (ctx: TenantContext) => ({ +export const Actions = (ctx: GraphContext) => ({ approveComment: (input: GQLApproveCommentInput) => approveComment( ctx.mongo, diff --git a/src/core/server/graph/tenant/mutators/Comments.ts b/src/core/server/graph/mutators/Comments.ts similarity index 95% rename from src/core/server/graph/tenant/mutators/Comments.ts rename to src/core/server/graph/mutators/Comments.ts index 987e4f45e..70f1704fe 100644 --- a/src/core/server/graph/tenant/mutators/Comments.ts +++ b/src/core/server/graph/mutators/Comments.ts @@ -1,7 +1,7 @@ import { ERROR_CODES } from "coral-common/errors"; import { ADDITIONAL_DETAILS_MAX_LENGTH } from "coral-common/helpers/validate"; -import { mapFieldsetToErrorCodes } from "coral-server/graph/common/errors"; -import TenantContext from "coral-server/graph/tenant/context"; +import GraphContext from "coral-server/graph/context"; +import { mapFieldsetToErrorCodes } from "coral-server/graph/errors"; import { addTag, removeTag } from "coral-server/services/comments"; import { createDontAgree, @@ -30,11 +30,11 @@ import { GQLRemoveCommentReactionInput, GQLTAG, GQLUnfeatureCommentInput, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import { validateMaximumLength, WithoutMutationID } from "./util"; -export const Comments = (ctx: TenantContext) => ({ +export const Comments = (ctx: GraphContext) => ({ create: ({ clientMutationId, nudge = false, diff --git a/src/core/server/graph/tenant/mutators/Settings.ts b/src/core/server/graph/mutators/Settings.ts similarity index 84% rename from src/core/server/graph/tenant/mutators/Settings.ts rename to src/core/server/graph/mutators/Settings.ts index 589ae19bb..99ac256aa 100644 --- a/src/core/server/graph/tenant/mutators/Settings.ts +++ b/src/core/server/graph/mutators/Settings.ts @@ -1,4 +1,4 @@ -import TenantContext from "coral-server/graph/tenant/context"; +import GraphContext from "coral-server/graph/context"; import { Tenant } from "coral-server/models/tenant"; import { disableFeatureFlag, @@ -10,7 +10,7 @@ import { import { GQLFEATURE_FLAG, GQLUpdateSettingsInput, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; export const Settings = ({ mongo, @@ -19,7 +19,7 @@ export const Settings = ({ tenant, config, now, -}: TenantContext) => ({ +}: GraphContext) => ({ update: (input: GQLUpdateSettingsInput): Promise => update(mongo, redis, tenantCache, config, tenant, input.settings), regenerateSSOKey: (): Promise => diff --git a/src/core/server/graph/tenant/mutators/Stories.ts b/src/core/server/graph/mutators/Stories.ts similarity index 89% rename from src/core/server/graph/tenant/mutators/Stories.ts rename to src/core/server/graph/mutators/Stories.ts index 6d7263834..5c3828087 100644 --- a/src/core/server/graph/tenant/mutators/Stories.ts +++ b/src/core/server/graph/mutators/Stories.ts @@ -1,18 +1,8 @@ import { isNull, omitBy } from "lodash"; import { ERROR_CODES } from "coral-common/errors"; -import { mapFieldsetToErrorCodes } from "coral-server/graph/common/errors"; -import TenantContext from "coral-server/graph/tenant/context"; -import { - GQLCloseStoryInput, - GQLCreateStoryInput, - GQLMergeStoriesInput, - GQLOpenStoryInput, - GQLRemoveStoryInput, - GQLScrapeStoryInput, - GQLUpdateStoryInput, - GQLUpdateStorySettingsInput, -} from "coral-server/graph/tenant/schema/__generated__/types"; +import GraphContext from "coral-server/graph/context"; +import { mapFieldsetToErrorCodes } from "coral-server/graph/errors"; import { Story } from "coral-server/models/story"; import { close, @@ -25,7 +15,18 @@ import { } from "coral-server/services/stories"; import { scrape } from "coral-server/services/stories/scraper"; -export const Stories = (ctx: TenantContext) => ({ +import { + GQLCloseStoryInput, + GQLCreateStoryInput, + GQLMergeStoriesInput, + GQLOpenStoryInput, + GQLRemoveStoryInput, + GQLScrapeStoryInput, + GQLUpdateStoryInput, + GQLUpdateStorySettingsInput, +} from "coral-server/graph/schema/__generated__/types"; + +export const Stories = (ctx: GraphContext) => ({ create: async (input: GQLCreateStoryInput): Promise | null> => mapFieldsetToErrorCodes( create( diff --git a/src/core/server/graph/tenant/mutators/Users.ts b/src/core/server/graph/mutators/Users.ts similarity index 97% rename from src/core/server/graph/tenant/mutators/Users.ts rename to src/core/server/graph/mutators/Users.ts index e5d893a3e..932b73412 100644 --- a/src/core/server/graph/tenant/mutators/Users.ts +++ b/src/core/server/graph/mutators/Users.ts @@ -1,6 +1,6 @@ import { ERROR_CODES } from "coral-common/errors"; -import { mapFieldsetToErrorCodes } from "coral-server/graph/common/errors"; -import TenantContext from "coral-server/graph/tenant/context"; +import GraphContext from "coral-server/graph/context"; +import { mapFieldsetToErrorCodes } from "coral-server/graph/errors"; import { User } from "coral-server/models/user"; import { addModeratorNote, @@ -65,9 +65,10 @@ import { GQLUpdateUserRoleInput, GQLUpdateUserUsernameInput, } from "../schema/__generated__/types"; + import { WithoutMutationID } from "./util"; -export const Users = (ctx: TenantContext) => ({ +export const Users = (ctx: GraphContext) => ({ invite: async ({ role, emails }: GQLInviteUsersInput) => mapFieldsetToErrorCodes( invite( diff --git a/src/core/server/graph/tenant/mutators/index.ts b/src/core/server/graph/mutators/index.ts similarity index 75% rename from src/core/server/graph/tenant/mutators/index.ts rename to src/core/server/graph/mutators/index.ts index 1ccc8e3ae..f5a86f5cf 100644 --- a/src/core/server/graph/tenant/mutators/index.ts +++ b/src/core/server/graph/mutators/index.ts @@ -1,4 +1,4 @@ -import TenantContext from "coral-server/graph/tenant/context"; +import GraphContext from "coral-server/graph/context"; import { Actions } from "./Actions"; import { Comments } from "./Comments"; @@ -6,7 +6,7 @@ import { Settings } from "./Settings"; import { Stories } from "./Stories"; import { Users } from "./Users"; -export default (ctx: TenantContext) => ({ +export default (ctx: GraphContext) => ({ Actions: Actions(ctx), Comments: Comments(ctx), Settings: Settings(ctx), diff --git a/src/core/server/graph/tenant/mutators/util.spec.ts b/src/core/server/graph/mutators/util.spec.ts similarity index 100% rename from src/core/server/graph/tenant/mutators/util.spec.ts rename to src/core/server/graph/mutators/util.spec.ts diff --git a/src/core/server/graph/tenant/mutators/util.ts b/src/core/server/graph/mutators/util.ts similarity index 100% rename from src/core/server/graph/tenant/mutators/util.ts rename to src/core/server/graph/mutators/util.ts diff --git a/src/core/server/graph/common/persisted/index.ts b/src/core/server/graph/persisted/index.ts similarity index 100% rename from src/core/server/graph/common/persisted/index.ts rename to src/core/server/graph/persisted/index.ts diff --git a/src/core/server/graph/common/persisted/loader.ts b/src/core/server/graph/persisted/loader.ts similarity index 95% rename from src/core/server/graph/common/persisted/loader.ts rename to src/core/server/graph/persisted/loader.ts index 63c8dcb0e..cbed515df 100644 --- a/src/core/server/graph/common/persisted/loader.ts +++ b/src/core/server/graph/persisted/loader.ts @@ -3,7 +3,7 @@ import { parse } from "graphql"; import path from "path"; import { version } from "coral-common/version"; -import { getOperationMetadata } from "coral-server/graph/common/extensions/helpers"; +import { getOperationMetadata } from "coral-server/graph/extensions/helpers"; import logger from "coral-server/logger"; import { PersistedQuery } from "coral-server/models/queries"; diff --git a/src/core/server/graph/common/persisted/mapper.ts b/src/core/server/graph/persisted/mapper.ts similarity index 100% rename from src/core/server/graph/common/persisted/mapper.ts rename to src/core/server/graph/persisted/mapper.ts diff --git a/src/core/server/graph/tenant/resolvers/ApproveCommentPayload.ts b/src/core/server/graph/resolvers/ApproveCommentPayload.ts similarity index 85% rename from src/core/server/graph/tenant/resolvers/ApproveCommentPayload.ts rename to src/core/server/graph/resolvers/ApproveCommentPayload.ts index b7f35fdca..7d1f1f087 100644 --- a/src/core/server/graph/tenant/resolvers/ApproveCommentPayload.ts +++ b/src/core/server/graph/resolvers/ApproveCommentPayload.ts @@ -1,4 +1,4 @@ -import { GQLApproveCommentPayloadTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLApproveCommentPayloadTypeResolver } from "coral-server/graph/schema/__generated__/types"; import { moderationQueuesResolver } from "./ModerationQueues"; diff --git a/src/core/server/graph/tenant/resolvers/AuthIntegrations.ts b/src/core/server/graph/resolvers/AuthIntegrations.ts similarity index 86% rename from src/core/server/graph/tenant/resolvers/AuthIntegrations.ts rename to src/core/server/graph/resolvers/AuthIntegrations.ts index 386092700..6243d072b 100644 --- a/src/core/server/graph/tenant/resolvers/AuthIntegrations.ts +++ b/src/core/server/graph/resolvers/AuthIntegrations.ts @@ -1,7 +1,7 @@ import { GQLAuthIntegrations, GQLAuthIntegrationsTypeResolver, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; const disabled = { enabled: false }; diff --git a/src/core/server/graph/tenant/resolvers/BanStatus.ts b/src/core/server/graph/resolvers/BanStatus.ts similarity index 77% rename from src/core/server/graph/tenant/resolvers/BanStatus.ts rename to src/core/server/graph/resolvers/BanStatus.ts index 4d9794500..af0f2834b 100644 --- a/src/core/server/graph/tenant/resolvers/BanStatus.ts +++ b/src/core/server/graph/resolvers/BanStatus.ts @@ -1,4 +1,4 @@ -import { GQLBanStatusTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLBanStatusTypeResolver } from "coral-server/graph/schema/__generated__/types"; import * as user from "coral-server/models/user"; export type BanStatusInput = user.ConsolidatedBanStatus & { diff --git a/src/core/server/graph/tenant/resolvers/BanStatusHistory.ts b/src/core/server/graph/resolvers/BanStatusHistory.ts similarity index 92% rename from src/core/server/graph/tenant/resolvers/BanStatusHistory.ts rename to src/core/server/graph/resolvers/BanStatusHistory.ts index 5e99f5173..11600c3ad 100644 --- a/src/core/server/graph/tenant/resolvers/BanStatusHistory.ts +++ b/src/core/server/graph/resolvers/BanStatusHistory.ts @@ -1,4 +1,4 @@ -import { GQLBanStatusHistoryTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLBanStatusHistoryTypeResolver } from "coral-server/graph/schema/__generated__/types"; import * as user from "coral-server/models/user"; export const BanStatusHistory: Required< diff --git a/src/core/server/graph/tenant/resolvers/CloseCommenting.ts b/src/core/server/graph/resolvers/CloseCommenting.ts similarity index 94% rename from src/core/server/graph/tenant/resolvers/CloseCommenting.ts rename to src/core/server/graph/resolvers/CloseCommenting.ts index abfe03b42..47096a3da 100644 --- a/src/core/server/graph/tenant/resolvers/CloseCommenting.ts +++ b/src/core/server/graph/resolvers/CloseCommenting.ts @@ -1,4 +1,4 @@ -import { GQLCloseCommentingTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLCloseCommentingTypeResolver } from "coral-server/graph/schema/__generated__/types"; import * as settings from "coral-server/models/settings"; import { translate } from "coral-server/services/i18n"; diff --git a/src/core/server/graph/tenant/resolvers/Comment.ts b/src/core/server/graph/resolvers/Comment.ts similarity index 94% rename from src/core/server/graph/tenant/resolvers/Comment.ts rename to src/core/server/graph/resolvers/Comment.ts index e75e1f319..9dd20bef9 100644 --- a/src/core/server/graph/tenant/resolvers/Comment.ts +++ b/src/core/server/graph/resolvers/Comment.ts @@ -2,11 +2,7 @@ import { GraphQLResolveInfo } from "graphql"; import { defaultTo } from "lodash"; import { StoryNotFoundError } from "coral-server/errors"; -import { getRequestedFields } from "coral-server/graph/tenant/resolvers/util"; -import { - GQLComment, - GQLCommentTypeResolver, -} from "coral-server/graph/tenant/schema/__generated__/types"; +import { getRequestedFields } from "coral-server/graph/resolvers/util"; import { ACTION_TYPE, decodeActionCounts, @@ -21,10 +17,15 @@ import { createConnection } from "coral-server/models/helpers"; import { getURLWithCommentID } from "coral-server/models/story"; import { getCommentEditableUntilDate } from "coral-server/services/comments"; -import TenantContext from "../context"; +import { + GQLComment, + GQLCommentTypeResolver, +} from "coral-server/graph/schema/__generated__/types"; + +import GraphContext from "../context"; export const maybeLoadOnlyID = ( - ctx: TenantContext, + ctx: GraphContext, info: GraphQLResolveInfo, id: string ) => { @@ -78,7 +79,7 @@ export const Comment: GQLCommentTypeResolver = { const children = await ctx.loaders.Comments.comment.loadMany(childIDs); return children.reduce( - (sum, c) => (c && hasPublishedStatus(c) ? sum + 1 : sum), + (sum: any, c: any) => (c && hasPublishedStatus(c) ? sum + 1 : sum), 0 ); }, diff --git a/src/core/server/graph/tenant/resolvers/CommentCounts.ts b/src/core/server/graph/resolvers/CommentCounts.ts similarity index 93% rename from src/core/server/graph/tenant/resolvers/CommentCounts.ts rename to src/core/server/graph/resolvers/CommentCounts.ts index f82cda762..bdefa4759 100644 --- a/src/core/server/graph/tenant/resolvers/CommentCounts.ts +++ b/src/core/server/graph/resolvers/CommentCounts.ts @@ -1,4 +1,4 @@ -import { GQLCommentCountsTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLCommentCountsTypeResolver } from "coral-server/graph/schema/__generated__/types"; import { calculateTotalPublishedCommentCount, Story, diff --git a/src/core/server/graph/tenant/resolvers/CommentCreatedPayload.ts b/src/core/server/graph/resolvers/CommentCreatedPayload.ts similarity index 89% rename from src/core/server/graph/tenant/resolvers/CommentCreatedPayload.ts rename to src/core/server/graph/resolvers/CommentCreatedPayload.ts index 29cc7acc3..20063cf6e 100644 --- a/src/core/server/graph/tenant/resolvers/CommentCreatedPayload.ts +++ b/src/core/server/graph/resolvers/CommentCreatedPayload.ts @@ -1,4 +1,4 @@ -import { GQLCommentCreatedPayloadTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLCommentCreatedPayloadTypeResolver } from "coral-server/graph/schema/__generated__/types"; import { maybeLoadOnlyID } from "./Comment"; import { CommentCreatedInput } from "./Subscription/commentCreated"; diff --git a/src/core/server/graph/tenant/resolvers/CommentEnteredModerationQueuePayload.ts b/src/core/server/graph/resolvers/CommentEnteredModerationQueuePayload.ts similarity index 88% rename from src/core/server/graph/tenant/resolvers/CommentEnteredModerationQueuePayload.ts rename to src/core/server/graph/resolvers/CommentEnteredModerationQueuePayload.ts index 5f6f9b183..6d141719d 100644 --- a/src/core/server/graph/tenant/resolvers/CommentEnteredModerationQueuePayload.ts +++ b/src/core/server/graph/resolvers/CommentEnteredModerationQueuePayload.ts @@ -1,4 +1,4 @@ -import { GQLCommentEnteredModerationQueuePayloadTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLCommentEnteredModerationQueuePayloadTypeResolver } from "coral-server/graph/schema/__generated__/types"; import { maybeLoadOnlyID } from "./Comment"; import { CommentEnteredModerationQueueInput } from "./Subscription/commentEnteredModerationQueue"; diff --git a/src/core/server/graph/tenant/resolvers/CommentLeftModerationQueuePayload.ts b/src/core/server/graph/resolvers/CommentLeftModerationQueuePayload.ts similarity index 88% rename from src/core/server/graph/tenant/resolvers/CommentLeftModerationQueuePayload.ts rename to src/core/server/graph/resolvers/CommentLeftModerationQueuePayload.ts index 2bcbaa318..3270de30d 100644 --- a/src/core/server/graph/tenant/resolvers/CommentLeftModerationQueuePayload.ts +++ b/src/core/server/graph/resolvers/CommentLeftModerationQueuePayload.ts @@ -1,4 +1,4 @@ -import { GQLCommentLeftModerationQueuePayloadTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLCommentLeftModerationQueuePayloadTypeResolver } from "coral-server/graph/schema/__generated__/types"; import { maybeLoadOnlyID } from "./Comment"; import { CommentLeftModerationQueueInput } from "./Subscription/commentLeftModerationQueue"; diff --git a/src/core/server/graph/tenant/resolvers/CommentModerationAction.ts b/src/core/server/graph/resolvers/CommentModerationAction.ts similarity index 100% rename from src/core/server/graph/tenant/resolvers/CommentModerationAction.ts rename to src/core/server/graph/resolvers/CommentModerationAction.ts diff --git a/src/core/server/graph/tenant/resolvers/CommentReleasedPayload.ts b/src/core/server/graph/resolvers/CommentReleasedPayload.ts similarity index 89% rename from src/core/server/graph/tenant/resolvers/CommentReleasedPayload.ts rename to src/core/server/graph/resolvers/CommentReleasedPayload.ts index 8ccd84300..aa5666b6f 100644 --- a/src/core/server/graph/tenant/resolvers/CommentReleasedPayload.ts +++ b/src/core/server/graph/resolvers/CommentReleasedPayload.ts @@ -1,4 +1,4 @@ -import { GQLCommentReleasedPayloadTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLCommentReleasedPayloadTypeResolver } from "coral-server/graph/schema/__generated__/types"; import { maybeLoadOnlyID } from "./Comment"; import { CommentReleasedInput } from "./Subscription/commentReleased"; diff --git a/src/core/server/graph/tenant/resolvers/CommentReplyCreatedPayload.ts b/src/core/server/graph/resolvers/CommentReplyCreatedPayload.ts similarity index 88% rename from src/core/server/graph/tenant/resolvers/CommentReplyCreatedPayload.ts rename to src/core/server/graph/resolvers/CommentReplyCreatedPayload.ts index 2fb51ddc6..2758c800d 100644 --- a/src/core/server/graph/tenant/resolvers/CommentReplyCreatedPayload.ts +++ b/src/core/server/graph/resolvers/CommentReplyCreatedPayload.ts @@ -1,4 +1,4 @@ -import { GQLCommentReplyCreatedPayloadTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLCommentReplyCreatedPayloadTypeResolver } from "coral-server/graph/schema/__generated__/types"; import { maybeLoadOnlyID } from "./Comment"; import { CommentReplyCreatedInput } from "./Subscription/commentReplyCreated"; diff --git a/src/core/server/graph/tenant/resolvers/CommentRevision.ts b/src/core/server/graph/resolvers/CommentRevision.ts similarity index 94% rename from src/core/server/graph/tenant/resolvers/CommentRevision.ts rename to src/core/server/graph/resolvers/CommentRevision.ts index 68c0e3128..7c01ef6bf 100644 --- a/src/core/server/graph/tenant/resolvers/CommentRevision.ts +++ b/src/core/server/graph/resolvers/CommentRevision.ts @@ -1,4 +1,4 @@ -import { GQLCommentRevisionTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLCommentRevisionTypeResolver } from "coral-server/graph/schema/__generated__/types"; import { decodeActionCounts } from "coral-server/models/action/comment"; import { Comment, Revision } from "coral-server/models/comment"; diff --git a/src/core/server/graph/tenant/resolvers/CommentStatusUpdatedPayload.ts b/src/core/server/graph/resolvers/CommentStatusUpdatedPayload.ts similarity index 91% rename from src/core/server/graph/tenant/resolvers/CommentStatusUpdatedPayload.ts rename to src/core/server/graph/resolvers/CommentStatusUpdatedPayload.ts index a880e2ca6..60cb92006 100644 --- a/src/core/server/graph/tenant/resolvers/CommentStatusUpdatedPayload.ts +++ b/src/core/server/graph/resolvers/CommentStatusUpdatedPayload.ts @@ -1,4 +1,4 @@ -import { GQLCommentStatusUpdatedPayloadTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLCommentStatusUpdatedPayloadTypeResolver } from "coral-server/graph/schema/__generated__/types"; import { maybeLoadOnlyID } from "./Comment"; import { CommentStatusUpdatedInput } from "./Subscription/commentStatusUpdated"; diff --git a/src/core/server/graph/tenant/resolvers/DisableCommenting.ts b/src/core/server/graph/resolvers/DisableCommenting.ts similarity index 94% rename from src/core/server/graph/tenant/resolvers/DisableCommenting.ts rename to src/core/server/graph/resolvers/DisableCommenting.ts index 6eb053918..c8f122942 100644 --- a/src/core/server/graph/tenant/resolvers/DisableCommenting.ts +++ b/src/core/server/graph/resolvers/DisableCommenting.ts @@ -1,4 +1,4 @@ -import { GQLDisableCommentingTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLDisableCommentingTypeResolver } from "coral-server/graph/schema/__generated__/types"; import * as settings from "coral-server/models/settings"; import { translate } from "coral-server/services/i18n"; diff --git a/src/core/server/graph/tenant/resolvers/FacebookAuthIntegration.ts b/src/core/server/graph/resolvers/FacebookAuthIntegration.ts similarity index 86% rename from src/core/server/graph/tenant/resolvers/FacebookAuthIntegration.ts rename to src/core/server/graph/resolvers/FacebookAuthIntegration.ts index d26d6e149..a734b2c72 100644 --- a/src/core/server/graph/tenant/resolvers/FacebookAuthIntegration.ts +++ b/src/core/server/graph/resolvers/FacebookAuthIntegration.ts @@ -1,7 +1,7 @@ import { GQLFacebookAuthIntegration, GQLFacebookAuthIntegrationTypeResolver, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import { reconstructTenantURLResolver } from "./util"; diff --git a/src/core/server/graph/tenant/resolvers/FeatureCommentPayload.ts b/src/core/server/graph/resolvers/FeatureCommentPayload.ts similarity index 85% rename from src/core/server/graph/tenant/resolvers/FeatureCommentPayload.ts rename to src/core/server/graph/resolvers/FeatureCommentPayload.ts index 9bc33dfc5..64c2e76e0 100644 --- a/src/core/server/graph/tenant/resolvers/FeatureCommentPayload.ts +++ b/src/core/server/graph/resolvers/FeatureCommentPayload.ts @@ -1,4 +1,4 @@ -import { GQLFeatureCommentPayloadTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLFeatureCommentPayloadTypeResolver } from "coral-server/graph/schema/__generated__/types"; import { moderationQueuesResolver } from "./ModerationQueues"; diff --git a/src/core/server/graph/tenant/resolvers/Flag.ts b/src/core/server/graph/resolvers/Flag.ts similarity index 90% rename from src/core/server/graph/tenant/resolvers/Flag.ts rename to src/core/server/graph/resolvers/Flag.ts index ad8b985bd..9db1563f5 100644 --- a/src/core/server/graph/tenant/resolvers/Flag.ts +++ b/src/core/server/graph/resolvers/Flag.ts @@ -1,7 +1,7 @@ import { GQLCOMMENT_FLAG_REASON, GQLFlagTypeResolver, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import * as actions from "coral-server/models/action/comment"; export const Flag: GQLFlagTypeResolver = { diff --git a/src/core/server/graph/tenant/resolvers/GoogleAuthIntegration.ts b/src/core/server/graph/resolvers/GoogleAuthIntegration.ts similarity index 85% rename from src/core/server/graph/tenant/resolvers/GoogleAuthIntegration.ts rename to src/core/server/graph/resolvers/GoogleAuthIntegration.ts index 8ce12c5bc..e6936a5df 100644 --- a/src/core/server/graph/tenant/resolvers/GoogleAuthIntegration.ts +++ b/src/core/server/graph/resolvers/GoogleAuthIntegration.ts @@ -1,7 +1,7 @@ import { GQLGoogleAuthIntegration, GQLGoogleAuthIntegrationTypeResolver, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import { reconstructTenantURLResolver } from "./util"; diff --git a/src/core/server/graph/tenant/resolvers/Invite.ts b/src/core/server/graph/resolvers/Invite.ts similarity index 68% rename from src/core/server/graph/tenant/resolvers/Invite.ts rename to src/core/server/graph/resolvers/Invite.ts index bf03813c9..a3e5f2682 100644 --- a/src/core/server/graph/tenant/resolvers/Invite.ts +++ b/src/core/server/graph/resolvers/Invite.ts @@ -1,4 +1,4 @@ -import { GQLInviteTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLInviteTypeResolver } from "coral-server/graph/schema/__generated__/types"; import * as invite from "coral-server/models/invite"; export const Invite: GQLInviteTypeResolver = { diff --git a/src/core/server/graph/tenant/resolvers/LiveConfiguration.ts b/src/core/server/graph/resolvers/LiveConfiguration.ts similarity index 94% rename from src/core/server/graph/tenant/resolvers/LiveConfiguration.ts rename to src/core/server/graph/resolvers/LiveConfiguration.ts index 746e0af85..6848a124c 100644 --- a/src/core/server/graph/tenant/resolvers/LiveConfiguration.ts +++ b/src/core/server/graph/resolvers/LiveConfiguration.ts @@ -1,6 +1,6 @@ import { isUndefined } from "lodash"; -import { GQLLiveConfigurationTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLLiveConfigurationTypeResolver } from "coral-server/graph/schema/__generated__/types"; import * as settings from "coral-server/models/settings"; export type LiveConfigurationInput = settings.LiveConfiguration; diff --git a/src/core/server/graph/tenant/resolvers/ModerationQueue.ts b/src/core/server/graph/resolvers/ModerationQueue.ts similarity index 100% rename from src/core/server/graph/tenant/resolvers/ModerationQueue.ts rename to src/core/server/graph/resolvers/ModerationQueue.ts diff --git a/src/core/server/graph/tenant/resolvers/ModerationQueues.ts b/src/core/server/graph/resolvers/ModerationQueues.ts similarity index 96% rename from src/core/server/graph/tenant/resolvers/ModerationQueues.ts rename to src/core/server/graph/resolvers/ModerationQueues.ts index 1a246dfa6..7f6e14a0b 100644 --- a/src/core/server/graph/tenant/resolvers/ModerationQueues.ts +++ b/src/core/server/graph/resolvers/ModerationQueues.ts @@ -1,9 +1,3 @@ -import { - ApproveCommentPayloadToModerationQueuesResolver, - GQLModerationQueuesTypeResolver, - QueryToModerationQueuesResolver, - RejectCommentPayloadToModerationQueuesResolver, -} from "coral-server/graph/tenant/schema/__generated__/types"; import { CommentConnectionInput } from "coral-server/models/comment"; import { FilterQuery } from "coral-server/models/helpers"; import { @@ -16,7 +10,14 @@ import { UNMODERATED_STATUSES, } from "coral-server/services/comments/moderation/counts"; -import TenantContext from "../context"; +import { + ApproveCommentPayloadToModerationQueuesResolver, + GQLModerationQueuesTypeResolver, + QueryToModerationQueuesResolver, + RejectCommentPayloadToModerationQueuesResolver, +} from "coral-server/graph/schema/__generated__/types"; + +import GraphContext from "../context"; import { ModerationQueueInput } from "./ModerationQueue"; interface ModerationQueuesInput { @@ -70,7 +71,7 @@ export const storyModerationInputResolver = ( export const sharedModerationInputResolver = async ( source: any, args: any, - ctx: TenantContext + ctx: GraphContext ): Promise => ({ // We don't need to filter the connection, as this is tenant wide (tenant // filtering is completed at the model layer). diff --git a/src/core/server/graph/tenant/resolvers/ModeratorNote.ts b/src/core/server/graph/resolvers/ModeratorNote.ts similarity index 91% rename from src/core/server/graph/tenant/resolvers/ModeratorNote.ts rename to src/core/server/graph/resolvers/ModeratorNote.ts index bd7216822..344777dda 100644 --- a/src/core/server/graph/tenant/resolvers/ModeratorNote.ts +++ b/src/core/server/graph/resolvers/ModeratorNote.ts @@ -1,4 +1,4 @@ -import { GQLModeratorNoteTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLModeratorNoteTypeResolver } from "coral-server/graph/schema/__generated__/types"; import * as user from "coral-server/models/user"; export const ModeratorNote: Required< diff --git a/src/core/server/graph/tenant/resolvers/Mutation.ts b/src/core/server/graph/resolvers/Mutation.ts similarity index 98% rename from src/core/server/graph/tenant/resolvers/Mutation.ts rename to src/core/server/graph/resolvers/Mutation.ts index 59d2e7b11..d45735fe9 100644 --- a/src/core/server/graph/tenant/resolvers/Mutation.ts +++ b/src/core/server/graph/resolvers/Mutation.ts @@ -1,4 +1,4 @@ -import { GQLMutationTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLMutationTypeResolver } from "coral-server/graph/schema/__generated__/types"; // TODO: (wyattjoh) add rate limiting to these edges diff --git a/src/core/server/graph/tenant/resolvers/OIDCAuthIntegration.ts b/src/core/server/graph/resolvers/OIDCAuthIntegration.ts similarity index 85% rename from src/core/server/graph/tenant/resolvers/OIDCAuthIntegration.ts rename to src/core/server/graph/resolvers/OIDCAuthIntegration.ts index a86ec5911..1e7bbe0dd 100644 --- a/src/core/server/graph/tenant/resolvers/OIDCAuthIntegration.ts +++ b/src/core/server/graph/resolvers/OIDCAuthIntegration.ts @@ -1,7 +1,7 @@ import { GQLOIDCAuthIntegration, GQLOIDCAuthIntegrationTypeResolver, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import { reconstructTenantURLResolver } from "./util"; diff --git a/src/core/server/graph/tenant/resolvers/PremodStatus.ts b/src/core/server/graph/resolvers/PremodStatus.ts similarity index 92% rename from src/core/server/graph/tenant/resolvers/PremodStatus.ts rename to src/core/server/graph/resolvers/PremodStatus.ts index c2522a38b..9131ec6b0 100644 --- a/src/core/server/graph/tenant/resolvers/PremodStatus.ts +++ b/src/core/server/graph/resolvers/PremodStatus.ts @@ -1,4 +1,4 @@ -import { GQLPremodStatusTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLPremodStatusTypeResolver } from "coral-server/graph/schema/__generated__/types"; import * as user from "coral-server/models/user"; export type PremodStatusInput = user.ConsolidatedPremodStatus & { diff --git a/src/core/server/graph/tenant/resolvers/PremodStatusHistory.ts b/src/core/server/graph/resolvers/PremodStatusHistory.ts similarity index 91% rename from src/core/server/graph/tenant/resolvers/PremodStatusHistory.ts rename to src/core/server/graph/resolvers/PremodStatusHistory.ts index 44d8557a9..249e90624 100644 --- a/src/core/server/graph/tenant/resolvers/PremodStatusHistory.ts +++ b/src/core/server/graph/resolvers/PremodStatusHistory.ts @@ -1,4 +1,4 @@ -import { GQLPremodStatusHistoryTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLPremodStatusHistoryTypeResolver } from "coral-server/graph/schema/__generated__/types"; import * as user from "coral-server/models/user"; export const PremodStatusHistory: Required< diff --git a/src/core/server/graph/tenant/resolvers/Profile.ts b/src/core/server/graph/resolvers/Profile.ts similarity index 85% rename from src/core/server/graph/tenant/resolvers/Profile.ts rename to src/core/server/graph/resolvers/Profile.ts index 5089b9cd6..b6d9a0eef 100644 --- a/src/core/server/graph/tenant/resolvers/Profile.ts +++ b/src/core/server/graph/resolvers/Profile.ts @@ -1,4 +1,4 @@ -import { GQLProfileTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLProfileTypeResolver } from "coral-server/graph/schema/__generated__/types"; import * as user from "coral-server/models/user"; const resolveType: GQLProfileTypeResolver = profile => { diff --git a/src/core/server/graph/tenant/resolvers/Query.ts b/src/core/server/graph/resolvers/Query.ts similarity index 92% rename from src/core/server/graph/tenant/resolvers/Query.ts rename to src/core/server/graph/resolvers/Query.ts index a840096bd..1f6fca79d 100644 --- a/src/core/server/graph/tenant/resolvers/Query.ts +++ b/src/core/server/graph/resolvers/Query.ts @@ -1,4 +1,4 @@ -import { GQLQueryTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLQueryTypeResolver } from "coral-server/graph/schema/__generated__/types"; import { moderationQueuesResolver } from "./ModerationQueues"; diff --git a/src/core/server/graph/tenant/resolvers/RecentCommentHistory.ts b/src/core/server/graph/resolvers/RecentCommentHistory.ts similarity index 88% rename from src/core/server/graph/tenant/resolvers/RecentCommentHistory.ts rename to src/core/server/graph/resolvers/RecentCommentHistory.ts index 5e2f8ed74..0aaf4fb78 100644 --- a/src/core/server/graph/tenant/resolvers/RecentCommentHistory.ts +++ b/src/core/server/graph/resolvers/RecentCommentHistory.ts @@ -1,4 +1,4 @@ -import { GQLRecentCommentHistoryTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLRecentCommentHistoryTypeResolver } from "coral-server/graph/schema/__generated__/types"; export interface RecentCommentHistoryInput { userID: string; diff --git a/src/core/server/graph/tenant/resolvers/RejectCommentPayload.ts b/src/core/server/graph/resolvers/RejectCommentPayload.ts similarity index 85% rename from src/core/server/graph/tenant/resolvers/RejectCommentPayload.ts rename to src/core/server/graph/resolvers/RejectCommentPayload.ts index 60008713d..4d786288a 100644 --- a/src/core/server/graph/tenant/resolvers/RejectCommentPayload.ts +++ b/src/core/server/graph/resolvers/RejectCommentPayload.ts @@ -1,4 +1,4 @@ -import { GQLRejectCommentPayloadTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLRejectCommentPayloadTypeResolver } from "coral-server/graph/schema/__generated__/types"; import { moderationQueuesResolver } from "./ModerationQueues"; diff --git a/src/core/server/graph/tenant/resolvers/SSOAuthIntegration.ts b/src/core/server/graph/resolvers/SSOAuthIntegration.ts similarity index 94% rename from src/core/server/graph/tenant/resolvers/SSOAuthIntegration.ts rename to src/core/server/graph/resolvers/SSOAuthIntegration.ts index 09e0ef6ca..117db08db 100644 --- a/src/core/server/graph/tenant/resolvers/SSOAuthIntegration.ts +++ b/src/core/server/graph/resolvers/SSOAuthIntegration.ts @@ -1,6 +1,6 @@ import * as settings from "coral-server/models/settings"; -import { GQLSSOAuthIntegrationTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLSSOAuthIntegrationTypeResolver } from "coral-server/graph/schema/__generated__/types"; function getActiveSSOKey(keys: settings.SSOKey[]) { // Any key that has been rotated cannot be the active key. diff --git a/src/core/server/graph/tenant/resolvers/Settings.ts b/src/core/server/graph/resolvers/Settings.ts similarity index 90% rename from src/core/server/graph/tenant/resolvers/Settings.ts rename to src/core/server/graph/resolvers/Settings.ts index f1cf38473..66bbe89a5 100644 --- a/src/core/server/graph/tenant/resolvers/Settings.ts +++ b/src/core/server/graph/resolvers/Settings.ts @@ -3,7 +3,7 @@ import { Tenant } from "coral-server/models/tenant"; import { GQLFEATURE_FLAG, GQLSettingsTypeResolver, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; const filterValidFeatureFlags = () => { // Compute the valid flags based on this enum. diff --git a/src/core/server/graph/tenant/resolvers/SlackConfiguration.ts b/src/core/server/graph/resolvers/SlackConfiguration.ts similarity index 83% rename from src/core/server/graph/tenant/resolvers/SlackConfiguration.ts rename to src/core/server/graph/resolvers/SlackConfiguration.ts index 530a8ffa3..a0e48c0eb 100644 --- a/src/core/server/graph/tenant/resolvers/SlackConfiguration.ts +++ b/src/core/server/graph/resolvers/SlackConfiguration.ts @@ -1,7 +1,7 @@ import { GQLSlackConfiguration, GQLSlackConfigurationTypeResolver, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; export const SlackConfiguration: GQLSlackConfigurationTypeResolver< GQLSlackConfiguration diff --git a/src/core/server/graph/tenant/resolvers/Story.ts b/src/core/server/graph/resolvers/Story.ts similarity index 88% rename from src/core/server/graph/tenant/resolvers/Story.ts rename to src/core/server/graph/resolvers/Story.ts index 1a5167d97..482678df3 100644 --- a/src/core/server/graph/tenant/resolvers/Story.ts +++ b/src/core/server/graph/resolvers/Story.ts @@ -4,15 +4,15 @@ import { GQLSTORY_STATUS, GQLStoryTypeResolver, GQLTAG, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import { decodeActionCounts } from "coral-server/models/action/comment"; import * as story from "coral-server/models/story"; -import TenantContext from "../context"; +import GraphContext from "../context"; import { CommentCountsInput } from "./CommentCounts"; import { storyModerationInputResolver } from "./ModerationQueues"; -const isStoryClosed = (s: story.Story, ctx: TenantContext) => { +const isStoryClosed = (s: story.Story, ctx: GraphContext) => { const closedAt = story.getStoryClosedAt(ctx.tenant, s) || null; return !!closedAt && new Date() >= closedAt; }; diff --git a/src/core/server/graph/tenant/resolvers/StorySettings.ts b/src/core/server/graph/resolvers/StorySettings.ts similarity index 100% rename from src/core/server/graph/tenant/resolvers/StorySettings.ts rename to src/core/server/graph/resolvers/StorySettings.ts diff --git a/src/core/server/graph/tenant/resolvers/Subscription/commentCreated.ts b/src/core/server/graph/resolvers/Subscription/commentCreated.ts similarity index 94% rename from src/core/server/graph/tenant/resolvers/Subscription/commentCreated.ts rename to src/core/server/graph/resolvers/Subscription/commentCreated.ts index 7a51f32a3..aae4e2a6a 100644 --- a/src/core/server/graph/tenant/resolvers/Subscription/commentCreated.ts +++ b/src/core/server/graph/resolvers/Subscription/commentCreated.ts @@ -1,4 +1,4 @@ -import { SubscriptionToCommentCreatedResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { SubscriptionToCommentCreatedResolver } from "coral-server/graph/schema/__generated__/types"; import { createIterator } from "./helpers"; import { diff --git a/src/core/server/graph/tenant/resolvers/Subscription/commentEnteredModerationQueue.ts b/src/core/server/graph/resolvers/Subscription/commentEnteredModerationQueue.ts similarity index 94% rename from src/core/server/graph/tenant/resolvers/Subscription/commentEnteredModerationQueue.ts rename to src/core/server/graph/resolvers/Subscription/commentEnteredModerationQueue.ts index 1f7030c35..d946eb9e7 100644 --- a/src/core/server/graph/tenant/resolvers/Subscription/commentEnteredModerationQueue.ts +++ b/src/core/server/graph/resolvers/Subscription/commentEnteredModerationQueue.ts @@ -1,7 +1,7 @@ import { GQLMODERATION_QUEUE, SubscriptionToCommentEnteredModerationQueueResolver, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import { createIterator } from "./helpers"; import { diff --git a/src/core/server/graph/tenant/resolvers/Subscription/commentFeatured.ts b/src/core/server/graph/resolvers/Subscription/commentFeatured.ts similarity index 94% rename from src/core/server/graph/tenant/resolvers/Subscription/commentFeatured.ts rename to src/core/server/graph/resolvers/Subscription/commentFeatured.ts index 5a146b3cb..141524bce 100644 --- a/src/core/server/graph/tenant/resolvers/Subscription/commentFeatured.ts +++ b/src/core/server/graph/resolvers/Subscription/commentFeatured.ts @@ -1,4 +1,4 @@ -import { SubscriptionToCommentFeaturedResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { SubscriptionToCommentFeaturedResolver } from "coral-server/graph/schema/__generated__/types"; import { createIterator } from "./helpers"; import { diff --git a/src/core/server/graph/tenant/resolvers/Subscription/commentLeftModerationQueue.ts b/src/core/server/graph/resolvers/Subscription/commentLeftModerationQueue.ts similarity index 94% rename from src/core/server/graph/tenant/resolvers/Subscription/commentLeftModerationQueue.ts rename to src/core/server/graph/resolvers/Subscription/commentLeftModerationQueue.ts index 4e1367e20..a834a0aba 100644 --- a/src/core/server/graph/tenant/resolvers/Subscription/commentLeftModerationQueue.ts +++ b/src/core/server/graph/resolvers/Subscription/commentLeftModerationQueue.ts @@ -1,7 +1,7 @@ import { GQLMODERATION_QUEUE, SubscriptionToCommentLeftModerationQueueResolver, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import { createIterator } from "./helpers"; import { diff --git a/src/core/server/graph/tenant/resolvers/Subscription/commentReleased.ts b/src/core/server/graph/resolvers/Subscription/commentReleased.ts similarity index 94% rename from src/core/server/graph/tenant/resolvers/Subscription/commentReleased.ts rename to src/core/server/graph/resolvers/Subscription/commentReleased.ts index 4e420ccea..8649fe584 100644 --- a/src/core/server/graph/tenant/resolvers/Subscription/commentReleased.ts +++ b/src/core/server/graph/resolvers/Subscription/commentReleased.ts @@ -1,4 +1,4 @@ -import { SubscriptionToCommentReleasedResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { SubscriptionToCommentReleasedResolver } from "coral-server/graph/schema/__generated__/types"; import { createIterator } from "./helpers"; import { diff --git a/src/core/server/graph/tenant/resolvers/Subscription/commentReplyCreated.ts b/src/core/server/graph/resolvers/Subscription/commentReplyCreated.ts similarity index 93% rename from src/core/server/graph/tenant/resolvers/Subscription/commentReplyCreated.ts rename to src/core/server/graph/resolvers/Subscription/commentReplyCreated.ts index 012eb758d..b4493fe4f 100644 --- a/src/core/server/graph/tenant/resolvers/Subscription/commentReplyCreated.ts +++ b/src/core/server/graph/resolvers/Subscription/commentReplyCreated.ts @@ -1,4 +1,4 @@ -import { SubscriptionToCommentReplyCreatedResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { SubscriptionToCommentReplyCreatedResolver } from "coral-server/graph/schema/__generated__/types"; import { createIterator } from "./helpers"; import { diff --git a/src/core/server/graph/tenant/resolvers/Subscription/commentStatusUpdated.ts b/src/core/server/graph/resolvers/Subscription/commentStatusUpdated.ts similarity index 93% rename from src/core/server/graph/tenant/resolvers/Subscription/commentStatusUpdated.ts rename to src/core/server/graph/resolvers/Subscription/commentStatusUpdated.ts index 1804c69d2..dcd870c84 100644 --- a/src/core/server/graph/tenant/resolvers/Subscription/commentStatusUpdated.ts +++ b/src/core/server/graph/resolvers/Subscription/commentStatusUpdated.ts @@ -1,7 +1,7 @@ import { GQLCOMMENT_STATUS, SubscriptionToCommentStatusUpdatedResolver, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import { createIterator } from "./helpers"; import { diff --git a/src/core/server/graph/tenant/resolvers/Subscription/helpers.ts b/src/core/server/graph/resolvers/Subscription/helpers.ts similarity index 92% rename from src/core/server/graph/tenant/resolvers/Subscription/helpers.ts rename to src/core/server/graph/resolvers/Subscription/helpers.ts index 1d1ff7de0..697dcaffd 100644 --- a/src/core/server/graph/tenant/resolvers/Subscription/helpers.ts +++ b/src/core/server/graph/resolvers/Subscription/helpers.ts @@ -1,7 +1,7 @@ import { GraphQLResolveInfo } from "graphql"; import { withFilter } from "graphql-subscriptions"; -import TenantContext from "../../context"; +import GraphContext from "../../context"; import { SUBSCRIPTION_CHANNELS, SubscriptionPayload } from "./types"; type FilterFn = ( @@ -14,7 +14,7 @@ type FilterFn = ( type Resolver = ( source: TParent, args: TArgs, - ctx: TenantContext, + ctx: GraphContext, info: GraphQLResolveInfo ) => TResult; @@ -56,7 +56,7 @@ export function createSubscriptionChannelName( export function defaultFilterFn( source: TParent, args: TArgs, - ctx: TenantContext + ctx: GraphContext ): boolean { if (source.clientID && ctx.clientID && source.clientID === ctx.clientID) { return false; @@ -71,8 +71,8 @@ export function defaultFilterFn( * prevent double responses. */ export function createFilterFn( - filter?: FilterFn -): FilterFn { + filter?: FilterFn +): FilterFn { return filter ? // Combine the filters, preferring the defaultFilterFn first. (source, args, ctx, info) => { @@ -86,7 +86,7 @@ export function createFilterFn( } export interface CreateIteratorInput { - filter?: FilterFn; + filter?: FilterFn; } export function createIterator< diff --git a/src/core/server/graph/tenant/resolvers/Subscription/index.ts b/src/core/server/graph/resolvers/Subscription/index.ts similarity index 95% rename from src/core/server/graph/tenant/resolvers/Subscription/index.ts rename to src/core/server/graph/resolvers/Subscription/index.ts index e7283dc09..f2bb56c81 100644 --- a/src/core/server/graph/tenant/resolvers/Subscription/index.ts +++ b/src/core/server/graph/resolvers/Subscription/index.ts @@ -1,4 +1,4 @@ -import { GQLSubscriptionTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLSubscriptionTypeResolver } from "coral-server/graph/schema/__generated__/types"; import { commentCreated } from "./commentCreated"; import { commentEnteredModerationQueue } from "./commentEnteredModerationQueue"; diff --git a/src/core/server/graph/tenant/resolvers/Subscription/types.ts b/src/core/server/graph/resolvers/Subscription/types.ts similarity index 100% rename from src/core/server/graph/tenant/resolvers/Subscription/types.ts rename to src/core/server/graph/resolvers/Subscription/types.ts diff --git a/src/core/server/graph/tenant/resolvers/SuspensionStatus.ts b/src/core/server/graph/resolvers/SuspensionStatus.ts similarity index 92% rename from src/core/server/graph/tenant/resolvers/SuspensionStatus.ts rename to src/core/server/graph/resolvers/SuspensionStatus.ts index efb8f4dc0..17b56e436 100644 --- a/src/core/server/graph/tenant/resolvers/SuspensionStatus.ts +++ b/src/core/server/graph/resolvers/SuspensionStatus.ts @@ -1,4 +1,4 @@ -import { GQLSuspensionStatusTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLSuspensionStatusTypeResolver } from "coral-server/graph/schema/__generated__/types"; import * as user from "coral-server/models/user"; export type SuspensionStatusInput = user.ConsolidatedSuspensionStatus & { diff --git a/src/core/server/graph/tenant/resolvers/SuspensionStatusHistory.ts b/src/core/server/graph/resolvers/SuspensionStatusHistory.ts similarity index 94% rename from src/core/server/graph/tenant/resolvers/SuspensionStatusHistory.ts rename to src/core/server/graph/resolvers/SuspensionStatusHistory.ts index a48d4c6f3..f7f25170d 100644 --- a/src/core/server/graph/tenant/resolvers/SuspensionStatusHistory.ts +++ b/src/core/server/graph/resolvers/SuspensionStatusHistory.ts @@ -1,4 +1,4 @@ -import { GQLSuspensionStatusHistoryTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLSuspensionStatusHistoryTypeResolver } from "coral-server/graph/schema/__generated__/types"; import * as user from "coral-server/models/user"; export const SuspensionStatusHistory: Required< diff --git a/src/core/server/graph/tenant/resolvers/Tag.ts b/src/core/server/graph/resolvers/Tag.ts similarity index 76% rename from src/core/server/graph/tenant/resolvers/Tag.ts rename to src/core/server/graph/resolvers/Tag.ts index 13523901d..e6baf15d7 100644 --- a/src/core/server/graph/tenant/resolvers/Tag.ts +++ b/src/core/server/graph/resolvers/Tag.ts @@ -1,4 +1,4 @@ -import { GQLTagTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLTagTypeResolver } from "coral-server/graph/schema/__generated__/types"; import { CommentTag } from "coral-server/models/comment/tag"; export const Tag: GQLTagTypeResolver = { diff --git a/src/core/server/graph/tenant/resolvers/User.ts b/src/core/server/graph/resolvers/User.ts similarity index 92% rename from src/core/server/graph/tenant/resolvers/User.ts rename to src/core/server/graph/resolvers/User.ts index 5372a1e0a..ccf878d94 100644 --- a/src/core/server/graph/tenant/resolvers/User.ts +++ b/src/core/server/graph/resolvers/User.ts @@ -1,10 +1,10 @@ import { GraphQLResolveInfo } from "graphql"; -import TenantContext from "coral-server/graph/tenant/context"; +import GraphContext from "coral-server/graph/context"; import { GQLUser, GQLUserTypeResolver, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import * as user from "coral-server/models/user"; import { roleIsStaff } from "coral-server/models/user/helpers"; @@ -13,7 +13,7 @@ import { UserStatusInput } from "./UserStatus"; import { getRequestedFields } from "./util"; const maybeLoadOnlyIgnoredUserID = ( - ctx: TenantContext, + ctx: GraphContext, info: GraphQLResolveInfo, users?: user.IgnoredUser[] ) => { diff --git a/src/core/server/graph/tenant/resolvers/UserStatus.ts b/src/core/server/graph/resolvers/UserStatus.ts similarity index 96% rename from src/core/server/graph/tenant/resolvers/UserStatus.ts rename to src/core/server/graph/resolvers/UserStatus.ts index 72b9ce217..5c616929d 100644 --- a/src/core/server/graph/tenant/resolvers/UserStatus.ts +++ b/src/core/server/graph/resolvers/UserStatus.ts @@ -1,7 +1,7 @@ import { GQLUSER_STATUS, GQLUserStatusTypeResolver, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import * as user from "coral-server/models/user"; import { BanStatusInput } from "./BanStatus"; diff --git a/src/core/server/graph/tenant/resolvers/UsernameHistory.ts b/src/core/server/graph/resolvers/UsernameHistory.ts similarity index 92% rename from src/core/server/graph/tenant/resolvers/UsernameHistory.ts rename to src/core/server/graph/resolvers/UsernameHistory.ts index 46622531d..575164a76 100644 --- a/src/core/server/graph/tenant/resolvers/UsernameHistory.ts +++ b/src/core/server/graph/resolvers/UsernameHistory.ts @@ -1,4 +1,4 @@ -import { GQLUsernameHistoryTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLUsernameHistoryTypeResolver } from "coral-server/graph/schema/__generated__/types"; import * as user from "coral-server/models/user"; export const UsernameHistory: Required< diff --git a/src/core/server/graph/tenant/resolvers/UsernameStatus.ts b/src/core/server/graph/resolvers/UsernameStatus.ts similarity index 91% rename from src/core/server/graph/tenant/resolvers/UsernameStatus.ts rename to src/core/server/graph/resolvers/UsernameStatus.ts index e5150b2a5..5bd335524 100644 --- a/src/core/server/graph/tenant/resolvers/UsernameStatus.ts +++ b/src/core/server/graph/resolvers/UsernameStatus.ts @@ -1,4 +1,4 @@ -import { GQLUsernameStatusTypeResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLUsernameStatusTypeResolver } from "coral-server/graph/schema/__generated__/types"; import * as user from "coral-server/models/user"; export type UsernameStatusInput = user.ConsolidatedUsernameStatus & { diff --git a/src/core/server/graph/tenant/resolvers/index.ts b/src/core/server/graph/resolvers/index.ts similarity index 92% rename from src/core/server/graph/tenant/resolvers/index.ts rename to src/core/server/graph/resolvers/index.ts index 97b57b9a5..941c1eff6 100644 --- a/src/core/server/graph/tenant/resolvers/index.ts +++ b/src/core/server/graph/resolvers/index.ts @@ -1,8 +1,8 @@ -import Cursor from "coral-server/graph/common/scalars/cursor"; -import Locale from "coral-server/graph/common/scalars/locale"; -import Time from "coral-server/graph/common/scalars/time"; +import Cursor from "coral-server/graph/scalars/cursor"; +import Locale from "coral-server/graph/scalars/locale"; +import Time from "coral-server/graph/scalars/time"; -import { GQLResolver } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLResolver } from "coral-server/graph/schema/__generated__/types"; import { ApproveCommentPayload } from "./ApproveCommentPayload"; import { AuthIntegrations } from "./AuthIntegrations"; diff --git a/src/core/server/graph/tenant/resolvers/util.ts b/src/core/server/graph/resolvers/util.ts similarity index 86% rename from src/core/server/graph/tenant/resolvers/util.ts rename to src/core/server/graph/resolvers/util.ts index 23c914c5c..328460c97 100644 --- a/src/core/server/graph/tenant/resolvers/util.ts +++ b/src/core/server/graph/resolvers/util.ts @@ -4,7 +4,7 @@ import { pull } from "lodash"; import { reconstructTenantURL } from "coral-server/app/url"; -import TenantContext from "../context"; +import GraphContext from "../context"; /** * getRequestedFields returns the fields in an array that are being queried for. @@ -16,6 +16,6 @@ export function getRequestedFields(info: GraphQLResolveInfo) { } export function reconstructTenantURLResolver(path: string) { - return (parent: T, args: {}, ctx: TenantContext) => + return (parent: T, args: {}, ctx: GraphContext) => reconstructTenantURL(ctx.config, ctx.tenant, ctx.req, path); } diff --git a/src/core/server/graph/common/scalars/cursor.spec.ts b/src/core/server/graph/scalars/cursor.spec.ts similarity index 100% rename from src/core/server/graph/common/scalars/cursor.spec.ts rename to src/core/server/graph/scalars/cursor.spec.ts diff --git a/src/core/server/graph/common/scalars/cursor.ts b/src/core/server/graph/scalars/cursor.ts similarity index 100% rename from src/core/server/graph/common/scalars/cursor.ts rename to src/core/server/graph/scalars/cursor.ts diff --git a/src/core/server/graph/common/scalars/locale.spec.ts b/src/core/server/graph/scalars/locale.spec.ts similarity index 100% rename from src/core/server/graph/common/scalars/locale.spec.ts rename to src/core/server/graph/scalars/locale.spec.ts diff --git a/src/core/server/graph/common/scalars/locale.ts b/src/core/server/graph/scalars/locale.ts similarity index 100% rename from src/core/server/graph/common/scalars/locale.ts rename to src/core/server/graph/scalars/locale.ts diff --git a/src/core/server/graph/common/scalars/time.ts b/src/core/server/graph/scalars/time.ts similarity index 100% rename from src/core/server/graph/common/scalars/time.ts rename to src/core/server/graph/scalars/time.ts diff --git a/src/core/server/graph/tenant/schema/index.ts b/src/core/server/graph/schema/index.ts similarity index 65% rename from src/core/server/graph/tenant/schema/index.ts rename to src/core/server/graph/schema/index.ts index df717134a..181284548 100644 --- a/src/core/server/graph/tenant/schema/index.ts +++ b/src/core/server/graph/schema/index.ts @@ -5,10 +5,10 @@ import { } from "graphql-tools"; import { loadSchema } from "coral-common/graphql"; -import auth from "coral-server/graph/common/directives/auth"; -import constraint from "coral-server/graph/common/directives/constraint"; -import rate from "coral-server/graph/tenant/directives/rate"; -import resolvers from "coral-server/graph/tenant/resolvers"; +import auth from "coral-server/graph/directives/auth"; +import constraint from "coral-server/graph/directives/constraint"; +import rate from "coral-server/graph/directives/rate"; +import resolvers from "coral-server/graph/resolvers"; export default function getTenantSchema() { const schema = loadSchema("tenant", resolvers as IResolvers); diff --git a/src/core/server/graph/tenant/schema/schema.graphql b/src/core/server/graph/schema/schema.graphql similarity index 100% rename from src/core/server/graph/tenant/schema/schema.graphql rename to src/core/server/graph/schema/schema.graphql diff --git a/src/core/server/graph/tenant/schema/schema.spec.ts b/src/core/server/graph/schema/schema.spec.ts similarity index 91% rename from src/core/server/graph/tenant/schema/schema.spec.ts rename to src/core/server/graph/schema/schema.spec.ts index f35054a90..638cc5644 100644 --- a/src/core/server/graph/tenant/schema/schema.spec.ts +++ b/src/core/server/graph/schema/schema.spec.ts @@ -1,7 +1,7 @@ import { GQLCOMMENT_FLAG_REASON, GQLFlagReasonActionCounts, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; type ExtractKeys = { [P in keyof T]: P }[keyof T]; type A = ExtractKeys; diff --git a/src/core/server/graph/tenant/subscriptions/publisher.ts b/src/core/server/graph/subscriptions/publisher.ts similarity index 93% rename from src/core/server/graph/tenant/subscriptions/publisher.ts rename to src/core/server/graph/subscriptions/publisher.ts index faf1815c2..79e46fb27 100644 --- a/src/core/server/graph/tenant/subscriptions/publisher.ts +++ b/src/core/server/graph/subscriptions/publisher.ts @@ -1,7 +1,7 @@ import { RedisPubSub } from "graphql-redis-subscriptions"; -import { createSubscriptionChannelName } from "coral-server/graph/tenant/resolvers/Subscription/helpers"; -import { SUBSCRIPTION_INPUT } from "coral-server/graph/tenant/resolvers/Subscription/types"; +import { createSubscriptionChannelName } from "coral-server/graph/resolvers/Subscription/helpers"; +import { SUBSCRIPTION_INPUT } from "coral-server/graph/resolvers/Subscription/types"; import logger from "coral-server/logger"; import { NotifierQueue } from "coral-server/queue/tasks/notifier"; import { SlackPublisher } from "coral-server/services/slack/publisher"; diff --git a/src/core/server/graph/common/subscriptions/pubsub.ts b/src/core/server/graph/subscriptions/pubsub.ts similarity index 100% rename from src/core/server/graph/common/subscriptions/pubsub.ts rename to src/core/server/graph/subscriptions/pubsub.ts diff --git a/src/core/server/graph/tenant/subscriptions/server.ts b/src/core/server/graph/subscriptions/server.ts similarity index 92% rename from src/core/server/graph/tenant/subscriptions/server.ts rename to src/core/server/graph/subscriptions/server.ts index 2320009dd..19ccc1187 100644 --- a/src/core/server/graph/tenant/subscriptions/server.ts +++ b/src/core/server/graph/subscriptions/server.ts @@ -29,27 +29,23 @@ import { RawQueryNotAuthorized, TenantNotFoundError, } from "coral-server/errors"; -import { - enrichError, - logError, - logQuery, -} from "coral-server/graph/common/extensions"; -import { getOperationMetadata } from "coral-server/graph/common/extensions/helpers"; -import { getPersistedQuery } from "coral-server/graph/common/persisted"; +import { enrichError, logError, logQuery } from "coral-server/graph/extensions"; +import { getOperationMetadata } from "coral-server/graph/extensions/helpers"; +import { getPersistedQuery } from "coral-server/graph/persisted"; import logger from "coral-server/logger"; import { PersistedQuery } from "coral-server/models/queries"; import { hasStaffRole } from "coral-server/models/user/helpers"; import { extractTokenFromRequest } from "coral-server/services/jwt"; -import { GQLUSER_ROLE } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLUSER_ROLE } from "coral-server/graph/schema/__generated__/types"; -import TenantContext, { TenantContextOptions } from "../context"; +import GraphContext, { GraphContextOptions } from "../context"; type OnConnectFn = ( params: OperationMessagePayload, socket: any, context: ConnectionContext -) => Promise; +) => Promise; export function extractTokenFromWSRequest( connectionParams: OperationMessagePayload, @@ -79,7 +75,7 @@ export function extractClientID(connectionParams: OperationMessagePayload) { } export type OnConnectOptions = RequireProperty< - Omit, + Omit, "signingConfig" >; @@ -107,7 +103,7 @@ export function onConnect(options: OnConnectOptions): OnConnectFn { } // Create some new options to store the tenant context details inside. - const opts: TenantContextOptions = { + const opts: GraphContextOptions = { ...options, // Disable caching with this Context to ensure that every call (besides) // to the tenant, is not cached, and is instead fresh. @@ -145,7 +141,7 @@ export function onConnect(options: OnConnectOptions): OnConnectFn { opts.clientID = clientID; } - return new TenantContext(opts); + return new GraphContext(opts); } catch (err) { if (err instanceof LiveUpdatesDisabled) { logger.info({ err }, "websocket connection rejected"); @@ -174,7 +170,7 @@ export function formatResponse( ) { return ( value: ExecutionResult, - { context, query }: ExecutionParams + { context, query }: ExecutionParams ) => { // Parse the query in order to extract operation metadata. if (typeof query === "string") { @@ -220,7 +216,7 @@ export type OnOperationOptions = FormatResponseOptions & export function onOperation(options: OnOperationOptions) { return async ( message: OperationMessage, - params: ExecutionParams + params: ExecutionParams ) => { // Handle the payload if it is a persisted query. const persisted = await getPersistedQuery( diff --git a/src/core/server/graph/tenant/context.ts b/src/core/server/graph/tenant/context.ts deleted file mode 100644 index a9e16d650..000000000 --- a/src/core/server/graph/tenant/context.ts +++ /dev/null @@ -1,76 +0,0 @@ -import CommonContext, { - CommonContextOptions, -} from "coral-server/graph/common/context"; -import { - createPublisher, - Publisher, -} from "coral-server/graph/tenant/subscriptions/publisher"; -import logger from "coral-server/logger"; -import { Tenant } from "coral-server/models/tenant"; -import { User } from "coral-server/models/user"; -import { MailerQueue } from "coral-server/queue/tasks/mailer"; -import { NotifierQueue } from "coral-server/queue/tasks/notifier"; -import { ScraperQueue } from "coral-server/queue/tasks/scraper"; -import { JWTSigningConfig } from "coral-server/services/jwt"; -import createSlackPublisher from "coral-server/services/slack/publisher"; -import TenantCache from "coral-server/services/tenant/cache"; - -import loaders from "./loaders"; -import mutators from "./mutators"; - -export interface TenantContextOptions extends CommonContextOptions { - tenant: Tenant; - tenantCache: TenantCache; - mailerQueue: MailerQueue; - notifierQueue: NotifierQueue; - scraperQueue: ScraperQueue; - signingConfig?: JWTSigningConfig; - clientID?: string; -} - -export default class TenantContext extends CommonContext { - public readonly tenant: Tenant; - public readonly tenantCache: TenantCache; - - public readonly mailerQueue: MailerQueue; - public readonly scraperQueue: ScraperQueue; - public readonly publisher: Publisher; - public readonly user?: User; - public readonly signingConfig?: JWTSigningConfig; - public readonly clientID?: string; - public readonly loaders: ReturnType; - public readonly mutators: ReturnType; - - constructor({ - tenant, - logger: log = logger, - notifierQueue, - ...options - }: TenantContextOptions) { - super({ - ...options, - lang: tenant.locale, - logger: logger.child({ tenantID: tenant.id }, true), - }); - - this.tenant = tenant; - this.tenantCache = options.tenantCache; - this.scraperQueue = options.scraperQueue; - this.mailerQueue = options.mailerQueue; - this.signingConfig = options.signingConfig; - this.clientID = options.clientID; - this.publisher = createPublisher({ - pubsub: this.pubsub, - slackPublisher: createSlackPublisher( - this.mongo, - this.config, - this.tenant - ), - notifierQueue, - tenantID: this.tenant.id, - clientID: this.clientID, - }); - this.loaders = loaders(this); - this.mutators = mutators(this); - } -} diff --git a/src/core/server/index.ts b/src/core/server/index.ts index 756ab3516..0cfad477d 100644 --- a/src/core/server/index.ts +++ b/src/core/server/index.ts @@ -16,9 +16,9 @@ import { accessLogger, errorLogger } from "coral-server/app/middleware/logging"; import { notFoundMiddleware } from "coral-server/app/middleware/notFound"; import config, { Config } from "coral-server/config"; import startScheduledTasks, { ScheduledJobGroups } from "coral-server/cron"; -import { createPubSubClient } from "coral-server/graph/common/subscriptions/pubsub"; -import getTenantSchema from "coral-server/graph/tenant/schema"; -import { createSubscriptionServer } from "coral-server/graph/tenant/subscriptions/server"; +import getTenantSchema from "coral-server/graph/schema"; +import { createPubSubClient } from "coral-server/graph/subscriptions/pubsub"; +import { createSubscriptionServer } from "coral-server/graph/subscriptions/server"; import logger from "coral-server/logger"; import { createQueue, TaskQueue } from "coral-server/queue"; import { I18n } from "coral-server/services/i18n"; @@ -36,6 +36,7 @@ import { createRedisClient, } from "coral-server/services/redis"; import TenantCache from "coral-server/services/tenant/cache"; + import { isInstalled } from "./services/tenant"; export interface ServerOptions { diff --git a/src/core/server/models/action/comment.spec.ts b/src/core/server/models/action/comment.spec.ts index f69bc12b9..7ebda75d1 100644 --- a/src/core/server/models/action/comment.spec.ts +++ b/src/core/server/models/action/comment.spec.ts @@ -1,4 +1,4 @@ -import { GQLCOMMENT_FLAG_REASON } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLCOMMENT_FLAG_REASON } from "coral-server/graph/schema/__generated__/types"; import { ACTION_TYPE, CommentAction, diff --git a/src/core/server/models/action/comment.ts b/src/core/server/models/action/comment.ts index 7d8f1b149..8a01efb26 100644 --- a/src/core/server/models/action/comment.ts +++ b/src/core/server/models/action/comment.ts @@ -12,7 +12,7 @@ import { GQLDontAgreeActionCounts, GQLFlagActionCounts, GQLReactionActionCounts, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import logger from "coral-server/logger"; import { Connection, diff --git a/src/core/server/models/action/moderation/comment.ts b/src/core/server/models/action/moderation/comment.ts index c6071031f..7f411ed03 100644 --- a/src/core/server/models/action/moderation/comment.ts +++ b/src/core/server/models/action/moderation/comment.ts @@ -2,7 +2,7 @@ import { Db } from "mongodb"; import uuid from "uuid"; import { Omit, Sub } from "coral-common/types"; -import { GQLCOMMENT_STATUS } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLCOMMENT_STATUS } from "coral-server/graph/schema/__generated__/types"; import { Connection, ConnectionInput, diff --git a/src/core/server/models/comment/comment.ts b/src/core/server/models/comment/comment.ts index 6192a3a59..cda32ec29 100644 --- a/src/core/server/models/comment/comment.ts +++ b/src/core/server/models/comment/comment.ts @@ -11,7 +11,7 @@ import { GQLCOMMENT_STATUS, GQLCommentTagCounts, GQLTAG, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import logger from "coral-server/logger"; import { EncodedCommentActionCounts, diff --git a/src/core/server/models/comment/constants.ts b/src/core/server/models/comment/constants.ts index b64d7a8fb..3df208cc0 100644 --- a/src/core/server/models/comment/constants.ts +++ b/src/core/server/models/comment/constants.ts @@ -1,4 +1,4 @@ -import { GQLCOMMENT_STATUS } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLCOMMENT_STATUS } from "coral-server/graph/schema/__generated__/types"; /** * PUBLISHED_STATUSES are the comment statuses that a Comment may have that would diff --git a/src/core/server/models/comment/helpers.ts b/src/core/server/models/comment/helpers.ts index ccd1097c6..f8aab82b0 100644 --- a/src/core/server/models/comment/helpers.ts +++ b/src/core/server/models/comment/helpers.ts @@ -1,7 +1,7 @@ import { GQLCOMMENT_STATUS, GQLTAG, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import { calculateTotalPublishedCommentCount } from "../story"; import { Comment } from "./comment"; diff --git a/src/core/server/models/comment/tag.ts b/src/core/server/models/comment/tag.ts index 15ee7e6fa..002e18b40 100644 --- a/src/core/server/models/comment/tag.ts +++ b/src/core/server/models/comment/tag.ts @@ -1,4 +1,4 @@ -import { GQLTAG } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLTAG } from "coral-server/graph/schema/__generated__/types"; /** * CommentTag is used to represent a given Tag added to a Comment. diff --git a/src/core/server/models/invite.ts b/src/core/server/models/invite.ts index f82fc3f4b..585556f5a 100644 --- a/src/core/server/models/invite.ts +++ b/src/core/server/models/invite.ts @@ -2,7 +2,7 @@ import { Db } from "mongodb"; import uuid from "uuid"; import { Omit, Sub } from "coral-common/types"; -import { GQLUSER_ROLE } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLUSER_ROLE } from "coral-server/graph/schema/__generated__/types"; import { TenantResource } from "coral-server/models/tenant"; import { invites as collection } from "coral-server/services/mongodb/collections"; diff --git a/src/core/server/models/settings.ts b/src/core/server/models/settings.ts index 3b96c4aad..917549b93 100644 --- a/src/core/server/models/settings.ts +++ b/src/core/server/models/settings.ts @@ -11,7 +11,7 @@ import { GQLMODERATION_MODE, GQLOIDCAuthIntegration, GQLSettings, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; export type LiveConfiguration = Omit; diff --git a/src/core/server/models/story/counts/index.ts b/src/core/server/models/story/counts/index.ts index 3c08d4f4b..74d00da1d 100644 --- a/src/core/server/models/story/counts/index.ts +++ b/src/core/server/models/story/counts/index.ts @@ -6,7 +6,7 @@ import { Db } from "mongodb"; import { DeepPartial } from "coral-common/types"; import { dotize } from "coral-common/utils/dotize"; -import { GQLCOMMENT_STATUS } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLCOMMENT_STATUS } from "coral-server/graph/schema/__generated__/types"; import logger from "coral-server/logger"; import { EncodedCommentActionCounts } from "coral-server/models/action/comment"; import { PUBLISHED_STATUSES } from "coral-server/models/comment/constants"; diff --git a/src/core/server/models/story/index.ts b/src/core/server/models/story/index.ts index d7724ec55..03adda3a0 100644 --- a/src/core/server/models/story/index.ts +++ b/src/core/server/models/story/index.ts @@ -10,7 +10,7 @@ import { import { GQLStoryMetadata, GQLStorySettings, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import { Connection, ConnectionInput, diff --git a/src/core/server/models/tenant/helpers.ts b/src/core/server/models/tenant/helpers.ts index b28b4f212..35700774e 100644 --- a/src/core/server/models/tenant/helpers.ts +++ b/src/core/server/models/tenant/helpers.ts @@ -7,7 +7,7 @@ import { GQLFEATURE_FLAG, GQLReactionConfiguration, GQLStaffConfiguration, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import { SSOKey } from "../settings"; import { Tenant } from "./tenant"; diff --git a/src/core/server/models/tenant/tenant.ts b/src/core/server/models/tenant/tenant.ts index 573d3ce47..77a9451c0 100644 --- a/src/core/server/models/tenant/tenant.ts +++ b/src/core/server/models/tenant/tenant.ts @@ -14,7 +14,7 @@ import { GQLFEATURE_FLAG, GQLMODERATION_MODE, GQLSettings, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import { generateSSOKey, diff --git a/src/core/server/models/user/constants.ts b/src/core/server/models/user/constants.ts index 2202403cf..a0717ecae 100644 --- a/src/core/server/models/user/constants.ts +++ b/src/core/server/models/user/constants.ts @@ -1,4 +1,4 @@ -import { GQLUSER_ROLE } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLUSER_ROLE } from "coral-server/graph/schema/__generated__/types"; export const STAFF_ROLES = [ GQLUSER_ROLE.ADMIN, diff --git a/src/core/server/models/user/helpers.ts b/src/core/server/models/user/helpers.ts index 20c63f0a5..96fa6244e 100644 --- a/src/core/server/models/user/helpers.ts +++ b/src/core/server/models/user/helpers.ts @@ -1,6 +1,6 @@ import { isEqual } from "lodash"; -import { GQLUSER_ROLE } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLUSER_ROLE } from "coral-server/graph/schema/__generated__/types"; import { SSOUserProfile } from "coral-server/app/middleware/passport/strategies/verifiers/sso"; import { STAFF_ROLES } from "./constants"; diff --git a/src/core/server/models/user/user.ts b/src/core/server/models/user/user.ts index c146a252c..83df69d58 100644 --- a/src/core/server/models/user/user.ts +++ b/src/core/server/models/user/user.ts @@ -40,7 +40,7 @@ import { GQLUSER_ROLE, GQLUsernameStatus, GQLUserNotificationSettings, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import { CommentStatusCounts, @@ -472,10 +472,6 @@ export interface User extends TenantResource { */ deletedAt?: Date; - /** - * commentCounts are the tallies of all comment statuses for this - * user. - */ commentCounts: UserCommentCounts; } diff --git a/src/core/server/queue/tasks/notifier/index.ts b/src/core/server/queue/tasks/notifier/index.ts index 45f8b3b07..8e384a6c2 100644 --- a/src/core/server/queue/tasks/notifier/index.ts +++ b/src/core/server/queue/tasks/notifier/index.ts @@ -3,7 +3,7 @@ import { groupBy } from "lodash"; import { Db } from "mongodb"; import { Config } from "coral-server/config"; -import { SUBSCRIPTION_CHANNELS } from "coral-server/graph/tenant/resolvers/Subscription/types"; +import { SUBSCRIPTION_CHANNELS } from "coral-server/graph/resolvers/Subscription/types"; import logger from "coral-server/logger"; import Task from "coral-server/queue/Task"; import { MailerQueue } from "coral-server/queue/tasks/mailer"; diff --git a/src/core/server/queue/tasks/notifier/messages.ts b/src/core/server/queue/tasks/notifier/messages.ts index a4707d883..f11ca75c3 100644 --- a/src/core/server/queue/tasks/notifier/messages.ts +++ b/src/core/server/queue/tasks/notifier/messages.ts @@ -1,5 +1,5 @@ -import { SUBSCRIPTION_INPUT } from "coral-server/graph/tenant/resolvers/Subscription/types"; -import { GQLDIGEST_FREQUENCY } from "coral-server/graph/tenant/schema/__generated__/types"; +import { SUBSCRIPTION_INPUT } from "coral-server/graph/resolvers/Subscription/types"; +import { GQLDIGEST_FREQUENCY } from "coral-server/graph/schema/__generated__/types"; import logger from "coral-server/logger"; import { NotificationCategory } from "coral-server/services/notifications/categories"; import NotificationContext from "coral-server/services/notifications/context"; diff --git a/src/core/server/queue/tasks/notifier/processor.ts b/src/core/server/queue/tasks/notifier/processor.ts index a40521760..9e7b4f5f8 100644 --- a/src/core/server/queue/tasks/notifier/processor.ts +++ b/src/core/server/queue/tasks/notifier/processor.ts @@ -5,7 +5,7 @@ import { Config } from "coral-server/config"; import { SUBSCRIPTION_CHANNELS, SUBSCRIPTION_INPUT, -} from "coral-server/graph/tenant/resolvers/Subscription/types"; +} from "coral-server/graph/resolvers/Subscription/types"; import logger from "coral-server/logger"; import { MailerQueue } from "coral-server/queue/tasks/mailer"; import { JWTSigningConfig } from "coral-server/services/jwt"; diff --git a/src/core/server/services/comments/actions.ts b/src/core/server/services/comments/actions.ts index c6a68d70a..8ad550381 100644 --- a/src/core/server/services/comments/actions.ts +++ b/src/core/server/services/comments/actions.ts @@ -2,8 +2,8 @@ import { Db } from "mongodb"; import { Omit } from "coral-common/types"; import { CommentNotFoundError } from "coral-server/errors"; -import { GQLCOMMENT_FLAG_REPORTED_REASON } from "coral-server/graph/tenant/schema/__generated__/types"; -import { Publisher } from "coral-server/graph/tenant/subscriptions/publisher"; +import { GQLCOMMENT_FLAG_REPORTED_REASON } from "coral-server/graph/schema/__generated__/types"; +import { Publisher } from "coral-server/graph/subscriptions/publisher"; import { ACTION_TYPE, CommentAction, diff --git a/src/core/server/services/comments/comments.ts b/src/core/server/services/comments/comments.ts index f13cf9885..5e9589ae9 100644 --- a/src/core/server/services/comments/comments.ts +++ b/src/core/server/services/comments/comments.ts @@ -2,7 +2,7 @@ import { DateTime } from "luxon"; import { Db } from "mongodb"; import { CommentNotFoundError } from "coral-server/errors"; -import { GQLTAG } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLTAG } from "coral-server/graph/schema/__generated__/types"; import { addCommentTag, removeCommentTag, diff --git a/src/core/server/services/comments/moderation/counts.spec.ts b/src/core/server/services/comments/moderation/counts.spec.ts index acda37d06..59e533ce0 100644 --- a/src/core/server/services/comments/moderation/counts.spec.ts +++ b/src/core/server/services/comments/moderation/counts.spec.ts @@ -1,4 +1,4 @@ -import { GQLCOMMENT_STATUS } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLCOMMENT_STATUS } from "coral-server/graph/schema/__generated__/types"; import { calculateCountsDiff } from "./counts"; it("allows transition from NONE to APPROVED", () => { diff --git a/src/core/server/services/comments/moderation/counts.ts b/src/core/server/services/comments/moderation/counts.ts index 88afb4099..d3a23a726 100644 --- a/src/core/server/services/comments/moderation/counts.ts +++ b/src/core/server/services/comments/moderation/counts.ts @@ -1,4 +1,4 @@ -import { GQLCOMMENT_STATUS } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLCOMMENT_STATUS } from "coral-server/graph/schema/__generated__/types"; import { decodeActionCounts } from "coral-server/models/action/comment"; import { Comment } from "coral-server/models/comment"; import { CommentModerationQueueCounts } from "coral-server/models/story"; diff --git a/src/core/server/services/comments/pipeline/phases/detectLinks.ts b/src/core/server/services/comments/pipeline/phases/detectLinks.ts index 567153f2b..cc940c23c 100755 --- a/src/core/server/services/comments/pipeline/phases/detectLinks.ts +++ b/src/core/server/services/comments/pipeline/phases/detectLinks.ts @@ -2,7 +2,7 @@ import { DeepPartial } from "coral-common/types"; import { GQLCOMMENT_FLAG_REASON, GQLCOMMENT_STATUS, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import { ACTION_TYPE } from "coral-server/models/action/comment"; import { RevisionMetadata } from "coral-server/models/comment"; import { GlobalModerationSettings } from "coral-server/models/settings"; diff --git a/src/core/server/services/comments/pipeline/phases/preModerate.ts b/src/core/server/services/comments/pipeline/phases/preModerate.ts index 3bb267c04..aaad2295d 100755 --- a/src/core/server/services/comments/pipeline/phases/preModerate.ts +++ b/src/core/server/services/comments/pipeline/phases/preModerate.ts @@ -2,7 +2,7 @@ import { DeepPartial } from "coral-common/types"; import { GQLCOMMENT_STATUS, GQLMODERATION_MODE, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import { GlobalModerationSettings } from "coral-server/models/settings"; import { IntermediateModerationPhase, diff --git a/src/core/server/services/comments/pipeline/phases/preModerateUser.ts b/src/core/server/services/comments/pipeline/phases/preModerateUser.ts index c517befdb..813ad4188 100644 --- a/src/core/server/services/comments/pipeline/phases/preModerateUser.ts +++ b/src/core/server/services/comments/pipeline/phases/preModerateUser.ts @@ -1,4 +1,4 @@ -import { GQLCOMMENT_STATUS } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLCOMMENT_STATUS } from "coral-server/graph/schema/__generated__/types"; import { IntermediateModerationPhase, IntermediatePhaseResult, diff --git a/src/core/server/services/comments/pipeline/phases/premodNewCommenter.ts b/src/core/server/services/comments/pipeline/phases/premodNewCommenter.ts index 57eae4224..d1e34a56f 100644 --- a/src/core/server/services/comments/pipeline/phases/premodNewCommenter.ts +++ b/src/core/server/services/comments/pipeline/phases/premodNewCommenter.ts @@ -1,7 +1,7 @@ import { GQLCOMMENT_FLAG_REASON, GQLCOMMENT_STATUS, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import { ACTION_TYPE } from "coral-server/models/action/comment"; import { IntermediatePhaseResult, diff --git a/src/core/server/services/comments/pipeline/phases/recentCommentHistory.ts b/src/core/server/services/comments/pipeline/phases/recentCommentHistory.ts index 7f19e5f6e..4b0daae5e 100644 --- a/src/core/server/services/comments/pipeline/phases/recentCommentHistory.ts +++ b/src/core/server/services/comments/pipeline/phases/recentCommentHistory.ts @@ -3,7 +3,7 @@ import { DateTime } from "luxon"; import { GQLCOMMENT_FLAG_REASON, GQLCOMMENT_STATUS, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import { ACTION_TYPE } from "coral-server/models/action/comment"; import { calculateRejectionRate, diff --git a/src/core/server/services/comments/pipeline/phases/repeatPost.ts b/src/core/server/services/comments/pipeline/phases/repeatPost.ts index d000eafc3..5a60a33f5 100644 --- a/src/core/server/services/comments/pipeline/phases/repeatPost.ts +++ b/src/core/server/services/comments/pipeline/phases/repeatPost.ts @@ -12,7 +12,7 @@ import { retrieveUserLastComment } from "coral-server/services/users"; import { GQLCOMMENT_FLAG_REASON, GQLCOMMENT_STATUS, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; export const repeatPost: IntermediateModerationPhase = async ({ mongo, diff --git a/src/core/server/services/comments/pipeline/phases/spam.ts b/src/core/server/services/comments/pipeline/phases/spam.ts index 6e96e01d4..0126f2e8f 100644 --- a/src/core/server/services/comments/pipeline/phases/spam.ts +++ b/src/core/server/services/comments/pipeline/phases/spam.ts @@ -10,7 +10,7 @@ import { import { GQLCOMMENT_FLAG_REASON, GQLCOMMENT_STATUS, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; export const spam: IntermediateModerationPhase = async ({ story, diff --git a/src/core/server/services/comments/pipeline/phases/staff.ts b/src/core/server/services/comments/pipeline/phases/staff.ts index cef1a4efd..cc100a2c2 100755 --- a/src/core/server/services/comments/pipeline/phases/staff.ts +++ b/src/core/server/services/comments/pipeline/phases/staff.ts @@ -2,7 +2,7 @@ import { GQLCOMMENT_STATUS, GQLTAG, GQLUSER_ROLE, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import { IntermediateModerationPhase, IntermediatePhaseResult, diff --git a/src/core/server/services/comments/pipeline/phases/toxic.ts b/src/core/server/services/comments/pipeline/phases/toxic.ts index 4293afcd8..a2303520e 100644 --- a/src/core/server/services/comments/pipeline/phases/toxic.ts +++ b/src/core/server/services/comments/pipeline/phases/toxic.ts @@ -26,7 +26,7 @@ import { GQLCOMMENT_STATUS, GQLFEATURE_FLAG, GQLPerspectiveExternalIntegration, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; export const toxic: IntermediateModerationPhase = async ({ tenant, diff --git a/src/core/server/services/comments/pipeline/phases/wordList.ts b/src/core/server/services/comments/pipeline/phases/wordList.ts index f72b22b66..5abe5d655 100755 --- a/src/core/server/services/comments/pipeline/phases/wordList.ts +++ b/src/core/server/services/comments/pipeline/phases/wordList.ts @@ -1,7 +1,7 @@ import { GQLCOMMENT_FLAG_REASON, GQLCOMMENT_STATUS, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import { ACTION_TYPE } from "coral-server/models/action/comment"; import { IntermediateModerationPhase, diff --git a/src/core/server/services/comments/pipeline/pipeline.spec.ts b/src/core/server/services/comments/pipeline/pipeline.spec.ts index 956e68d2a..f7d9cad25 100644 --- a/src/core/server/services/comments/pipeline/pipeline.spec.ts +++ b/src/core/server/services/comments/pipeline/pipeline.spec.ts @@ -1,7 +1,7 @@ import { GQLCOMMENT_FLAG_REASON, GQLCOMMENT_STATUS, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import { ACTION_TYPE } from "coral-server/models/action/comment"; import { compose, ModerationPhaseContext } from "./pipeline"; diff --git a/src/core/server/services/comments/pipeline/pipeline.ts b/src/core/server/services/comments/pipeline/pipeline.ts index 062a12a26..9e6e8d6df 100644 --- a/src/core/server/services/comments/pipeline/pipeline.ts +++ b/src/core/server/services/comments/pipeline/pipeline.ts @@ -16,7 +16,7 @@ import { User } from "coral-server/models/user"; import { AugmentedRedis } from "coral-server/services/redis"; import { Request } from "coral-server/types/express"; -import { GQLCOMMENT_STATUS } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLCOMMENT_STATUS } from "coral-server/graph/schema/__generated__/types"; import { moderationPhases } from "./phases"; diff --git a/src/core/server/services/events/comments.ts b/src/core/server/services/events/comments.ts index 4ebdff5e0..8ee8cc17f 100644 --- a/src/core/server/services/events/comments.ts +++ b/src/core/server/services/events/comments.ts @@ -1,9 +1,9 @@ -import { SUBSCRIPTION_CHANNELS } from "coral-server/graph/tenant/resolvers/Subscription/types"; +import { SUBSCRIPTION_CHANNELS } from "coral-server/graph/resolvers/Subscription/types"; import { GQLCOMMENT_STATUS, GQLMODERATION_QUEUE, -} from "coral-server/graph/tenant/schema/__generated__/types"; -import { Publisher } from "coral-server/graph/tenant/subscriptions/publisher"; +} from "coral-server/graph/schema/__generated__/types"; +import { Publisher } from "coral-server/graph/subscriptions/publisher"; import { Comment, hasPublishedStatus } from "coral-server/models/comment"; import { CommentModerationQueueCounts } from "coral-server/models/story/counts"; diff --git a/src/core/server/services/migrate/migrations/1573073491825_sso_tokens.ts b/src/core/server/services/migrate/migrations/1573073491825_sso_tokens.ts index 04962809d..071b8034b 100644 --- a/src/core/server/services/migrate/migrations/1573073491825_sso_tokens.ts +++ b/src/core/server/services/migrate/migrations/1573073491825_sso_tokens.ts @@ -5,7 +5,7 @@ import { generateSSOKey, Tenant } from "coral-server/models/tenant"; import Migration from "coral-server/services/migrate/migration"; import collections from "coral-server/services/mongodb/collections"; -import { GQLTime } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLTime } from "coral-server/graph/schema/__generated__/types"; import { MigrationError } from "../error"; diff --git a/src/core/server/services/migrate/migrations/1575649180_user_comment_counts.ts b/src/core/server/services/migrate/migrations/1575649180_user_comment_counts.ts index 4cc454a3e..98ea9b4a7 100644 --- a/src/core/server/services/migrate/migrations/1575649180_user_comment_counts.ts +++ b/src/core/server/services/migrate/migrations/1575649180_user_comment_counts.ts @@ -7,7 +7,7 @@ import { import Migration from "coral-server/services/migrate/migration"; import collections from "coral-server/services/mongodb/collections"; -import { GQLCOMMENT_STATUS } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLCOMMENT_STATUS } from "coral-server/graph/schema/__generated__/types"; const BATCH_SIZE = 500; diff --git a/src/core/server/services/notifications/categories/category.ts b/src/core/server/services/notifications/categories/category.ts index e25a200c8..81026f908 100644 --- a/src/core/server/services/notifications/categories/category.ts +++ b/src/core/server/services/notifications/categories/category.ts @@ -1,7 +1,7 @@ import { SUBSCRIPTION_CHANNELS, SUBSCRIPTION_INPUT, -} from "coral-server/graph/tenant/resolvers/Subscription/types"; +} from "coral-server/graph/resolvers/Subscription/types"; import NotificationContext from "../context"; import { Notification } from "../notification"; diff --git a/src/core/server/services/notifications/categories/featured.ts b/src/core/server/services/notifications/categories/featured.ts index 2b65d5699..844359dd1 100644 --- a/src/core/server/services/notifications/categories/featured.ts +++ b/src/core/server/services/notifications/categories/featured.ts @@ -1,5 +1,5 @@ -import { CommentFeaturedInput } from "coral-server/graph/tenant/resolvers/Subscription/commentFeatured"; -import { SUBSCRIPTION_CHANNELS } from "coral-server/graph/tenant/resolvers/Subscription/types"; +import { CommentFeaturedInput } from "coral-server/graph/resolvers/Subscription/commentFeatured"; +import { SUBSCRIPTION_CHANNELS } from "coral-server/graph/resolvers/Subscription/types"; import { hasPublishedStatus } from "coral-server/models/comment"; import { getStoryTitle, getURLWithCommentID } from "coral-server/models/story"; diff --git a/src/core/server/services/notifications/categories/moderation.ts b/src/core/server/services/notifications/categories/moderation.ts index 7632cbe96..1ee4b6909 100644 --- a/src/core/server/services/notifications/categories/moderation.ts +++ b/src/core/server/services/notifications/categories/moderation.ts @@ -1,8 +1,8 @@ -import { CommentStatusUpdatedInput } from "coral-server/graph/tenant/resolvers/Subscription/commentStatusUpdated"; -import { SUBSCRIPTION_CHANNELS } from "coral-server/graph/tenant/resolvers/Subscription/types"; +import { CommentStatusUpdatedInput } from "coral-server/graph/resolvers/Subscription/commentStatusUpdated"; +import { SUBSCRIPTION_CHANNELS } from "coral-server/graph/resolvers/Subscription/types"; import { hasModeratorStatus } from "coral-server/models/comment"; -import { GQLCOMMENT_STATUS } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLCOMMENT_STATUS } from "coral-server/graph/schema/__generated__/types"; import { getURLWithCommentID } from "coral-server/models/story"; import NotificationContext from "../context"; import { Notification } from "../notification"; diff --git a/src/core/server/services/notifications/categories/reply.ts b/src/core/server/services/notifications/categories/reply.ts index bf55bf06d..8816f48c4 100644 --- a/src/core/server/services/notifications/categories/reply.ts +++ b/src/core/server/services/notifications/categories/reply.ts @@ -1,6 +1,6 @@ -import { CommentReplyCreatedInput } from "coral-server/graph/tenant/resolvers/Subscription/commentReplyCreated"; -import { CommentStatusUpdatedInput } from "coral-server/graph/tenant/resolvers/Subscription/commentStatusUpdated"; -import { SUBSCRIPTION_CHANNELS } from "coral-server/graph/tenant/resolvers/Subscription/types"; +import { CommentReplyCreatedInput } from "coral-server/graph/resolvers/Subscription/commentReplyCreated"; +import { CommentStatusUpdatedInput } from "coral-server/graph/resolvers/Subscription/commentStatusUpdated"; +import { SUBSCRIPTION_CHANNELS } from "coral-server/graph/resolvers/Subscription/types"; import { hasPublishedStatus } from "coral-server/models/comment"; import { getStoryTitle, getURLWithCommentID } from "coral-server/models/story"; diff --git a/src/core/server/services/notifications/categories/staffReply.ts b/src/core/server/services/notifications/categories/staffReply.ts index 78ac6ced0..d561f4322 100644 --- a/src/core/server/services/notifications/categories/staffReply.ts +++ b/src/core/server/services/notifications/categories/staffReply.ts @@ -1,6 +1,6 @@ -import { CommentReplyCreatedInput } from "coral-server/graph/tenant/resolvers/Subscription/commentReplyCreated"; -import { CommentStatusUpdatedInput } from "coral-server/graph/tenant/resolvers/Subscription/commentStatusUpdated"; -import { SUBSCRIPTION_CHANNELS } from "coral-server/graph/tenant/resolvers/Subscription/types"; +import { CommentReplyCreatedInput } from "coral-server/graph/resolvers/Subscription/commentReplyCreated"; +import { CommentStatusUpdatedInput } from "coral-server/graph/resolvers/Subscription/commentStatusUpdated"; +import { SUBSCRIPTION_CHANNELS } from "coral-server/graph/resolvers/Subscription/types"; import { hasPublishedStatus } from "coral-server/models/comment"; import { getStoryTitle, getURLWithCommentID } from "coral-server/models/story"; import { hasStaffRole } from "coral-server/models/user/helpers"; diff --git a/src/core/server/services/notifications/context.ts b/src/core/server/services/notifications/context.ts index 2e5d5e677..2e6c3fa4b 100644 --- a/src/core/server/services/notifications/context.ts +++ b/src/core/server/services/notifications/context.ts @@ -2,7 +2,7 @@ import DataLoader from "dataloader"; import { Db } from "mongodb"; import { Config } from "coral-server/config"; -import { GQLDIGEST_FREQUENCY } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLDIGEST_FREQUENCY } from "coral-server/graph/schema/__generated__/types"; import logger, { Logger } from "coral-server/logger"; import { Comment, retrieveManyComments } from "coral-server/models/comment"; import { retrieveManyStories, Story } from "coral-server/models/story"; diff --git a/src/core/server/services/queries/cache.ts b/src/core/server/services/queries/cache.ts index d979d5b25..555907c3c 100644 --- a/src/core/server/services/queries/cache.ts +++ b/src/core/server/services/queries/cache.ts @@ -2,7 +2,7 @@ import DataLoader from "dataloader"; import LRU from "lru-cache"; import { Db } from "mongodb"; -import { loadPersistedQueries } from "coral-server/graph/common/persisted"; +import { loadPersistedQueries } from "coral-server/graph/persisted"; import logger from "coral-server/logger"; import { getQueries, diff --git a/src/core/server/services/slack/publisher.ts b/src/core/server/services/slack/publisher.ts index edab8e084..c83bb8ecc 100644 --- a/src/core/server/services/slack/publisher.ts +++ b/src/core/server/services/slack/publisher.ts @@ -2,14 +2,14 @@ import { Db } from "mongodb"; import { reconstructTenantURL } from "coral-server/app/url"; import { Config } from "coral-server/config"; -import { CommentCreatedInput } from "coral-server/graph/tenant/resolvers/Subscription/commentCreated"; -import { CommentEnteredModerationQueueInput } from "coral-server/graph/tenant/resolvers/Subscription/commentEnteredModerationQueue"; -import { CommentFeaturedInput } from "coral-server/graph/tenant/resolvers/Subscription/commentFeatured"; -import { CommentLeftModerationQueueInput } from "coral-server/graph/tenant/resolvers/Subscription/commentLeftModerationQueue"; -import { CommentReleasedInput } from "coral-server/graph/tenant/resolvers/Subscription/commentReleased"; -import { CommentReplyCreatedInput } from "coral-server/graph/tenant/resolvers/Subscription/commentReplyCreated"; -import { CommentStatusUpdatedInput } from "coral-server/graph/tenant/resolvers/Subscription/commentStatusUpdated"; -import { SUBSCRIPTION_CHANNELS } from "coral-server/graph/tenant/resolvers/Subscription/types"; +import { CommentCreatedInput } from "coral-server/graph/resolvers/Subscription/commentCreated"; +import { CommentEnteredModerationQueueInput } from "coral-server/graph/resolvers/Subscription/commentEnteredModerationQueue"; +import { CommentFeaturedInput } from "coral-server/graph/resolvers/Subscription/commentFeatured"; +import { CommentLeftModerationQueueInput } from "coral-server/graph/resolvers/Subscription/commentLeftModerationQueue"; +import { CommentReleasedInput } from "coral-server/graph/resolvers/Subscription/commentReleased"; +import { CommentReplyCreatedInput } from "coral-server/graph/resolvers/Subscription/commentReplyCreated"; +import { CommentStatusUpdatedInput } from "coral-server/graph/resolvers/Subscription/commentStatusUpdated"; +import { SUBSCRIPTION_CHANNELS } from "coral-server/graph/resolvers/Subscription/types"; import logger from "coral-server/logger"; import { getLatestRevision } from "coral-server/models/comment/helpers"; import { @@ -18,7 +18,7 @@ import { } from "coral-server/models/story/helpers"; import { Tenant } from "coral-server/models/tenant"; -import { GQLMODERATION_QUEUE } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLMODERATION_QUEUE } from "coral-server/graph/schema/__generated__/types"; import SlackContext from "./context"; diff --git a/src/core/server/services/stories/scraper/scraper.ts b/src/core/server/services/stories/scraper/scraper.ts index 56eb93ef4..4ea1b0e23 100644 --- a/src/core/server/services/stories/scraper/scraper.ts +++ b/src/core/server/services/stories/scraper/scraper.ts @@ -15,7 +15,7 @@ import logger from "coral-server/logger"; import { retrieveStory, updateStory } from "coral-server/models/story"; import { retrieveTenant } from "coral-server/models/tenant"; -import { GQLStoryMetadata } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLStoryMetadata } from "coral-server/graph/schema/__generated__/types"; import abortAfter from "./abortAfter"; import { modifiedScraper } from "./rules/modified"; diff --git a/src/core/server/services/tenant/index.ts b/src/core/server/services/tenant/index.ts index 5fef05ae5..a1e080247 100644 --- a/src/core/server/services/tenant/index.ts +++ b/src/core/server/services/tenant/index.ts @@ -24,7 +24,7 @@ import { GQLFEATURE_FLAG, GQLSettingsInput, GQLSettingsWordListInput, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import TenantCache from "./cache"; diff --git a/src/core/server/services/users/auth/invite.ts b/src/core/server/services/users/auth/invite.ts index 3583d60c0..65972d575 100644 --- a/src/core/server/services/users/auth/invite.ts +++ b/src/core/server/services/users/auth/invite.ts @@ -36,7 +36,7 @@ import { InviteTokenExpired, TokenInvalidError, } from "coral-server/errors"; -import { GQLUSER_ROLE } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLUSER_ROLE } from "coral-server/graph/schema/__generated__/types"; import { validateEmail, validatePassword, validateUsername } from "../helpers"; export interface InviteToken extends Required { diff --git a/src/core/server/services/users/users.ts b/src/core/server/services/users/users.ts index 08fd8bfbf..b8d17970b 100644 --- a/src/core/server/services/users/users.ts +++ b/src/core/server/services/users/users.ts @@ -28,7 +28,7 @@ import { import { GQLAuthIntegrations, GQLUSER_ROLE, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import logger from "coral-server/logger"; import { Comment, retrieveComment } from "coral-server/models/comment"; import { Tenant } from "coral-server/models/tenant"; diff --git a/src/core/server/stacks/approveComment.ts b/src/core/server/stacks/approveComment.ts index 3e2732721..f41fb56c6 100644 --- a/src/core/server/stacks/approveComment.ts +++ b/src/core/server/stacks/approveComment.ts @@ -1,11 +1,11 @@ import { Db } from "mongodb"; -import { Publisher } from "coral-server/graph/tenant/subscriptions/publisher"; +import { Publisher } from "coral-server/graph/subscriptions/publisher"; import { Tenant } from "coral-server/models/tenant"; import { moderate } from "coral-server/services/comments/moderation"; import { AugmentedRedis } from "coral-server/services/redis"; -import { GQLCOMMENT_STATUS } from "coral-server/graph/tenant/schema/__generated__/types"; +import { GQLCOMMENT_STATUS } from "coral-server/graph/schema/__generated__/types"; import { publishChanges, updateAllCounts } from "./helpers"; diff --git a/src/core/server/stacks/createComment.ts b/src/core/server/stacks/createComment.ts index bb9124911..5ae358a4c 100644 --- a/src/core/server/stacks/createComment.ts +++ b/src/core/server/stacks/createComment.ts @@ -8,7 +8,7 @@ import { CoralError, StoryNotFoundError, } from "coral-server/errors"; -import { Publisher } from "coral-server/graph/tenant/subscriptions/publisher"; +import { Publisher } from "coral-server/graph/subscriptions/publisher"; import logger from "coral-server/logger"; import { encodeActionCounts, diff --git a/src/core/server/stacks/editComment.ts b/src/core/server/stacks/editComment.ts index dee56eb2e..f936e32fe 100644 --- a/src/core/server/stacks/editComment.ts +++ b/src/core/server/stacks/editComment.ts @@ -4,7 +4,7 @@ import { Db } from "mongodb"; import { Omit } from "coral-common/types"; import { Config } from "coral-server/config"; import { CommentNotFoundError, StoryNotFoundError } from "coral-server/errors"; -import { Publisher } from "coral-server/graph/tenant/subscriptions/publisher"; +import { Publisher } from "coral-server/graph/subscriptions/publisher"; import logger from "coral-server/logger"; import { encodeActionCounts, diff --git a/src/core/server/stacks/helpers/publishChanges.ts b/src/core/server/stacks/helpers/publishChanges.ts index a42595f54..7fb87dc34 100644 --- a/src/core/server/stacks/helpers/publishChanges.ts +++ b/src/core/server/stacks/helpers/publishChanges.ts @@ -1,4 +1,4 @@ -import { Publisher } from "coral-server/graph/tenant/subscriptions/publisher"; +import { Publisher } from "coral-server/graph/subscriptions/publisher"; import { Comment, hasModeratorStatus, diff --git a/src/core/server/stacks/rejectComment.ts b/src/core/server/stacks/rejectComment.ts index e77c1eae1..b96bda49d 100644 --- a/src/core/server/stacks/rejectComment.ts +++ b/src/core/server/stacks/rejectComment.ts @@ -1,6 +1,6 @@ import { Db } from "mongodb"; -import { Publisher } from "coral-server/graph/tenant/subscriptions/publisher"; +import { Publisher } from "coral-server/graph/subscriptions/publisher"; import { hasTag } from "coral-server/models/comment"; import { Tenant } from "coral-server/models/tenant"; import { removeTag } from "coral-server/services/comments"; @@ -10,7 +10,7 @@ import { AugmentedRedis } from "coral-server/services/redis"; import { GQLCOMMENT_STATUS, GQLTAG, -} from "coral-server/graph/tenant/schema/__generated__/types"; +} from "coral-server/graph/schema/__generated__/types"; import { publishChanges, updateAllCounts } from "./helpers";