fix chat messages

This commit is contained in:
Peter Maquiran
2024-06-13 12:11:17 +01:00
parent 856a0cf137
commit 962ab6aa86
16 changed files with 334 additions and 104 deletions
@@ -2,6 +2,8 @@ import { Injectable } from '@angular/core';
import { Dexie, EntityTable, liveQuery } from 'Dexie';
import { err, ok } from 'neverthrow';
import { z } from 'zod';
import { from, Observable, Subject } from 'rxjs';
import { filter, switchMap } from 'rxjs/operators';
import { MessageInputDTO } from '../../dto/message/messageInputDtO';
@@ -41,9 +43,17 @@ messageDataSource.version(1).stores({
})
export class MessageLocalDataSourceService {
private baseUrl = 'https://gdapi-dev.dyndns.info/stage/api/v2/Chat'; // Your base URL
messageSubject = new Subject();
constructor() {}
constructor() {
messageDataSource.message.hook('creating', (primKey, obj, trans) => {
// const newMessage = await trans.table('message').get(primKey);
console.log(primKey, obj)
this.messageSubject.next(obj);
// return newMessage
})
}
async sendMessage(data: MessageInputDTO) {
@@ -95,8 +105,10 @@ export class MessageLocalDataSourceService {
}
}
getItemsLive(roomId: string) {
return liveQuery(() => messageDataSource.message.where('roomId').equals(roomId).toArray() )
getItemsLive(roomId: string) {
return liveQuery(() =>
messageDataSource.message.where('roomId').equals(roomId).sortBy('id')
)
}
@@ -112,11 +124,18 @@ export class MessageLocalDataSourceService {
}
} catch (e) {
console.log('error')
return err('DB error')
}
}
subscribeToNewMessage(roomId: string): Observable<TableMessage> {
return this.messageSubject.pipe(
filter((message: TableMessage) =>
message.roomId === roomId
)
)
}
}