Update submodule URL for epess-database

This commit is contained in:
2024-09-25 07:39:36 +07:00
parent 3a33894543
commit 0003931eeb
4 changed files with 644 additions and 64 deletions

View File

@@ -1,13 +1,35 @@
import { Module } from '@nestjs/common';
import { GraphQLModule } from '@nestjs/graphql';
import { ApolloDriver, ApolloDriverConfig } from '@nestjs/apollo';
import { schema } from './graphql.schema'; // Assuming you have schema defined in a separate file
const subOperationHandler = (message: any, params: any, webSocket: any) => {
console.log('onOperation');
return params;
};
@Module({
imports: [
GraphQLModule.forRoot<ApolloDriverConfig>({
driver: ApolloDriver, // Specify the driver
schema, // Your Pothos-generated schema
buildSchemaOptions: {
numberScalarMode: 'integer',
},
subscriptions: {
'subscriptions-transport-ws': {
keepAlive: 5000,
path: '/graphql-sub',
onOperation: (message: any, params: any, webSocket: any) => {
subOperationHandler(message, params, webSocket);
return params;
},
onConnect: (connectionParams: any, webSocket: any) => {
console.log('onConnect');
return connectionParams;
},
onDisconnect: (webSocket: any) => {
console.log('onDisconnect');
},
},
},
playground: {
workspaceName: 'EPESS',
tabs: [

View File

@@ -1,3 +1,28 @@
import { builder } from '../types/pothos.type';
import SchemaBuilder from '@pothos/core';
import { PrismaClient, Prisma } from '@prisma/client';
import PrismaPlugin from '@pothos/plugin-prisma';
import type PrismaTypes from '../types/pothos.type';
export const schema = builder.toSchema();
const prisma = new PrismaClient({});
const readOnlyPrisma = new PrismaClient({
datasources: {
db: {
url: process.env.READ_ONLY_REPLICA_URL,
},
},
});
const builder = new SchemaBuilder<{
Context: { user: { isAdmin: boolean } };
PrismaTypes: PrismaTypes;
}>({
plugins: [PrismaPlugin],
prisma: {
client: (ctx) => (ctx.user.isAdmin ? prisma : readOnlyPrisma),
// Because the prisma client is loaded dynamically, we need to explicitly provide the some information about the prisma schema
dmmf: Prisma.dmmf,
},
});
export default builder;