create_process_message_with_attributes_ok
This commit is contained in:
parent
ff911edf49
commit
ffacc8a555
@ -269,11 +269,11 @@ class ChatElement extends HTMLElement {
|
|||||||
otherMembers: Member[],
|
otherMembers: Member[],
|
||||||
relayAddress: string,
|
relayAddress: string,
|
||||||
feeRate: number,
|
feeRate: number,
|
||||||
parentProcessId: string,
|
processId: string,
|
||||||
roleName: string
|
roleName: string
|
||||||
): Promise<ApiReturn> {
|
): Promise<ApiReturn> {
|
||||||
console.log('🚀 Début createMessagingProcess');
|
console.log('🚀 Début createMessagingProcess');
|
||||||
console.log('📝 Parent Process ID:', parentProcessId);
|
console.log('📝 Parent Process ID:', this.processId);
|
||||||
console.log('👥 Other Member:', otherMembers[0]);
|
console.log('👥 Other Member:', otherMembers[0]);
|
||||||
console.log('👑 Role Name:', roleName);
|
console.log('👑 Role Name:', roleName);
|
||||||
|
|
||||||
@ -288,8 +288,15 @@ class ChatElement extends HTMLElement {
|
|||||||
throw new Error('No paired member found');
|
throw new Error('No paired member found');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const currentProcessId = this.getAttribute('process-id');
|
||||||
|
console.log('🔍 Current Process ID from attribute:', currentProcessId);
|
||||||
|
|
||||||
|
if (!currentProcessId) {
|
||||||
|
throw new Error('No process ID found in element attributes');
|
||||||
|
}
|
||||||
|
|
||||||
const messagingTemplate = {
|
const messagingTemplate = {
|
||||||
parent_id: parentProcessId,
|
parent_id: currentProcessId,
|
||||||
description: 'messaging',
|
description: 'messaging',
|
||||||
roles: {
|
roles: {
|
||||||
[roleName]: {
|
[roleName]: {
|
||||||
@ -314,11 +321,11 @@ class ChatElement extends HTMLElement {
|
|||||||
try {
|
try {
|
||||||
const result = await this.sdkClient.create_new_process(
|
const result = await this.sdkClient.create_new_process(
|
||||||
JSON.stringify(messagingTemplate),
|
JSON.stringify(messagingTemplate),
|
||||||
parentProcessId,
|
this.processId,
|
||||||
relayAddress,
|
relayAddress,
|
||||||
feeRate
|
feeRate
|
||||||
);
|
);
|
||||||
console.log('✅ Résultat création process:', result);
|
console.log('✅ Process message créé:', result);
|
||||||
return result;
|
return result;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('❌ Erreur création process:', e);
|
console.error('❌ Erreur création process:', e);
|
||||||
@ -379,84 +386,26 @@ class ChatElement extends HTMLElement {
|
|||||||
throw new Error('No paired member found');
|
throw new Error('No paired member found');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// On récupère le processus existant
|
||||||
const existingProcess = await this.getExistingConversationProcess(this.selectedMemberId);
|
const existingProcess = await this.getExistingConversationProcess(this.selectedMemberId);
|
||||||
|
|
||||||
// Ajoutons des logs pour voir la structure exacte
|
if (!existingProcess) {
|
||||||
console.log('📝 Process existant:', {
|
console.error('❌ Aucun processus de message trouvé');
|
||||||
fullProcess: existingProcess,
|
return;
|
||||||
messageStructure: existingProcess?.messages?.object?.content?.[0]
|
}
|
||||||
});
|
|
||||||
|
|
||||||
const messageContent = {
|
const messageContent = {
|
||||||
text: messageText,
|
text: messageText,
|
||||||
timestamp: Date.now(),
|
timestamp: Date.now(),
|
||||||
sender: myAddresses[0],
|
sender: myAddresses[0],
|
||||||
type: 'text',
|
type: 'text'
|
||||||
state: 'initial',
|
|
||||||
object: {
|
|
||||||
content: messageText,
|
|
||||||
metadata: {
|
|
||||||
created_at: Date.now(),
|
|
||||||
last_updated: Date.now()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
console.log('📝 Nouveau message:', messageContent);
|
// Mise à jour du processus existant avec le nouveau message
|
||||||
|
|
||||||
if (existingProcess) {
|
|
||||||
console.log('✏️ Mise à jour du processus:', {
|
|
||||||
processId: existingProcess.process_id,
|
|
||||||
currentMessages: existingProcess.messages.object.content,
|
|
||||||
newMessage: messageContent
|
|
||||||
});
|
|
||||||
// Mettre à jour le processus existant avec le nouveau message
|
|
||||||
existingProcess.messages.object.content.push(messageContent);
|
|
||||||
existingProcess.messages.object.metadata.last_updated = Date.now();
|
|
||||||
|
|
||||||
await this.updateProcessWithNewMessage(existingProcess.process_id, messageContent);
|
await this.updateProcessWithNewMessage(existingProcess.process_id, messageContent);
|
||||||
console.log('✅ Message ajouté au processus existant:', existingProcess.process_id);
|
console.log('✅ Message ajouté au processus existant:', existingProcess.process_id);
|
||||||
} else {
|
|
||||||
// Créer un nouveau processus de message
|
|
||||||
const messagingTemplate = {
|
|
||||||
process_id: crypto.randomUUID(),
|
|
||||||
parent_id: null,
|
|
||||||
description: 'messaging',
|
|
||||||
messages: {
|
|
||||||
state: 'initial',
|
|
||||||
object: {
|
|
||||||
type: 'message_list',
|
|
||||||
content: [messageContent],
|
|
||||||
content_type: {
|
|
||||||
allowed: ['text', 'file'],
|
|
||||||
default: 'text'
|
|
||||||
},
|
|
||||||
metadata: {
|
|
||||||
created_at: Date.now(),
|
|
||||||
last_updated: Date.now()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const groupItem = this.shadowRoot?.querySelector('[data-process-id]');
|
|
||||||
const parentProcessId = groupItem?.getAttribute('data-process-id') || '';
|
|
||||||
const roleName = 'default';
|
|
||||||
|
|
||||||
const result = await this.createMessagingProcess(
|
|
||||||
[{ sp_addresses: [this.selectedMemberId!] }],
|
|
||||||
'relay_address',
|
|
||||||
1,
|
|
||||||
this.processId || '',
|
|
||||||
'default'
|
|
||||||
);
|
|
||||||
|
|
||||||
await this.saveConversationProcessRef(this.selectedMemberId, messagingTemplate.process_id);
|
|
||||||
console.log('✅ Nouveau processus de message créé:', messagingTemplate.process_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
messageInput.value = '';
|
messageInput.value = '';
|
||||||
|
|
||||||
this.loadMemberChat(this.selectedMemberId);
|
this.loadMemberChat(this.selectedMemberId);
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@ -546,43 +495,26 @@ class ChatElement extends HTMLElement {
|
|||||||
memberItem.onclick = async (event) => {
|
memberItem.onclick = async (event) => {
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
try {
|
try {
|
||||||
if (!this.sdkClient) {
|
const existingProcess = await this.getExistingConversationProcess(member.sp_addresses[0]);
|
||||||
await this.initSDKClient();
|
|
||||||
}
|
|
||||||
|
|
||||||
const groupItem = roleElement.closest('[data-process-id]');
|
|
||||||
const processId = groupItem?.getAttribute('data-process-id');
|
|
||||||
|
|
||||||
if (!processId) {
|
|
||||||
throw new Error('Process ID not found');
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log('Creating messaging process with:', {
|
|
||||||
processId,
|
|
||||||
member,
|
|
||||||
sdkClientInitialized: !!this.sdkClient
|
|
||||||
});
|
|
||||||
|
|
||||||
|
if (existingProcess) {
|
||||||
|
console.log('✅ Processus existant trouvé, chargement de la conversation');
|
||||||
|
this.loadMemberChat(member.sp_addresses[0]);
|
||||||
|
} else {
|
||||||
|
console.log('🆕 Création d\'un nouveau processus de message');
|
||||||
const roleName = roleElement.querySelector('.role-name')?.textContent || 'default';
|
const roleName = roleElement.querySelector('.role-name')?.textContent || 'default';
|
||||||
console.log('🎭 Role cliqué:', roleName);
|
|
||||||
|
|
||||||
const result = await this.createMessagingProcess(
|
const result = await this.createMessagingProcess(
|
||||||
[member],
|
[member],
|
||||||
'relay_address',
|
'relay_address',
|
||||||
1,
|
1,
|
||||||
processId,
|
this.processId || '',
|
||||||
roleName
|
roleName
|
||||||
);
|
);
|
||||||
|
await this.saveConversationProcessRef(member.sp_addresses[0], (result as any).process_id);
|
||||||
console.log('Messaging process created:', {
|
|
||||||
processId,
|
|
||||||
template: result,
|
|
||||||
member: member
|
|
||||||
});
|
|
||||||
|
|
||||||
this.loadMemberChat(member.sp_addresses[0]);
|
this.loadMemberChat(member.sp_addresses[0]);
|
||||||
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error creating messaging process:', error);
|
console.error('❌ Erreur:', error);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -900,11 +832,12 @@ class ChatElement extends HTMLElement {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const result = await this.createMessagingProcess(
|
const result = await this.createMessagingProcess(
|
||||||
[{ sp_addresses: [this.selectedMemberId!] }],
|
[{ sp_addresses: [this.selectedMemberId!] }],
|
||||||
'relay_address',
|
'relay_address',
|
||||||
1
|
1,
|
||||||
|
JSON.stringify(messageTemplate),
|
||||||
|
'file_message'
|
||||||
);
|
);
|
||||||
|
|
||||||
console.log('Final file message process:', {
|
console.log('Final file message process:', {
|
||||||
@ -994,39 +927,42 @@ class ChatElement extends HTMLElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private addNewMessagingProcess(processId: string, processName: string) {
|
private addNewMessagingProcess(processId: string, processName: string) {
|
||||||
console.log('🎯 Adding new messaging process:', { processId, processName });
|
console.log('🎯 Début addNewMessagingProcess');
|
||||||
|
console.log('📝 ProcessId reçu:', processId);
|
||||||
|
|
||||||
|
// Stockage immédiat du processId
|
||||||
|
this.processId = processId;
|
||||||
|
console.log('💾 ProcessId stocké dans this.processId:', this.processId);
|
||||||
|
|
||||||
const groupList = this.shadowRoot?.querySelector('#group-list');
|
const groupList = this.shadowRoot?.querySelector('#group-list');
|
||||||
if (!groupList) {
|
if (!groupList) {
|
||||||
console.error('Group list not found in shadow DOM');
|
console.error('Group list not found');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Vérifier si le processus existe déjà
|
// Vérification que le processId est bien stocké
|
||||||
|
console.log('🔍 Vérification this.processId après stockage:', this.processId);
|
||||||
|
|
||||||
const existingProcess = groupList.querySelector(`[data-process-id="${processId}"]`);
|
const existingProcess = groupList.querySelector(`[data-process-id="${processId}"]`);
|
||||||
if (existingProcess) {
|
if (existingProcess) {
|
||||||
console.log('Process already exists:', processId);
|
console.log('Process already exists:', processId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Créer le nouveau groupe
|
|
||||||
const li = document.createElement('li');
|
const li = document.createElement('li');
|
||||||
li.className = 'group-list-item';
|
li.className = 'group-list-item';
|
||||||
li.setAttribute('data-process-id', processId);
|
li.setAttribute('data-process-id', processId);
|
||||||
|
|
||||||
// Créer le conteneur flex
|
|
||||||
const container = document.createElement('div');
|
const container = document.createElement('div');
|
||||||
container.className = 'group-item-container';
|
container.className = 'group-item-container';
|
||||||
|
|
||||||
// Créer un span pour le nom du processus
|
|
||||||
const nameSpan = document.createElement('span');
|
const nameSpan = document.createElement('span');
|
||||||
nameSpan.textContent = processName;
|
nameSpan.textContent = processName;
|
||||||
nameSpan.className = 'process-name';
|
nameSpan.className = 'process-name';
|
||||||
|
|
||||||
// Créer un span pour les emojis
|
|
||||||
const emojiSpan = document.createElement('span');
|
const emojiSpan = document.createElement('span');
|
||||||
emojiSpan.className = 'process-emoji';
|
emojiSpan.className = 'process-emoji';
|
||||||
|
|
||||||
// Ajouter les emojis de l'adresse
|
|
||||||
addressToEmoji(processId).then(emojis => {
|
addressToEmoji(processId).then(emojis => {
|
||||||
emojiSpan.textContent = emojis;
|
emojiSpan.textContent = emojis;
|
||||||
});
|
});
|
||||||
@ -1035,12 +971,10 @@ class ChatElement extends HTMLElement {
|
|||||||
container.appendChild(emojiSpan);
|
container.appendChild(emojiSpan);
|
||||||
li.appendChild(container);
|
li.appendChild(container);
|
||||||
|
|
||||||
// Créer la liste des rôles
|
|
||||||
const roleList = document.createElement('ul');
|
const roleList = document.createElement('ul');
|
||||||
roleList.className = 'role-list';
|
roleList.className = 'role-list';
|
||||||
roleList.style.display = 'none';
|
roleList.style.display = 'none';
|
||||||
|
|
||||||
// Ajouter un rôle par défaut pour le messaging
|
|
||||||
const roleItem = document.createElement('li');
|
const roleItem = document.createElement('li');
|
||||||
roleItem.className = 'role-item';
|
roleItem.className = 'role-item';
|
||||||
roleItem.textContent = 'Messaging';
|
roleItem.textContent = 'Messaging';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user