mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-18 20:47:54 +00:00
update room bold
This commit is contained in:
@@ -1,8 +1,24 @@
|
|||||||
import { HubConnection } from "@microsoft/signalr";
|
import { HubConnection } from "@microsoft/signalr";
|
||||||
import { Result } from "neverthrow";
|
import { Result } from "neverthrow";
|
||||||
import { Observable } from "rxjs";
|
import { BehaviorSubject, Observable } from "rxjs";
|
||||||
import { ListenToDeleteRoomInput, RoomSocketOutPutDTO } from "src/app/module/chat/data/repository/room/room-socket-repository.service";
|
import { ListenToDeleteRoomInput, RoomSocketOutPutDTO } from "src/app/module/chat/data/repository/room/room-socket-repository.service";
|
||||||
import { CreateRoomInputDTO } from "src/app/module/chat/domain/use-case/room/room-create-use-case.service";
|
import { CreateRoomInputDTO } from "src/app/module/chat/domain/use-case/room/room-create-use-case.service";
|
||||||
|
import { z } from "zod";
|
||||||
|
|
||||||
|
|
||||||
|
const SocketRoomUpdateOutPutSchema = z.object({
|
||||||
|
id: z.string().uuid(),
|
||||||
|
roomName: z.string().min(1),
|
||||||
|
createdBy: z.string().nullable(), // Allowing null for createdBy
|
||||||
|
createdAt: z.string().datetime(),
|
||||||
|
expirationDate: z.string().nullable().optional(), // Allowing null and making it optional
|
||||||
|
roomType: z.number(),
|
||||||
|
user1: z.string().nullable().optional(), // Allowing null for user1
|
||||||
|
user2: z.string().nullable().optional(), // Allowing null for user2
|
||||||
|
messages: z.array(z.any()), // Allowing an array of any type for messages
|
||||||
|
});
|
||||||
|
|
||||||
|
export type SocketRoomUpdateOutPut = z.infer<typeof SocketRoomUpdateOutPutSchema>
|
||||||
|
|
||||||
export abstract class IRoomSocketRepository {
|
export abstract class IRoomSocketRepository {
|
||||||
|
|
||||||
@@ -11,6 +27,7 @@ export abstract class IRoomSocketRepository {
|
|||||||
|
|
||||||
abstract listenToCreateRoom(): Observable<any>
|
abstract listenToCreateRoom(): Observable<any>
|
||||||
abstract listenToDeleteRoom(): Observable<ListenToDeleteRoomInput>
|
abstract listenToDeleteRoom(): Observable<ListenToDeleteRoomInput>
|
||||||
|
abstract listenToRoomUpdate(): Observable<{method: string, data: SocketRoomUpdateOutPut}>
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { filter, map } from 'rxjs/operators';
|
|||||||
import { z } from 'zod';
|
import { z } from 'zod';
|
||||||
import { SocketMessage } from 'src/app/infra/socket/signalR/signalR';
|
import { SocketMessage } from 'src/app/infra/socket/signalR/signalR';
|
||||||
import { v4 as uuidv4 } from 'uuid'
|
import { v4 as uuidv4 } from 'uuid'
|
||||||
import { IRoomSocketRepository } from 'src/app/core/chat/repository/room/room-socket-repository';
|
import { IRoomSocketRepository, SocketRoomUpdateOutPut } from 'src/app/core/chat/repository/room/room-socket-repository';
|
||||||
import { CreateRoomInputDTO } from '../../../domain/use-case/room/room-create-use-case.service';
|
import { CreateRoomInputDTO } from '../../../domain/use-case/room/room-create-use-case.service';
|
||||||
|
|
||||||
const listenToDeleteRoomInputSchema = z.object({
|
const listenToDeleteRoomInputSchema = z.object({
|
||||||
@@ -54,9 +54,15 @@ export class RoomSocketRepositoryService implements IRoomSocketRepository {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
listenToRoomUpdate() {
|
||||||
|
return this.socket.getData<SocketRoomUpdateOutPut>().pipe(
|
||||||
|
filter((data) => data?.method == 'GroupUpdate')
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
listenToDeleteRoom() {
|
listenToDeleteRoom() {
|
||||||
return this.socket.getData<any>().pipe(
|
return this.socket.getData<any>().pipe(
|
||||||
filter((data): data is SocketMessage<ListenToDeleteRoomInput> =>
|
filter((data): data is SocketMessage<ListenToDeleteRoomInput> =>
|
||||||
data?.method === 'UserRemoveGroup'
|
data?.method === 'UserRemoveGroup'
|
||||||
),
|
),
|
||||||
map((e) => e.data)
|
map((e) => e.data)
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ import { RoomSetLastMessageService } from 'src/app/module/chat/domain/use-case/r
|
|||||||
import { RoomCreateLocalDirectMessageInputDTOInputDTO, RoomCreateLocalDirectMessageService } from 'src/app/module/chat/domain/use-case/room/room-create-local-direct-message.service';
|
import { RoomCreateLocalDirectMessageInputDTOInputDTO, RoomCreateLocalDirectMessageService } from 'src/app/module/chat/domain/use-case/room/room-create-local-direct-message.service';
|
||||||
import { RoomGetListOnCreateUseCaseService } from 'src/app/module/chat/domain/use-case/room/room-get-list-on-create-use-case.service';
|
import { RoomGetListOnCreateUseCaseService } from 'src/app/module/chat/domain/use-case/room/room-get-list-on-create-use-case.service';
|
||||||
import { IRoomSetLocalToFalseByIdInput, RoomSetLocalToFalseByIdService } from 'src/app/module/chat/domain/use-case/room/room-set-local-to-false-by-id.service';
|
import { IRoomSetLocalToFalseByIdInput, RoomSetLocalToFalseByIdService } from 'src/app/module/chat/domain/use-case/room/room-set-local-to-false-by-id.service';
|
||||||
|
import { RoomUpdateNameSyncService } from 'src/app/module/chat/domain/use-case/room/room-update-name-sync.service';
|
||||||
import { IUserPhotoGetByIdInput, UserPhotoGetByIdUseCase } from 'src/app/module/chat/domain/use-case/user-photo/user-photo-get-by-id-use-case.service'
|
import { IUserPhotoGetByIdInput, UserPhotoGetByIdUseCase } from 'src/app/module/chat/domain/use-case/user-photo/user-photo-get-by-id-use-case.service'
|
||||||
import { IMessageLocalGetByIdServiceInput, MessageLocalGetByIdService } from 'src/app/module/chat/domain/use-case/message/message-local-get-by-id.service'
|
import { IMessageLocalGetByIdServiceInput, MessageLocalGetByIdService } from 'src/app/module/chat/domain/use-case/message/message-local-get-by-id.service'
|
||||||
import { ContactListService } from './use-case/contact/contact-list.service';
|
import { ContactListService } from './use-case/contact/contact-list.service';
|
||||||
@@ -113,7 +114,8 @@ export class ChatServiceService {
|
|||||||
private contactListService: ContactListService,
|
private contactListService: ContactListService,
|
||||||
private messageLocalGetByIdService: MessageLocalGetByIdService,
|
private messageLocalGetByIdService: MessageLocalGetByIdService,
|
||||||
private roomGetLocalByIdService: RoomGetLocalByIdService,
|
private roomGetLocalByIdService: RoomGetLocalByIdService,
|
||||||
private roomSetLocalToFalseByIdService: RoomSetLocalToFalseByIdService
|
private roomSetLocalToFalseByIdService: RoomSetLocalToFalseByIdService,
|
||||||
|
private roomUpdateNameSyncService: RoomUpdateNameSyncService
|
||||||
) {
|
) {
|
||||||
this.MessageSocketRepositoryService.listenToDeleteMessages()
|
this.MessageSocketRepositoryService.listenToDeleteMessages()
|
||||||
.pipe()
|
.pipe()
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
import { IRoomSocketRepository } from 'src/app/core/chat/repository/room/room-socket-repository';
|
||||||
|
import { GetRoomByIdUseCaseService } from './room-get-by-id-use-case.service'
|
||||||
|
@Injectable({
|
||||||
|
providedIn: 'root'
|
||||||
|
})
|
||||||
|
export class RoomUpdateNameSyncService {
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
private GetRoomByIdUseCaseService: GetRoomByIdUseCaseService,
|
||||||
|
private roomSocketRepository: IRoomSocketRepository
|
||||||
|
) {
|
||||||
|
// this.watch()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private watch() {
|
||||||
|
this.roomSocketRepository.listenToRoomUpdate().subscribe((event) => {
|
||||||
|
this.GetRoomByIdUseCaseService.execute(event.data.id)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
<ion-label >
|
<ion-label >
|
||||||
<span >
|
<span >
|
||||||
<div >
|
<div >
|
||||||
<div class="font-15-em add-ellipsis" [class.bold-message]="boldTable?.[room.$id]?.bold">
|
<div class="font-15-em add-ellipsis" [class.bold-message]="boldTable?.[room.id]?.bold">
|
||||||
{{room.roomName}}
|
{{room.roomName}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
export let versionData = {
|
export let versionData = {
|
||||||
"shortSHA": "1bc570732",
|
"shortSHA": "263f59326",
|
||||||
"SHA": "1bc5707321532b7659caed51bd90c1105d3f4c6f",
|
"SHA": "263f593260f41c86f36c984e82cd023adb6bdbd2",
|
||||||
"branch": "feature/chat-new-api-peter",
|
"branch": "feature/chat-new-api-peter",
|
||||||
"lastCommitAuthor": "'Peter Maquiran'",
|
"lastCommitAuthor": "'Peter Maquiran'",
|
||||||
"lastCommitTime": "'Tue Sep 17 16:02:12 2024 +0100'",
|
"lastCommitTime": "'Tue Sep 17 17:28:50 2024 +0100'",
|
||||||
"lastCommitMessage": "create offline direct message",
|
"lastCommitMessage": "fix delete member and add member",
|
||||||
"lastCommitNumber": "6076",
|
"lastCommitNumber": "6077",
|
||||||
"changeStatus": "On branch feature/chat-new-api-peter\nYour branch is ahead of 'origin/feature/chat-new-api-peter' by 4 commits.\n (use \"git push\" to publish your local commits)\n\nChanges to be committed:\n (use \"git restore --staged <file>...\" to unstage)\n\tmodified: src/app/core/chat/entity/group.ts\n\tmodified: src/app/module/chat/data/repository/member/member-list-remote-repository.service.ts\n\tmodified: src/app/module/chat/domain/use-case/message/sync-all-room-messages.service.ts\n\tmodified: src/app/module/chat/domain/use-case/room/room-bold-sync-use-case.service.ts\n\tmodified: src/app/services/http.service.ts\n\tmodified: src/app/ui/chat/chat.page.ts\n\tmodified: src/app/ui/chat/component/messages/messages.page.ts\n\tmodified: version/git-version.ts\n\tmodified: workspace.code-workspace",
|
"changeStatus": "On branch feature/chat-new-api-peter\nYour branch is ahead of 'origin/feature/chat-new-api-peter' by 5 commits.\n (use \"git push\" to publish your local commits)\n\nChanges to be committed:\n (use \"git restore --staged <file>...\" to unstage)\n\tmodified: src/app/core/chat/repository/room/room-socket-repository.ts\n\tmodified: src/app/module/chat/data/repository/room/room-socket-repository.service.ts\n\tmodified: src/app/module/chat/domain/chat-service.service.ts\n\tnew file: src/app/module/chat/domain/use-case/room/room-update-name-sync.service.ts\n\tmodified: src/app/ui/chat/chat.page.html",
|
||||||
"changeAuthor": "peter.maquiran"
|
"changeAuthor": "peter.maquiran"
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user