add readAt functionality

This commit is contained in:
Peter Maquiran
2024-07-18 16:19:30 +01:00
parent cf6fe3a4c8
commit cd1c61fe86
11 changed files with 120 additions and 33 deletions
@@ -1,6 +1,6 @@
import { Injectable } from '@angular/core';
import { Dexie, EntityTable, liveQuery } from 'Dexie';
import { err, ok } from 'neverthrow';
import { err, ok, Result } from 'neverthrow';
import { z } from 'zod';
import { from, Observable, Subject } from 'rxjs';
import { filter, switchMap } from 'rxjs/operators';
@@ -73,6 +73,21 @@ export class MessageLocalDataSourceService {
}
async getLastMessageByRoomId(roomId: string): Promise<Result<undefined|TableMessage, any>> {
try {
const lastMessage = await messageDataSource.message
.where('roomId')
.equals(roomId)
.reverse()
.sortBy('id');
return ok(lastMessage[0]); // Get the last message
} catch (error) {
return err(error);
}
}
async sendMessage(data: MessageInputDTO) {
(data as TableMessage).sending = true