add chage detector

This commit is contained in:
Peter Maquiran
2024-06-10 09:33:02 +01:00
parent 963d24a7e1
commit 193e7474e9
2 changed files with 10 additions and 1 deletions
@@ -5,6 +5,9 @@ export function roomListDetermineChanges(serverRooms: RoomListItemOutPutDTO[], l
const serverRoomMap = new Map(serverRooms.map(room => [room.id, room]));
const localRoomMap = new Map(localRooms.map(room => [room.id, room]));
console.log({serverRoomMap, localRoomMap})
const roomsToInsert = serverRooms.filter(room => !localRoomMap.has(room.id));
const roomsToUpdate = serverRooms.filter(room => {
const localRoom = localRoomMap.get(room.id);
@@ -7,6 +7,7 @@ import { AddMemberToRoomInputDTO } from '../dto/room/addMemberToRoomInputDto';
import { RoomLocalDataSourceService } from '../data-source/room/rooom-local-data-source.service';
import { RoomByIdInputDTO } from '../dto/room/roomByIdInputDTO';
import { roomListDetermineChanges } from '../async/rooms/roomListChangeDetector';
import { value } from '../../../../../plugin/src/sql/Operators/args-attributes';
@Injectable({
providedIn: 'root'
@@ -21,13 +22,18 @@ export class RoomRepositoryService {
async list() {
const result = await this.roomRemoteDataSourceService.getRoomList()
if(result.isOk()) {
console.log(result.value)
}
const localList = await this.roomLocalDataSourceService.getRoomList()
if(result.isOk()) {
const { roomsToDelete, roomsToInsert, roomsToUpdate } = roomListDetermineChanges(result.value.data, localList)
console.log({ roomsToDelete, roomsToInsert, roomsToUpdate })
for( const roomData of result.value.data) {
for( const roomData of roomsToInsert) {
this.roomLocalDataSourceService.createOrUpdateRoom(roomData)
}
}