Update dependencies in package.json and package-lock.json, refactor CronService to include notification handling for schedule expirations, and enhance DocumentSchema with OpenAI integration for document editing suggestions. Additionally, modify GraphqlModule to include PubSubModule for real-time notifications and improve datetime utility functions for better date formatting. Update epess-database subproject reference to indicate a dirty state.
This commit is contained in:
@@ -44,6 +44,8 @@ import { DocumentModule } from 'src/Document/document.module'
|
||||
import { Context } from 'graphql-ws'
|
||||
import { AnalyticModule } from 'src/Analytic/analytic.module'
|
||||
import { MeetingRoomModule } from 'src/MeetingRoom/meetingroom.module'
|
||||
import { PubSubModule } from 'src/PubSub/pubsub.module'
|
||||
import { PubSubService } from 'src/PubSub/pubsub.service'
|
||||
|
||||
@Global()
|
||||
@Module({
|
||||
@@ -81,6 +83,7 @@ import { MeetingRoomModule } from 'src/MeetingRoom/meetingroom.module'
|
||||
DocumentModule,
|
||||
AnalyticModule,
|
||||
MeetingRoomModule,
|
||||
PubSubModule,
|
||||
PothosModule.forRoot({
|
||||
builder: {
|
||||
inject: [PrismaService],
|
||||
@@ -89,11 +92,8 @@ import { MeetingRoomModule } from 'src/MeetingRoom/meetingroom.module'
|
||||
}),
|
||||
GraphQLModule.forRootAsync<ApolloDriverConfig>({
|
||||
driver: PothosApolloDriver,
|
||||
inject: [GraphqlService, 'PUB_SUB'],
|
||||
useFactory: async (
|
||||
graphqlService: GraphqlService,
|
||||
pubsub: RedisPubSub,
|
||||
) => ({
|
||||
inject: [GraphqlService, 'PUB_SUB_REDIS'],
|
||||
useFactory: async (graphqlService: GraphqlService, pubsub: RedisPubSub) => ({
|
||||
path: process.env.API_PATH + '/graphql',
|
||||
debug: process.env.NODE_ENV === 'development' || false,
|
||||
playground: process.env.NODE_ENV === 'development' || false,
|
||||
@@ -115,8 +115,7 @@ import { MeetingRoomModule } from 'src/MeetingRoom/meetingroom.module'
|
||||
throw new Error('No extra provided')
|
||||
}
|
||||
// @ts-expect-error: TODO
|
||||
ctx.extra.request.headers['x-session-id'] =
|
||||
ctx.connectionParams['x-session-id']
|
||||
ctx.extra.request.headers['x-session-id'] = ctx.connectionParams['x-session-id']
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -153,10 +152,7 @@ import { MeetingRoomModule } from 'src/MeetingRoom/meetingroom.module'
|
||||
req,
|
||||
me: req ? await graphqlService.acquireContext(req) : null,
|
||||
pubSub: pubsub,
|
||||
invalidateCache: () =>
|
||||
graphqlService.invalidateCache(
|
||||
req?.headers['x-session-id'] as string,
|
||||
),
|
||||
invalidateCache: () => graphqlService.invalidateCache(req?.headers['x-session-id'] as string),
|
||||
},
|
||||
}
|
||||
},
|
||||
@@ -167,8 +163,7 @@ import { MeetingRoomModule } from 'src/MeetingRoom/meetingroom.module'
|
||||
RedisService,
|
||||
{
|
||||
provide: GraphqlService,
|
||||
useFactory: (prisma: PrismaService, redis: RedisService) =>
|
||||
new GraphqlService(prisma, redis),
|
||||
useFactory: (prisma: PrismaService, redis: RedisService) => new GraphqlService(prisma, redis),
|
||||
inject: [PrismaService, 'REDIS_CLIENT'],
|
||||
},
|
||||
{
|
||||
@@ -181,21 +176,8 @@ import { MeetingRoomModule } from 'src/MeetingRoom/meetingroom.module'
|
||||
useFactory: (builder: Builder) => new PrismaCrudGenerator(builder),
|
||||
inject: [Builder],
|
||||
},
|
||||
{
|
||||
provide: 'PUB_SUB',
|
||||
useFactory: () =>
|
||||
new RedisPubSub({
|
||||
connection:
|
||||
process.env.REDIS_PUBSUB_URL ?? 'redis://10.0.27.1:6379/7',
|
||||
}),
|
||||
},
|
||||
],
|
||||
exports: [
|
||||
Builder,
|
||||
PrismaCrudGenerator,
|
||||
GraphqlService,
|
||||
RedisService,
|
||||
'PUB_SUB',
|
||||
PubSubService,
|
||||
],
|
||||
exports: [Builder, PrismaCrudGenerator, GraphqlService, RedisService],
|
||||
})
|
||||
export class GraphqlModule {}
|
||||
|
||||
Reference in New Issue
Block a user