mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-19 21:06:06 +00:00
add room async function
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
import { TableRoom } from "../../data-source/room/rooom-local-data-source.service";
|
||||
import { RoomListItemOutPutDTO } from "../../dto/room/roomListOutputDTO";
|
||||
|
||||
export function roomListDetermineChanges(serverRooms: RoomListItemOutPutDTO[], localRooms: TableRoom[]) {
|
||||
const serverRoomMap = new Map(serverRooms.map(room => [room.id, room]));
|
||||
const localRoomMap = new Map(localRooms.map(room => [room.id, room]));
|
||||
|
||||
const roomsToInsert = serverRooms.filter(room => !localRoomMap.has(room.id));
|
||||
const roomsToUpdate = serverRooms.filter(room => {
|
||||
const localRoom = localRoomMap.get(room.id);
|
||||
return localRoom && (
|
||||
room.roomName !== localRoom.roomName ||
|
||||
room.createdBy.wxUserId !== localRoom.createdBy.wxUserId ||
|
||||
room.createdAt !== localRoom.createdAt ||
|
||||
room.expirationDate !== localRoom.expirationDate ||
|
||||
room.roomType !== localRoom.roomType
|
||||
);
|
||||
});
|
||||
const roomsToDelete = localRooms.filter(room => !serverRoomMap.has(room.id));
|
||||
|
||||
return { roomsToInsert, roomsToUpdate, roomsToDelete };
|
||||
}
|
||||
@@ -101,6 +101,11 @@ export class RoomLocalDataSourceService {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
async getRoomList() {
|
||||
return await roomDataSource.room.toArray()
|
||||
}
|
||||
|
||||
getItemsLive(): Observable<RoomListOutPutDTO[]> {
|
||||
return liveQuery(() => roomDataSource.room.toArray()) as any;
|
||||
}
|
||||
|
||||
@@ -5,8 +5,6 @@ import { addRoom, RoomRemoteDataSourceState } from '../data-source/room/room-mem
|
||||
import { Store } from '@ngrx/store';
|
||||
import { AddMemberToRoomInputDTO } from '../dto/room/addMemberToRoomInputDto';
|
||||
import { RoomLocalDataSourceService } from '../data-source/room/rooom-local-data-source.service';
|
||||
import { HttpErrorResponse } from '@angular/common/http';
|
||||
import { ZodError } from 'zod';
|
||||
import { RoomByIdInputDTO } from '../dto/room/roomByIdInputDTO';
|
||||
|
||||
@Injectable({
|
||||
@@ -22,8 +20,10 @@ export class RoomRepositoryService {
|
||||
|
||||
async list() {
|
||||
const result = await this.roomRemoteDataSourceService.getRoomList()
|
||||
// const localList = await this.roomLocalDataSourceService.getRoomList()
|
||||
|
||||
if(result.isOk()) {
|
||||
// const { roomsToDelete, roomsToInsert, roomsToUpdate } = roomListDetermineChanges(result.value, localList)
|
||||
for( const roomData of result.value.data) {
|
||||
this.roomLocalDataSourceService.createOrUpdateRoom(roomData)
|
||||
}
|
||||
@@ -46,8 +46,8 @@ export class RoomRepositoryService {
|
||||
async create(data: RoomInputDTO) {
|
||||
|
||||
const result = await this.roomRemoteDataSourceService.createRoom(data)
|
||||
|
||||
if(result.isOk()) {
|
||||
|
||||
this.roomMemoryDataSourceService.dispatch(addRoom(result.value))
|
||||
this.roomLocalDataSourceService.createRoom(result.value.data)
|
||||
}
|
||||
|
||||
@@ -25,13 +25,11 @@ import { FormGroup, Validators } from '@angular/forms';
|
||||
import { NGX_MAT_DATE_FORMATS } from '@angular-material-components/datetime-picker';
|
||||
import { ThemeService } from 'src/app/services/theme.service'
|
||||
import { ChatMethodsService } from 'src/app/services/chat/chat-methods.service';
|
||||
import { ServerConnectionService } from 'src/app/services/server-connection.service';
|
||||
import { SessionStore } from 'src/app/store/session.service';
|
||||
import { HttpErrorHandle } from 'src/app/services/http-error-handle.service';
|
||||
import { environment } from 'src/environments/environment';
|
||||
import { EventToAprove } from 'src/app/models/eventToAprove.model';
|
||||
import { ProcessesService } from 'src/app/services/processes.service';
|
||||
import { Subject } from 'rxjs';
|
||||
|
||||
import { TaskService } from 'src/app/services/task.service'
|
||||
import { ContactsService } from 'src/app/services/contacts.service';
|
||||
@@ -1050,13 +1048,13 @@ console.log(this.loggeduser.Profile)
|
||||
this.postEvent.IsAllDayEvent = this.allDayCheck;
|
||||
this.postEvent.StartDate = this.setAlldayTime(this.postEvent.StartDate)
|
||||
this.postEvent.EndDate = this.setAlldayTimeEndDate(this.postEvent.EndDate)
|
||||
|
||||
|
||||
console.log('Recurso ativado!!');
|
||||
} else {
|
||||
this.postEvent.IsAllDayEvent = this.allDayCheck;
|
||||
this.postEvent.EndDate = this.setAlldayTimeEndDateNotAlday(this.postEvent.EndDate)
|
||||
console.log('Recurso desativado');
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user