Skip to content

Commit 6d2238c

Browse files
committed
refactor: use graphql instead
1 parent 9143c0f commit 6d2238c

File tree

4 files changed

+20
-26
lines changed

4 files changed

+20
-26
lines changed

packages/backend/src/routes/api/chat/readiness.ts renamed to packages/backend/src/graphql/queries/get-chat-readiness.ts

Lines changed: 12 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
import { startActiveObservation } from '@langfuse/tracing'
22
import { generateObject } from 'ai'
3-
import type { Request, Response } from 'express'
4-
import { Router } from 'express'
53
import z from 'zod/v3'
64

75
import appConfig from '@/config/app'
@@ -10,21 +8,15 @@ import logger from '@/helpers/logger'
108
import { model, MODEL_TYPE } from '@/helpers/pair'
119
import { getPrompt } from '@/helpers/pair/get-prompt'
1210

13-
import { getAuthenticatedContext } from '../middleware/authentication'
14-
15-
interface ChatReadinessRequest {
16-
message: string
17-
sessionId: string
18-
}
19-
20-
const handleChatReadiness = async (
21-
req: Request,
22-
res: Response,
23-
): Promise<void> => {
24-
const context = getAuthenticatedContext(req)
11+
import type { QueryResolvers } from '../__generated__/types.generated'
2512

13+
const getChatReadiness: QueryResolvers['getChatReadiness'] = async (
14+
_parent,
15+
params,
16+
context,
17+
) => {
2618
try {
27-
const { message: rawMessage } = req.body as ChatReadinessRequest
19+
const { message: rawMessage, sessionId } = params
2820

2921
const promptConfig = await getLdFlagValue(
3022
'ai-builder-prompt-config',
@@ -45,6 +37,7 @@ const handleChatReadiness = async (
4537
userId: context.currentUser.email,
4638
environment: appConfig.appEnv,
4739
tags: ['ai-builder', 'is-chat-ready'],
40+
sessionId,
4841
})
4942

5043
trace.update({
@@ -88,15 +81,11 @@ const handleChatReadiness = async (
8881
},
8982
)
9083

91-
res.json({ isReady: result.isReady })
84+
return { isReady: result.isReady }
9285
} catch (error) {
93-
logger.error('Error in chat readiness', { error })
94-
res.status(500).json({ error: 'Internal server error' })
86+
logger.error('Error in getChatReadiness', { error })
87+
throw new Error('Error encountered. Please try again.')
9588
}
9689
}
9790

98-
const router = Router()
99-
100-
router.post('/', handleChatReadiness)
101-
102-
export default router
91+
export default getChatReadiness

packages/backend/src/graphql/query-resolvers.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import type { QueryResolvers } from './__generated__/types.generated'
22
import getApp from './queries/get-app'
33
import getApps from './queries/get-apps'
4+
import getChatReadiness from './queries/get-chat-readiness'
45
import getConnectedApps from './queries/get-connected-apps'
56
import getCurrentUser from './queries/get-current-user'
67
import getDynamicData from './queries/get-dynamic-data'
@@ -45,6 +46,7 @@ export default {
4546
getPendingFlowTransfers,
4647
getFlowTransferDetails,
4748
getTemplates,
49+
getChatReadiness,
4850
...tilesQueryResolvers,
4951

5052
// This is a special stub that enables us to group all our admin-related

packages/backend/src/graphql/schema.graphql

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ type Query {
5757
admin: AdminQuery!
5858
# Templates (including demo templates)
5959
getTemplates(tag: TemplateTagType): [Template!]!
60+
# AI
61+
getChatReadiness(message: String!, sessionId: String!): ChatReadinessResult!
6062
}
6163

6264
type AdminQuery {
@@ -160,6 +162,10 @@ input CreateFlowWithStepsInput {
160162
aiBuilderConfig: FlowAiBuilderConfigInput!
161163
}
162164

165+
type ChatReadinessResult {
166+
isReady: Boolean!
167+
}
168+
163169
type AdminMutation {
164170
pauseGroup(input: PauseGroupInput!): Boolean
165171
resumeGroup(input: ResumeGroupInput!): Boolean

packages/backend/src/routes/api/chat/index.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ import { getPrompt } from '@/helpers/pair/get-prompt'
1111

1212
import { getAuthenticatedContext } from '../middleware/authentication'
1313

14-
import chatReadinessRouter from './readiness'
15-
1614
interface ChatRequest {
1715
messages: Array<{
1816
role: 'user' | 'assistant' | 'system'
@@ -174,6 +172,5 @@ async function handleChatStream(req: Request, res: Response) {
174172
const router = Router()
175173

176174
router.post('/', handleChatStream)
177-
router.use('/readiness', chatReadinessRouter)
178175

179176
export default router

0 commit comments

Comments
 (0)