mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-19 13:02:56 +00:00
fix bold
This commit is contained in:
@@ -3,9 +3,11 @@ import { filter, map } from 'rxjs/operators';
|
||||
import { IMessageSocketRepository } from 'src/app/core/chat/repository/message/message-socket-repository';
|
||||
import { MessageEntity } from 'src/app/core/chat/entity/message';
|
||||
import { IBoldLocalRepository } from 'src/app/core/chat/repository/bold/bold-local-repository';
|
||||
import { IMessageLocalRepository } from 'src/app/core/chat/repository/message/message-local-repository';
|
||||
import { InstanceId } from '../../chat-service.service';
|
||||
import { IMessageGetAllByRoomIdOutPut } from 'src/app/core/chat/usecase/message/message-get-all-by-room-Id';
|
||||
import { HttpAdapter } from 'src/app/infra/http/adapter';
|
||||
import { SessionStore } from 'src/app/store/session.service';
|
||||
|
||||
|
||||
@Injectable({
|
||||
@@ -17,9 +19,11 @@ export class RoomBoldSyncUseCaseService {
|
||||
private MessageSocketRepositoryService: IMessageSocketRepository,
|
||||
private boldLocalRepository: IBoldLocalRepository,
|
||||
private http: HttpAdapter,
|
||||
private messageLocalRepository: IMessageLocalRepository
|
||||
) {
|
||||
this.listenToIncomingMessage();
|
||||
this.loadHistory()
|
||||
// this.loadHistory()
|
||||
this.onInsertToDB()
|
||||
}
|
||||
|
||||
private listenToIncomingMessage() {
|
||||
@@ -39,22 +43,48 @@ export class RoomBoldSyncUseCaseService {
|
||||
});
|
||||
}
|
||||
|
||||
private loadHistory() {
|
||||
const regex = new RegExp("Room\\/([0-9a-fA-F]{8})-([0-9a-fA-F]{4})-([0-9a-fA-F]{4})-([0-9a-fA-F]{4})-([0-9a-fA-F]{12})\\/Messages");
|
||||
// private loadHistory() {
|
||||
// const regex = new RegExp("Room\\/([0-9a-fA-F]{8})-([0-9a-fA-F]{4})-([0-9a-fA-F]{4})-([0-9a-fA-F]{4})-([0-9a-fA-F]{12})\\/Messages");
|
||||
|
||||
return this.http.listen().pipe(
|
||||
filter((response: any)=> {
|
||||
return response?.isOk() && regex.test(response.value.url)
|
||||
// return this.http.listen().pipe(
|
||||
// filter((response: any)=> {
|
||||
// return response?.isOk() && regex.test(response.value.url)
|
||||
// }),
|
||||
// map((response: any) => response.value.data as IMessageGetAllByRoomIdOutPut)
|
||||
// ).subscribe(async (data)=> {
|
||||
|
||||
// if(data.data.length >= 1) {
|
||||
// for(const message of data.data) {
|
||||
// const haveSeen = MessageEntity.haveSeen(message.info)
|
||||
// }
|
||||
// }
|
||||
|
||||
// })
|
||||
// }
|
||||
|
||||
private onInsertToDB() {
|
||||
|
||||
this.messageLocalRepository.onCreateObservable().pipe(
|
||||
filter(e => {
|
||||
console.log('onInsertToDB', e)
|
||||
return e?.origin == 'history'
|
||||
}),
|
||||
map((response: any) => response.value.data as IMessageGetAllByRoomIdOutPut)
|
||||
).subscribe(async (data)=> {
|
||||
filter(e => e.sender.wxUserId != SessionStore.user.UserId)
|
||||
).subscribe(async (newMessage)=> {
|
||||
const haveSeen = MessageEntity.haveSeen(newMessage.info)
|
||||
if(!haveSeen) {
|
||||
setTimeout(async ()=> {
|
||||
|
||||
if(data.data.length >= 1) {
|
||||
for(const message of data.data) {
|
||||
const haveSeen = MessageEntity.haveSeen(message.info)
|
||||
}
|
||||
await this.boldLocalRepository.open()
|
||||
const result = await this.boldLocalRepository.findOne({roomId: newMessage.roomId})
|
||||
|
||||
if(result.isOk() && !result.value) {
|
||||
const result = await this.boldLocalRepository.insert({roomId: newMessage.roomId, bold: 1})
|
||||
} else if(result.isOk() && result.value.bold == 0) {
|
||||
const result = await this.boldLocalRepository.update(newMessage.roomId, {bold: 1})
|
||||
}
|
||||
}, 2000)
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user