mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-19 04:57:52 +00:00
send messag on reconnect
This commit is contained in:
@@ -12,6 +12,7 @@ import { messageListDetermineChanges } from '../async/list/rooms/messageListChan
|
||||
import { MessageEntity } from '../../domain/entity/message';
|
||||
import { InstanceId } from '../../domain/chat-service.service';
|
||||
import { MessageMapper } from '../../domain/mapper/messageMapper';
|
||||
import { MessageOutPutDataDTO } from '../dto/message/messageOutputDTO';
|
||||
|
||||
|
||||
@Injectable({
|
||||
@@ -26,6 +27,15 @@ export class MessageRepositoryService {
|
||||
private messageLocalDataSourceService: MessageLocalDataSourceService
|
||||
) {}
|
||||
|
||||
|
||||
async createMessageLocally(entity: MessageEntity) {
|
||||
const requestId = InstanceId +'@'+ uuidv4();
|
||||
const roomId = entity.roomId
|
||||
|
||||
return await this.messageLocalDataSourceService.sendMessage(entity)
|
||||
|
||||
}
|
||||
|
||||
async sendMessage(entity: MessageEntity) {
|
||||
|
||||
const requestId = InstanceId +'@'+ uuidv4();
|
||||
@@ -35,7 +45,7 @@ export class MessageRepositoryService {
|
||||
|
||||
if(localActionResult.isOk()) {
|
||||
const DTO = MessageMapper.fromDomain(entity, requestId)
|
||||
const sendMessageResult = await this.messageLiveSignalRDataSourceService.sendMessage(DTO)
|
||||
const sendMessageResult = await this.messageLiveSignalRDataSourceService.sendMessage<MessageOutPutDataDTO>(DTO)
|
||||
|
||||
if(sendMessageResult.isOk()) {
|
||||
|
||||
@@ -51,11 +61,9 @@ export class MessageRepositoryService {
|
||||
}
|
||||
|
||||
return this.messageLocalDataSourceService.update({...clone, sending: false, roomId: entity.roomId})
|
||||
return ok(true)
|
||||
} else {
|
||||
console.log('no message to upload', sendMessageResult.error)
|
||||
return this.messageLocalDataSourceService.update({sending: false, $id: localActionResult.value})
|
||||
return err(false)
|
||||
await this.messageLocalDataSourceService.update({sending: false, $id: localActionResult.value})
|
||||
return err('no connection')
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
@@ -6,6 +6,7 @@ import { MessageRemoteDataSourceService } from '../../data-source/message/messag
|
||||
import { InstanceId } from '../../../domain/chat-service.service';
|
||||
import { v4 as uuidv4 } from 'uuid'
|
||||
import { MessageMapper } from 'src/app/module/chat/domain/mapper/messageMapper'
|
||||
import { MessageOutPutDataDTO } from '../../dto/message/messageOutputDTO';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
@@ -23,11 +24,11 @@ export class SyncMessageRepositoryService {
|
||||
const messages = await this.messageLocalDataSourceService.getOfflineMessages()
|
||||
|
||||
if(messages.length >= 1) {
|
||||
console.log('to send '+ messages.length)
|
||||
|
||||
for(const message of messages) {
|
||||
const requestId = InstanceId +'@'+ uuidv4();
|
||||
const DTO = MessageMapper.fromDomain(message, requestId)
|
||||
const sendMessageResult = await this.messageLiveSignalRDataSourceService.sendMessage(DTO)
|
||||
const sendMessageResult = await this.messageLiveSignalRDataSourceService.sendMessage<MessageOutPutDataDTO>(DTO)
|
||||
|
||||
if(sendMessageResult.isOk()) {
|
||||
|
||||
@@ -42,7 +43,9 @@ export class SyncMessageRepositoryService {
|
||||
$id : message.$id
|
||||
}
|
||||
|
||||
return this.messageLocalDataSourceService.update({...clone, sending: false, roomId: message.roomId})
|
||||
this.messageLocalDataSourceService.update({...clone, sending: false, roomId: message.roomId})
|
||||
} else {
|
||||
this.messageLocalDataSourceService.update({sending: false, $id: message.$id})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import { MessageOutPutDataDTO } from '../../data/dto/message/messageOutputDTO';
|
||||
import { MessageDeleteInputDTO } from '../../data/dto/message/messageDeleteInputDTO';
|
||||
import { object, z } from 'zod';
|
||||
import { switchMap } from 'rxjs/operators';
|
||||
import { Result } from 'neverthrow';
|
||||
|
||||
const { App } = Plugins;
|
||||
|
||||
@@ -145,7 +146,7 @@ export class SignalRService {
|
||||
return this.connectingSubject.asObservable();
|
||||
}
|
||||
|
||||
async sendMessage(data: Object) {
|
||||
async sendMessage<T>(data: Object): Promise<Result<T, any>> {
|
||||
return await this.connection.sendMessage(data as any)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user