diff --git a/src/services/product-service-clients.ts b/src/services/product-service-clients.ts index 7f24910..28d882a 100644 --- a/src/services/product-service-clients.ts +++ b/src/services/product-service-clients.ts @@ -10,6 +10,7 @@ export type ServiceCallOptions = { }; const DEFAULT_SERVICE_TIMEOUT_MS = Number(process.env.PRODUCT_SERVICE_TIMEOUT_MS ?? 3500); +const INTERACTIVE_SERVICE_TIMEOUT_MS = Number(process.env.PRODUCT_INTERACTIVE_SERVICE_TIMEOUT_MS ?? 120000); async function serviceJson( baseUrl: string, @@ -34,12 +35,12 @@ async function serviceJson( export const interviewService = { health: () => serviceJson(config.interviewServiceUrl, "/health"), pageState: (userId: string) => serviceJson(config.interviewServiceUrl, `/api/v1/interviews/page-state?${new URLSearchParams({ user_id: userId })}`), - configure: (payload: JsonObject) => serviceJson(config.interviewServiceUrl, "/api/v1/configure", { body: payload }), - preview: (payload: JsonObject) => serviceJson(config.interviewServiceUrl, "/api/v1/configure/preview", { body: payload }), + configure: (payload: JsonObject) => serviceJson(config.interviewServiceUrl, "/api/v1/configure", { body: payload, timeoutMs: INTERACTIVE_SERVICE_TIMEOUT_MS }), + preview: (payload: JsonObject) => serviceJson(config.interviewServiceUrl, "/api/v1/configure/preview", { body: payload, timeoutMs: INTERACTIVE_SERVICE_TIMEOUT_MS }), editQuestions: (payload: { session_id: string; questions: Array }) => - serviceJson(config.interviewServiceUrl, "/api/v1/configure/questions", { body: payload }), + serviceJson(config.interviewServiceUrl, "/api/v1/configure/questions", { body: payload, timeoutMs: INTERACTIVE_SERVICE_TIMEOUT_MS }), approve: (sessionId: string) => - serviceJson(config.interviewServiceUrl, "/api/v1/configure/approve", { body: { session_id: sessionId } }), + serviceJson(config.interviewServiceUrl, "/api/v1/configure/approve", { body: { session_id: sessionId }, timeoutMs: INTERACTIVE_SERVICE_TIMEOUT_MS }), createAssignments: (payload: { organization_id: string; role: string; round: "warm_up" | "behavioral" | "technical"; assignee_emails: string[] }) => serviceJson(config.interviewServiceUrl, "/api/v1/interviews/assignments", { body: payload }), listAssignments: (email: string, status = "pending", limit = 20) => @@ -67,12 +68,12 @@ export const interviewService = { export const roleplayService = { health: () => serviceJson(config.roleplayServiceUrl, "/health"), pageState: (userId: string) => serviceJson(config.roleplayServiceUrl, `/api/v1/roleplays/page-state?${new URLSearchParams({ user_id: userId })}`), - configure: (payload: JsonObject) => serviceJson(config.roleplayServiceUrl, "/api/v1/roleplays/configure", { body: payload }), - preview: (payload: JsonObject) => serviceJson(config.roleplayServiceUrl, "/api/v1/roleplays/configure/preview", { body: payload }), + configure: (payload: JsonObject) => serviceJson(config.roleplayServiceUrl, "/api/v1/roleplays/configure", { body: payload, timeoutMs: INTERACTIVE_SERVICE_TIMEOUT_MS }), + preview: (payload: JsonObject) => serviceJson(config.roleplayServiceUrl, "/api/v1/roleplays/configure/preview", { body: payload, timeoutMs: INTERACTIVE_SERVICE_TIMEOUT_MS }), editQuestions: (payload: { session_id: string; questions: Array }) => - serviceJson(config.roleplayServiceUrl, "/api/v1/roleplays/configure/questions", { body: payload }), + serviceJson(config.roleplayServiceUrl, "/api/v1/roleplays/configure/questions", { body: payload, timeoutMs: INTERACTIVE_SERVICE_TIMEOUT_MS }), approve: (sessionId: string) => - serviceJson(config.roleplayServiceUrl, "/api/v1/roleplays/configure/approve", { body: { session_id: sessionId } }), + serviceJson(config.roleplayServiceUrl, "/api/v1/roleplays/configure/approve", { body: { session_id: sessionId }, timeoutMs: INTERACTIVE_SERVICE_TIMEOUT_MS }), createAssignments: (payload: { organization_id: string; name: string; scenario: string; assignee_emails: string[] }) => serviceJson(config.roleplayServiceUrl, "/api/v1/roleplays/assignments", { body: payload }), listAssignments: (email: string, status = "pending", limit = 20) =>