43 lines
1.2 KiB
TypeScript
43 lines
1.2 KiB
TypeScript
import { ChatMessage } from '../types';
|
|
import { apiService } from './apiService';
|
|
|
|
export class ChatService {
|
|
async sendMessage(messages: ChatMessage[]): Promise<string> {
|
|
try {
|
|
// Convert ChatMessage format to API format
|
|
const apiMessages = messages.map(msg => ({
|
|
role: msg.role,
|
|
content: msg.content
|
|
}));
|
|
|
|
const response = await apiService.sendChatMessage(apiMessages);
|
|
return response;
|
|
} catch (error) {
|
|
console.error('Chat service error:', error);
|
|
throw new Error('Failed to get response from chat service. Please try again or create a support ticket.');
|
|
}
|
|
}
|
|
|
|
async createTicketFromConversation(
|
|
requester: string,
|
|
email: string,
|
|
messages: ChatMessage[]
|
|
) {
|
|
try {
|
|
const conversation = messages
|
|
.map(msg => `${msg.role === 'user' ? 'User' : 'Assistant'}: ${msg.content}`)
|
|
.join('\n\n');
|
|
|
|
const response = await apiService.createTicketFromChat({
|
|
requester,
|
|
email,
|
|
conversation
|
|
});
|
|
|
|
return response.ticket;
|
|
} catch (error) {
|
|
console.error('Error creating ticket from chat:', error);
|
|
throw error;
|
|
}
|
|
}
|
|
} |