2024-07-11 10:28:21 +01:00
|
|
|
import { Injectable } from '@angular/core';
|
|
|
|
|
import { MessageLiveDataSourceService } from '../../data-source/message/message-live-data-source.service';
|
|
|
|
|
import { MessageLocalDataSourceService } from '../../data-source/message/message-local-data-source.service';
|
|
|
|
|
import { MessageRemoteDataSourceService } from '../../data-source/message/message-remote-data-source.service';
|
|
|
|
|
import { SignalRService } from '../../../infra/socket/signal-r.service';
|
|
|
|
|
import { filter } from 'rxjs/operators';
|
|
|
|
|
import { InstanceId } from '../../repository/message-respository.service';
|
|
|
|
|
|
|
|
|
|
@Injectable({
|
|
|
|
|
providedIn: 'root'
|
|
|
|
|
})
|
|
|
|
|
export class MessageAsyncService {
|
|
|
|
|
|
|
|
|
|
constructor(
|
|
|
|
|
private messageRemoteDataSourceService: MessageRemoteDataSourceService,
|
|
|
|
|
private messageLiveDataSourceService: MessageLiveDataSourceService,
|
|
|
|
|
private messageLiveSignalRDataSourceService: SignalRService,
|
|
|
|
|
private messageLocalDataSourceService: MessageLocalDataSourceService
|
|
|
|
|
) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.messageLiveSignalRDataSourceService.getMessage().pipe(
|
|
|
|
|
filter((message: any) => {
|
|
|
|
|
return !message?.requestId?.startsWith(InstanceId) && message?.requestId
|
|
|
|
|
})
|
|
|
|
|
).subscribe(async (message: any) => {
|
|
|
|
|
|
|
|
|
|
console.log('message async ', message)
|
|
|
|
|
const id = message.id
|
|
|
|
|
delete message.id;
|
|
|
|
|
|
2024-07-11 12:12:43 +01:00
|
|
|
const result = await this.messageLocalDataSourceService.createMessage({
|
|
|
|
|
messageId: id,
|
|
|
|
|
sending: false,
|
|
|
|
|
...message
|
|
|
|
|
})
|
2024-07-11 10:28:21 +01:00
|
|
|
|
2024-07-11 12:12:43 +01:00
|
|
|
if(result.isOk()) {
|
2024-07-11 10:28:21 +01:00
|
|
|
|
2024-07-11 12:12:43 +01:00
|
|
|
console.log(result.value)
|
|
|
|
|
console.log("nice send receive")
|
2024-07-11 10:28:21 +01:00
|
|
|
|
2024-07-11 12:12:43 +01:00
|
|
|
} else {
|
|
|
|
|
console.log(result.error)
|
|
|
|
|
}
|
2024-07-11 10:28:21 +01:00
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|