template_process_message_ok

This commit is contained in:
Pascal 2025-01-13 17:58:50 +01:00
parent 37e69790d9
commit ff911edf49

View File

@ -265,92 +265,63 @@ class ChatElement extends HTMLElement {
} }
} }
public async createMessagingProcess(otherMembers: Member[], relayAddress: string, feeRate: number): Promise<ApiReturn> { public async createMessagingProcess(
otherMembers: Member[],
relayAddress: string,
feeRate: number,
parentProcessId: string,
roleName: string
): Promise<ApiReturn> {
console.log('🚀 Début createMessagingProcess');
console.log('📝 Parent Process ID:', parentProcessId);
console.log('👥 Other Member:', otherMembers[0]);
console.log('👑 Role Name:', roleName);
if (!this.isPaired()) { if (!this.isPaired()) {
throw new Error('Device not paired'); throw new Error('Device not paired');
} }
const me = await this.getMemberFromDevice();
console.log('My SP addresses:', me);
if (!me) {
throw new Error('No paired member in device');
}
const allMembers: Member[] = otherMembers;
allMembers.push({ sp_addresses: me });
const meAndOne = [{ sp_addresses: me }, otherMembers.pop()!];
const everyOneElse = otherMembers;
const myAddresses = await this.getMemberFromDevice(); const myAddresses = await this.getMemberFromDevice();
console.log('🔑 Mes adresses:', myAddresses);
if (!myAddresses) { if (!myAddresses) {
throw new Error('No paired member found'); throw new Error('No paired member found');
} }
const messageContent = {
text: '',
timestamp: Date.now()
};
const messagingTemplate = { const messagingTemplate = {
process_id: crypto.randomUUID(), parent_id: parentProcessId,
parent_id: null,
description: 'messaging', description: 'messaging',
messages: {
state: 'initial',
object: {
type: 'message_list',
content: [
{
text: messageContent.text,
timestamp: Date.now(),
sender: myAddresses[0]
}
],
content_type: {
allowed: ['text', 'file'],
default: 'text'
},
metadata: {
created_at: Date.now(),
last_updated: Date.now()
}
}
},
roles: { roles: {
public: { [roleName]: {
members: allMembers, members: [
validation_rules: [ { sp_addresses: myAddresses },
{ { sp_addresses: otherMembers[0].sp_addresses }
quorum: 0.0,
fields: ['description', 'roles', 'messages'],
min_sig_member: 0.0,
},
], ],
storages: [storageUrl]
},
owner: {
members: meAndOne,
validation_rules: [ validation_rules: [
{ {
quorum: 1.0, quorum: 1.0,
fields: ['description', 'roles', 'messages'], fields: ['messages'],
min_sig_member: 1.0, min_sig_member: 1.0,
}, },
], ],
storages: [storageUrl] storages: [storageUrl]
}, }
users: { }
members: everyOneElse,
validation_rules: [
{
quorum: 0.0,
fields: ['description', 'roles', 'messages'],
min_sig_member: 0.0,
},
],
storages: [storageUrl]
},
},
}; };
console.log('📋 Template final:', JSON.stringify(messagingTemplate, null, 2));
try { try {
return this.sdkClient.create_new_process(JSON.stringify(messagingTemplate), null, relayAddress, feeRate); const result = await this.sdkClient.create_new_process(
JSON.stringify(messagingTemplate),
parentProcessId,
relayAddress,
feeRate
);
console.log('✅ Résultat création process:', result);
return result;
} catch (e) { } catch (e) {
console.error('❌ Erreur création process:', e);
throw new Error(`Creating process failed: ${e}`); throw new Error(`Creating process failed: ${e}`);
} }
} }
@ -468,10 +439,16 @@ class ChatElement extends HTMLElement {
} }
}; };
const groupItem = this.shadowRoot?.querySelector('[data-process-id]');
const parentProcessId = groupItem?.getAttribute('data-process-id') || '';
const roleName = 'default';
const result = await this.createMessagingProcess( const result = await this.createMessagingProcess(
[{ sp_addresses: [this.selectedMemberId] }], [{ sp_addresses: [this.selectedMemberId!] }],
'relay_address', 'relay_address',
1 1,
this.processId || '',
'default'
); );
await this.saveConversationProcessRef(this.selectedMemberId, messagingTemplate.process_id); await this.saveConversationProcessRef(this.selectedMemberId, messagingTemplate.process_id);
@ -586,10 +563,15 @@ class ChatElement extends HTMLElement {
sdkClientInitialized: !!this.sdkClient sdkClientInitialized: !!this.sdkClient
}); });
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,
roleName
); );
console.log('Messaging process created:', { console.log('Messaging process created:', {
@ -1088,9 +1070,8 @@ class ChatElement extends HTMLElement {
return new Promise((resolve) => { return new Promise((resolve) => {
// Logique d'initialisation du SDK // Logique d'initialisation du SDK
resolve({ resolve({
is_paired: () => true, // Valeur par défaut pour le test is_paired: () => true,
create_new_process: async (template: string, parentId: string | null, relayAddress: string, feeRate: number) => { create_new_process: async (template: string, parentId: string | null, relayAddress: string, feeRate: number) => {
// Implémentation de create_new_process
return { success: true }; return { success: true };
} }
}); });