diff --git a/app/api/chat/conversations/route.ts b/app/api/chat/conversations/route.ts
index 045109e..451f430 100644
--- a/app/api/chat/conversations/route.ts
+++ b/app/api/chat/conversations/route.ts
@@ -14,8 +14,8 @@ const createConversationSchema = z.object({
const getConversationsSchema = z.object({
language: z.enum(['ro', 'en']).optional(),
- limit: z.string().transform(Number).pipe(z.number().min(1).max(50)).optional().default('20'),
- offset: z.string().transform(Number).pipe(z.number().min(0)).optional().default('0'),
+ limit: z.string().optional().default('20').transform(Number).pipe(z.number().min(1).max(50)),
+ offset: z.string().optional().default('0').transform(Number).pipe(z.number().min(0)),
})
// GET /api/chat/conversations - List user's conversations
@@ -44,7 +44,11 @@ export async function GET(request: NextRequest) {
// Parse query parameters
const url = new URL(request.url)
- const queryParams = Object.fromEntries(url.searchParams.entries())
+ const queryParams = {
+ language: url.searchParams.get('language') || undefined,
+ limit: url.searchParams.get('limit') || '20',
+ offset: url.searchParams.get('offset') || '0'
+ }
const { language, limit, offset } = getConversationsSchema.parse(queryParams)
// Build where clause
diff --git a/app/api/chat/route.ts b/app/api/chat/route.ts
index 3822c09..a90fc9a 100644
--- a/app/api/chat/route.ts
+++ b/app/api/chat/route.ts
@@ -29,15 +29,21 @@ export async function POST(request: NextRequest) {
// Try to get user from authentication (optional for backward compatibility)
let userId: string | null = null
const authHeader = request.headers.get('authorization')
+ console.log('Chat API - authHeader present:', !!authHeader)
if (authHeader?.startsWith('Bearer ')) {
try {
const token = authHeader.substring(7)
- const payload = verifyToken(token)
+ console.log('Chat API - token extracted, length:', token.length)
+ const payload = await verifyToken(token)
+ console.log('Chat API - token payload:', payload)
userId = payload.userId
+ console.log('Chat API - userId extracted from token:', userId)
} catch (error) {
// Continue without authentication for backward compatibility
- console.log('Chat without authentication')
+ console.log('Chat API - authentication failed:', error.message)
}
+ } else {
+ console.log('Chat API - no valid auth header')
}
// Handle conversation logic
@@ -97,6 +103,11 @@ export async function POST(request: NextRequest) {
const aiResponse = await generateBiblicalResponse(message, locale, conversationHistory)
// Save messages to database if user is authenticated
+ console.log('Chat API - conversation saving check:', {
+ userId: userId ? 'present' : 'null',
+ finalConversationId: finalConversationId ? 'present' : 'null',
+ willSave: !!(userId && finalConversationId)
+ })
if (userId && finalConversationId) {
await prisma.$transaction([
// Save user message
diff --git a/components/chat/floating-chat.tsx b/components/chat/floating-chat.tsx
index 36efdb0..032b97d 100644
--- a/components/chat/floating-chat.tsx
+++ b/components/chat/floating-chat.tsx
@@ -24,7 +24,6 @@ import {
DialogTitle,
DialogContent,
DialogActions,
- CircularProgress,
} from '@mui/material'
import {
Chat,
@@ -139,6 +138,7 @@ export default function FloatingChat() {
const checkAuthStatus = useCallback(async () => {
try {
const token = localStorage.getItem('authToken')
+ console.log('Chat - checkAuthStatus: token from localStorage:', token ? 'present' : 'null')
if (token) {
// Verify token with the server
const response = await fetch('/api/auth/me', {
@@ -146,18 +146,25 @@ export default function FloatingChat() {
'Authorization': `Bearer ${token}`
}
})
+ console.log('Chat - auth verification response:', response.ok)
if (response.ok) {
setAuthToken(token)
setIsAuthenticated(true)
+ console.log('Chat - Auth state set: authenticated')
} else {
localStorage.removeItem('authToken')
setIsAuthenticated(false)
setAuthToken(null)
+ console.log('Chat - Auth verification failed, cleared state')
}
+ } else {
+ console.log('Chat - No token in localStorage')
+ setIsAuthenticated(false)
+ setAuthToken(null)
}
} catch (error) {
- console.error('Auth check failed:', error)
+ console.error('Chat - Auth check failed:', error)
setIsAuthenticated(false)
setAuthToken(null)
}
@@ -342,8 +349,12 @@ export default function FloatingChat() {
}
// Add authentication if available
+ console.log('Chat - authToken value:', authToken ? 'present' : 'null')
if (authToken) {
headers['Authorization'] = `Bearer ${authToken}`
+ console.log('Chat - Authorization header added')
+ } else {
+ console.log('Chat - No authToken, skipping Authorization header')
}
const response = await fetch('/api/chat', {
@@ -569,7 +580,7 @@ export default function FloatingChat() {
) : isLoadingConversations ? (
-
+ ⟳
) : conversations.length === 0 ? (