mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-18 20:47:54 +00:00
add chage detector
This commit is contained in:
@@ -5,6 +5,9 @@ export function roomListDetermineChanges(serverRooms: RoomListItemOutPutDTO[], l
|
|||||||
const serverRoomMap = new Map(serverRooms.map(room => [room.id, room]));
|
const serverRoomMap = new Map(serverRooms.map(room => [room.id, room]));
|
||||||
const localRoomMap = new Map(localRooms.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 roomsToInsert = serverRooms.filter(room => !localRoomMap.has(room.id));
|
||||||
const roomsToUpdate = serverRooms.filter(room => {
|
const roomsToUpdate = serverRooms.filter(room => {
|
||||||
const localRoom = localRoomMap.get(room.id);
|
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 { RoomLocalDataSourceService } from '../data-source/room/rooom-local-data-source.service';
|
||||||
import { RoomByIdInputDTO } from '../dto/room/roomByIdInputDTO';
|
import { RoomByIdInputDTO } from '../dto/room/roomByIdInputDTO';
|
||||||
import { roomListDetermineChanges } from '../async/rooms/roomListChangeDetector';
|
import { roomListDetermineChanges } from '../async/rooms/roomListChangeDetector';
|
||||||
|
import { value } from '../../../../../plugin/src/sql/Operators/args-attributes';
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
providedIn: 'root'
|
providedIn: 'root'
|
||||||
@@ -21,13 +22,18 @@ export class RoomRepositoryService {
|
|||||||
|
|
||||||
async list() {
|
async list() {
|
||||||
const result = await this.roomRemoteDataSourceService.getRoomList()
|
const result = await this.roomRemoteDataSourceService.getRoomList()
|
||||||
|
|
||||||
|
if(result.isOk()) {
|
||||||
|
console.log(result.value)
|
||||||
|
}
|
||||||
|
|
||||||
const localList = await this.roomLocalDataSourceService.getRoomList()
|
const localList = await this.roomLocalDataSourceService.getRoomList()
|
||||||
|
|
||||||
if(result.isOk()) {
|
if(result.isOk()) {
|
||||||
const { roomsToDelete, roomsToInsert, roomsToUpdate } = roomListDetermineChanges(result.value.data, localList)
|
const { roomsToDelete, roomsToInsert, roomsToUpdate } = roomListDetermineChanges(result.value.data, localList)
|
||||||
|
|
||||||
console.log({ roomsToDelete, roomsToInsert, roomsToUpdate })
|
console.log({ roomsToDelete, roomsToInsert, roomsToUpdate })
|
||||||
for( const roomData of result.value.data) {
|
for( const roomData of roomsToInsert) {
|
||||||
this.roomLocalDataSourceService.createOrUpdateRoom(roomData)
|
this.roomLocalDataSourceService.createOrUpdateRoom(roomData)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user