From ff911edf4974f5c04ea8384a00dbd05b0ea6135b Mon Sep 17 00:00:00 2001 From: Pascal Date: Mon, 13 Jan 2025 17:58:50 +0100 Subject: [PATCH] template_process_message_ok --- src/pages/chat/chat.ts | 121 +++++++++++++++++------------------------ 1 file changed, 51 insertions(+), 70 deletions(-) diff --git a/src/pages/chat/chat.ts b/src/pages/chat/chat.ts index 57a520f..2a02dfd 100755 --- a/src/pages/chat/chat.ts +++ b/src/pages/chat/chat.ts @@ -265,92 +265,63 @@ class ChatElement extends HTMLElement { } } - public async createMessagingProcess(otherMembers: Member[], relayAddress: string, feeRate: number): Promise { + public async createMessagingProcess( + otherMembers: Member[], + relayAddress: string, + feeRate: number, + parentProcessId: string, + roleName: string + ): Promise { + 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()) { - 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(); + console.log('🔑 Mes adresses:', myAddresses); + if (!myAddresses) { throw new Error('No paired member found'); } - const messageContent = { - text: '', - timestamp: Date.now() - }; + const messagingTemplate = { - process_id: crypto.randomUUID(), - parent_id: null, + parent_id: parentProcessId, 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: { - public: { - members: allMembers, - validation_rules: [ - { - quorum: 0.0, - fields: ['description', 'roles', 'messages'], - min_sig_member: 0.0, - }, + [roleName]: { + members: [ + { sp_addresses: myAddresses }, + { sp_addresses: otherMembers[0].sp_addresses } ], - storages: [storageUrl] - }, - owner: { - members: meAndOne, validation_rules: [ { quorum: 1.0, - fields: ['description', 'roles', 'messages'], + fields: ['messages'], min_sig_member: 1.0, }, ], 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 { - 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) { + console.error('❌ Erreur création process:', 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( - [{ sp_addresses: [this.selectedMemberId] }], + [{ sp_addresses: [this.selectedMemberId!] }], 'relay_address', - 1 + 1, + this.processId || '', + 'default' ); await this.saveConversationProcessRef(this.selectedMemberId, messagingTemplate.process_id); @@ -586,10 +563,15 @@ class ChatElement extends HTMLElement { sdkClientInitialized: !!this.sdkClient }); + const roleName = roleElement.querySelector('.role-name')?.textContent || 'default'; + console.log('🎭 Role cliqué:', roleName); + const result = await this.createMessagingProcess( [member], 'relay_address', - 1 + 1, + processId, + roleName ); console.log('Messaging process created:', { @@ -1088,9 +1070,8 @@ class ChatElement extends HTMLElement { return new Promise((resolve) => { // Logique d'initialisation du SDK 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) => { - // Implémentation de create_new_process return { success: true }; } });