mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-18 20:47:54 +00:00
remove method to infra added to message repository
This commit is contained in:
@@ -28,7 +28,7 @@ export class SignalRService {
|
||||
|
||||
this.deadConnectionBackGround = new Subject()
|
||||
this.deadConnectionBackGround.pipe(
|
||||
switchMap(() => timer(150000)),
|
||||
switchMap(() => timer(150000)), // 2 minutes 30 seconds
|
||||
).subscribe(() => {
|
||||
this.newConnection()
|
||||
})
|
||||
@@ -82,40 +82,6 @@ export class SignalRService {
|
||||
}, 2000)
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
getMessage() {
|
||||
return this.getData().pipe(
|
||||
filter((e) : e is SocketMessage<MessageOutPutDataDTO>=> e?.method == 'ReceiveMessage'
|
||||
),
|
||||
map((e)=> e.data)
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
getTyping() {
|
||||
return this.getData().pipe(
|
||||
filter((e) : e is SocketMessage<UserTypingDTO>=> e?.method == 'TypingMessage'
|
||||
),
|
||||
map((e)=> e.data)
|
||||
)
|
||||
}
|
||||
|
||||
getMessageDelete() {
|
||||
return this.getData().pipe(
|
||||
filter((e) : e is SocketMessage<MessageOutPutDataDTO>=> e?.method == 'DeleteMessage'
|
||||
),
|
||||
map((e)=> e.data)
|
||||
)
|
||||
}
|
||||
|
||||
getMessageUpdate() {
|
||||
return this.getData().pipe(
|
||||
filter((e) : e is SocketMessage<MessageOutPutDataDTO>=> e?.method == 'UpdateMessage'
|
||||
),
|
||||
map((e)=> e.data)
|
||||
)
|
||||
}
|
||||
|
||||
sendData<T>(input: ISignalRInput) {
|
||||
@@ -126,13 +92,6 @@ export class SignalRService {
|
||||
return this.connection.join()
|
||||
}
|
||||
|
||||
// onReconnect() {
|
||||
// const connection = this.getConnectionState()
|
||||
// return connection.pipe(
|
||||
// skip(1) // Skip the first value
|
||||
// )
|
||||
// }
|
||||
|
||||
getData<T>() {
|
||||
return this.sendDataSubject.asObservable() as BehaviorSubject<{method: string, data: T}>
|
||||
}
|
||||
|
||||
@@ -60,10 +60,11 @@ export class SignalRConnection {
|
||||
console.log('Error while starting connection: ' + error);
|
||||
if(this.hasConnectOnce) {
|
||||
setTimeout(()=> {
|
||||
this.attempReconnect();
|
||||
resolve(this.attempReconnect());
|
||||
}, 2000)
|
||||
}
|
||||
} else {
|
||||
resolve(err(false))
|
||||
}
|
||||
});
|
||||
|
||||
hubConnection.onclose(() => {
|
||||
@@ -85,7 +86,9 @@ export class SignalRConnection {
|
||||
});
|
||||
|
||||
if(this.reconnect) {
|
||||
this.attempReconnect();
|
||||
resolve(this.attempReconnect());
|
||||
} else {
|
||||
resolve(err(false))
|
||||
}
|
||||
|
||||
});
|
||||
@@ -100,6 +103,7 @@ export class SignalRConnection {
|
||||
this.reconnectSubject.next(true)
|
||||
}
|
||||
|
||||
return attempConnection
|
||||
}
|
||||
|
||||
public join() {
|
||||
|
||||
+17
-6
@@ -1,6 +1,4 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { err, ok } from 'neverthrow';
|
||||
import { SessionStore } from 'src/app/store/session.service';
|
||||
import { MessageDeleteInputDTO } from '../../dto/message/messageDeleteInputDTO';
|
||||
import { v4 as uuidv4 } from 'uuid'
|
||||
import { InstanceId } from '../../../domain/chat-service.service';
|
||||
@@ -9,6 +7,8 @@ import { MessageOutPutDataDTO } from '../../dto/message/messageOutputDTO';
|
||||
import { MessageInputDTO } from '../../dto/message/messageInputDtO';
|
||||
import { MessageReactionInput } from '../../../domain/use-case/message/message-reaction-by-id-use-case.service';
|
||||
import { SignalRService } from 'src/app/infra/socket/signalR/signal-r.service';
|
||||
import { filter, map } from 'rxjs/operators';
|
||||
import { SocketMessage } from 'src/app/infra/socket/signalR/signalR';
|
||||
|
||||
interface msgObj {
|
||||
roomId: string;
|
||||
@@ -109,17 +109,28 @@ export class MessageSocketRepositoryService {
|
||||
}
|
||||
|
||||
listenToMessages() {
|
||||
return this.socket.getMessage()
|
||||
return this.socket.getData().pipe(
|
||||
filter((e) : e is SocketMessage<MessageOutPutDataDTO>=> e?.method == 'ReceiveMessage'
|
||||
),
|
||||
map((e)=> e.data)
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
listenToDeleteMessages() {
|
||||
return this.socket.getMessageDelete()
|
||||
return this.socket.getData().pipe(
|
||||
filter((e) : e is SocketMessage<MessageOutPutDataDTO>=> e?.method == 'DeleteMessage'
|
||||
),
|
||||
map((e)=> e.data)
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
listenToUpdateMessages() {
|
||||
return this.socket.getMessageUpdate()
|
||||
return this.socket.getData().pipe(
|
||||
filter((e) : e is SocketMessage<MessageOutPutDataDTO>=> e?.method == 'UpdateMessage'
|
||||
),
|
||||
map((e)=> e.data)
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -41,6 +41,8 @@ import { RoomType } from "src/app/core/chat/entity/group";
|
||||
import { sendReadAt } from "src/app/module/chat/data/repository/message/message-live-signalr-data-source.service";
|
||||
import { HttpListenToMessageLoadHistoryAdapter } from './adapter'
|
||||
import { HttpListenToMessageLoadHistoryUseCaseInput } from 'src/app/core/chat/usecase/message/http-listen-to-message-load-history-use-case';
|
||||
import { MessageSocketRepositoryService } from 'src/app/module/chat/data/repository/message/message-live-signalr-data-source.service'
|
||||
|
||||
export const InstanceId = uuidv4();
|
||||
|
||||
@Injectable({
|
||||
@@ -80,8 +82,9 @@ export class ChatServiceService {
|
||||
private SocketConnectUseCaseService: SocketConnectUseCaseService,
|
||||
private MessageMarkAllMessageAsReadByRoomIdService: MessageMarkAllMessageAsReadByRoomIdService,
|
||||
private HttpListenToMessageLoadHistory: HttpListenToMessageLoadHistoryAdapter,
|
||||
private MessageSocketRepositoryService: MessageSocketRepositoryService,
|
||||
) {
|
||||
this.messageLiveSignalRDataSourceService.getMessageDelete()
|
||||
this.MessageSocketRepositoryService.listenToDeleteMessages()
|
||||
.pipe()
|
||||
.subscribe(async (message) => {
|
||||
if(message?.id) {
|
||||
@@ -89,7 +92,7 @@ export class ChatServiceService {
|
||||
}
|
||||
})
|
||||
|
||||
this.messageLiveSignalRDataSourceService.getMessageUpdate().pipe(
|
||||
this.MessageSocketRepositoryService.listenToUpdateMessages().pipe(
|
||||
filter((message) => {
|
||||
return !message?.requestId?.startsWith(InstanceId)
|
||||
})
|
||||
@@ -99,7 +102,7 @@ export class ChatServiceService {
|
||||
}
|
||||
})
|
||||
|
||||
this.messageLiveSignalRDataSourceService.getMessage().pipe(
|
||||
this.MessageSocketRepositoryService.listenToMessages().pipe(
|
||||
filter((message) => {
|
||||
if(!message?.requestId?.startsWith(InstanceId) == false) {
|
||||
// console.log('exclude my message---')
|
||||
|
||||
+3
-3
@@ -1,18 +1,18 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { filter } from 'rxjs/operators';
|
||||
import { SignalRService } from 'src/app/infra/socket/signalR/signal-r.service';
|
||||
|
||||
import { MessageSocketRepositoryService } from 'src/app/module/chat/data/repository/message/message-live-signalr-data-source.service'
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
})
|
||||
export class ListenMessageDeleteByRoomIdService {
|
||||
|
||||
constructor(
|
||||
private messageLiveSignalRDataSourceService: SignalRService,
|
||||
private MessageSocketRepositoryService: MessageSocketRepositoryService,
|
||||
) { }
|
||||
|
||||
execute({roomId}) {
|
||||
return this.messageLiveSignalRDataSourceService.getMessageDelete().pipe(
|
||||
return this.MessageSocketRepositoryService.listenToDeleteMessages().pipe(
|
||||
filter((message) => {
|
||||
return roomId == message?.roomId
|
||||
} )
|
||||
|
||||
Reference in New Issue
Block a user