From 3a5f630a652da632cc3ae984e606a9b46cd398fa Mon Sep 17 00:00:00 2001 From: "tiago.kayaya" Date: Tue, 29 Mar 2022 00:03:54 +0100 Subject: [PATCH] save --- src/app/models/beast-orm.ts | 18 ++++++------- src/app/pages/chat/messages/messages.page.ts | 4 ++- src/app/services/chat/message.service.ts | 25 ++++++++++--------- src/app/shared/chat/messages/messages.page.ts | 14 +++++++---- 4 files changed, 34 insertions(+), 27 deletions(-) diff --git a/src/app/models/beast-orm.ts b/src/app/models/beast-orm.ts index 49809e81f..d06d84c6c 100644 --- a/src/app/models/beast-orm.ts +++ b/src/app/models/beast-orm.ts @@ -1,7 +1,7 @@ import { models } from 'beast-orm' import { AESEncrypt } from '../services/aesencrypt.service' -const _AESEncrypt = new AESEncrypt() +const _AESEncrypt = new AESEncrypt() const { ArrayField, JsonField} = models.indexedDB.fields export class MessageModel extends models.Model { @@ -10,17 +10,17 @@ export class MessageModel extends models.Model { mentions = ArrayField() msg = models.CharField() rid = models.CharField() - ts = models.CharField() + ts = models.CharField({blank:true}) u = JsonField() - _id = models.CharField({unique:true}) + _id = models.CharField() _updatedAt = models.CharField() messageSend = models.BooleanField() offline = models.BooleanField() - viewed = ArrayField() - received = ArrayField() + viewed = ArrayField({blank:true}) + received = ArrayField({blank:true}) localReference = models.CharField({blank:true}) - attachments = ArrayField() - file = ArrayField() + attachments = ArrayField({blank:true}) + file = ArrayField({blank:true}) } @@ -38,7 +38,7 @@ export class DeleteMessageModel extends models.Model { models.register({ databaseName: 'chat-storage', - type: 'indexedDB', + type: 'indexedDB', version: 1, models: [MessageModel, DeleteMessageModel] -}) \ No newline at end of file +}) diff --git a/src/app/pages/chat/messages/messages.page.ts b/src/app/pages/chat/messages/messages.page.ts index 4468a1960..aad3eb97b 100644 --- a/src/app/pages/chat/messages/messages.page.ts +++ b/src/app/pages/chat/messages/messages.page.ts @@ -392,7 +392,7 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { const roomId = this.roomId let audioFile; this.storage.get('recordData').then((recordData) => { - console.log(recordData); + audioFile = recordData; if(recordData.value.recordDataBase64.includes('data:audio')){ this.audioRecorded = recordData.value.recordDataBase64; @@ -401,6 +401,8 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { this.audioRecorded = `data:${recordData.value.mimeType};base64,${recordData.value.recordDataBase64}`; } + console.log(this.audioRecorded); + //Converting base64 to blob const encodedData = btoa(this.audioRecorded); const blob = this.base64toBlob(encodedData, recordData.value.mimeType) diff --git a/src/app/services/chat/message.service.ts b/src/app/services/chat/message.service.ts index 472164861..5bb432203 100644 --- a/src/app/services/chat/message.service.ts +++ b/src/app/services/chat/message.service.ts @@ -22,10 +22,10 @@ export class MessageService { msg = '' rid = '' ts = {} - - u = { - name: '', - username: '', + + u = { + name: '', + username: '', _id: "" } @@ -138,7 +138,7 @@ export class MessageService { if(!this.hasFile) { const params = {roomId:this.rid, msg:this.msg, localReference: this.localReference} - + await this.sendRequest(params) } else { @@ -178,7 +178,7 @@ export class MessageService { return new Promise((resolve, reject)=>{ reject(false) }) - + } } @@ -197,12 +197,12 @@ export class MessageService { this.WsChatService.registerCallback({ type: 'reConnect', funx: async ()=> { - + this.WsChatService.send(params).then(({message, requestId}) => { let ChatMessage = message.result this.messageSend = true this.redefinedMessage(ChatMessage) - + }) return true } @@ -213,7 +213,7 @@ export class MessageService { async redefinedMessage(ChatMessage , update = true) { ChatMessage = this.NfService.fix_updatedAt(ChatMessage) - + const message = this.getChatObj() ChatMessage = Object.assign(message, ChatMessage) @@ -241,7 +241,7 @@ export class MessageService { } async delateDB() { - + // alert('delete data') const message = await MessageModel.get({_id: this._id}) await message.delete() @@ -261,8 +261,8 @@ export class MessageService { return { channels: this.channels, mentions: this.mentions, - //msg: this.AESEncrypt.encrypt(this.msg, SessionStore.user.RochetChatUser), - msg:this.msg, + //msg: this.AESEncrypt.encrypt(this.msg, SessionStore.user.RochetChatUser), + msg:this.msg, rid: this.rid, ts: this.ts, u: this.u, @@ -294,6 +294,7 @@ export class MessageService { async save() { const message = this.getChatObj() + console.log(message); await MessageModel.update(message) diff --git a/src/app/shared/chat/messages/messages.page.ts b/src/app/shared/chat/messages/messages.page.ts index 34fcd92ec..66821e7b2 100644 --- a/src/app/shared/chat/messages/messages.page.ts +++ b/src/app/shared/chat/messages/messages.page.ts @@ -257,11 +257,13 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy this.storage.get('recordData').then((recordData) => { console.log(recordData); - if(recordData.value.recordDataBase64.includes('data:audio')){ - this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(recordData.value.recordDataBase64); - } - else{ - this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(`data:${recordData.value.mimeType};base64,${recordData.value.recordDataBase64}`); + if(recordData){ + if(recordData.value.recordDataBase64.includes('data:audio')){ + this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(recordData.value.recordDataBase64); + } + else{ + this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(`data:${recordData.value.mimeType};base64,${recordData.value.recordDataBase64}`); + } } }); } @@ -389,6 +391,8 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy this.audioRecorded = `data:${recordData.value.mimeType};base64,${recordData.value.recordDataBase64}`; } + console.log(this.audioRecorded); + //Converting base64 to blob const encodedData = btoa(this.audioRecorded); const blob = this.base64toBlob(encodedData, recordData.value.mimeType)