fix all errors

This commit is contained in:
Peter Maquiran
2024-10-17 12:17:24 +01:00
parent bfd4e44b5b
commit 02d5e3e1ec
83 changed files with 257 additions and 206 deletions
@@ -1,4 +1,4 @@
import { RoomByIdOutputDTO } from "src/app/module/chat/domain/use-case/room/room-get-by-id-use-case.service";
import { RoomByIdOutputDTO } from "src/app/core/chat/usecase/room/room-get-by-id-use-case.service";
import { RoomEntity } from "../entity/group";
export class GetRoomByIdMapper {
@@ -14,4 +14,4 @@ export class GetRoomByIdMapper {
roomType: input.data.roomType,
})
}
}
}
@@ -1,4 +1,4 @@
import { RoomListItemOutPutDTO } from "src/app/module/chat/domain/use-case/room/room-get-list-use-case.service";
import { RoomListItemOutPutDTO } from "src/app/core/chat/usecase/room/room-get-list-use-case.service";
import { RoomEntity } from "../entity/group";
export class GetRoomListMapper{
@@ -28,4 +28,4 @@ export class GetRoomListMapper{
}));
}
}
}
@@ -1,6 +1,6 @@
import { MemberTable } from "src/app/infra/database/dexie/instance/chat/schema/members";
import { RoomByIdMemberItemOutputDTO } from "../use-case/room/room-get-by-id-use-case.service";
import { RoomByIdMemberItemOutputDTO } from "../usecase/room/room-get-by-id-use-case.service";
export function MemberListMapper(outputDto: RoomByIdMemberItemOutputDTO, roomId: string): MemberTable {
return {
@@ -1,6 +1,6 @@
import { MessageEntity, IMessage } from "../../../../core/chat/entity/message";
import { MessageEntity, IMessage } from "../entity/message";
import { MessageOutPutDataDTO } from "src/app/core/chat/repository/dto/messageOutputDTO";
import { MessageInputDTO } from "../use-case/message/message-create-use-case.service";
import { MessageInputDTO } from "../usecase/message/message-create-use-case.service";
export class MessageMapper {
static toDomain(DTO: MessageOutPutDataDTO) : MessageEntity {
@@ -5,7 +5,7 @@ import { Result } from "neverthrow";
import { MemberTable, MemberTableSchema } from "src/app/infra/database/dexie/instance/chat/schema/members";
import { RepositoryResult } from "src/app/infra/repository";
import { z } from "zod";
import { MemberListUPdateStatusInputDTO } from "src/app/module/chat/domain/use-case/socket/member-list-update-status-use-case.service";
import { MemberListUPdateStatusInputDTO } from "src/app/core/chat/usecase/socket/member-list-update-status-use-case.service";
import { Observable } from "rxjs";
@@ -1,12 +1,12 @@
import { DataSourceReturn } from "src/app/services/Repositorys/type";
import { Result } from "neverthrow";
import { AddMemberToRoomInputDTO } from "src/app/module/chat/domain/use-case/member/member-add-use-case.service";
import { MemberSetAdminDTO } from "src/app/module/chat/domain/use-case/member/member-admin-use-case.service";
import { UserRemoveListInputDTO } from "src/app/module/chat/domain/use-case/room/room-leave-by-id-use-case.service";
import { AddMemberToRoomInputDTO } from "src/app/core/chat/usecase/member/member-add-use-case.service";
import { MemberSetAdminDTO } from "src/app/core/chat/usecase/member/member-admin-use-case.service";
import { UserRemoveListInputDTO } from "src/app/core/chat/usecase/room/room-leave-by-id-use-case.service";
export abstract class IMemberRemoteRepository {
abstract addMemberToRoom(data: AddMemberToRoomInputDTO): DataSourceReturn<AddMemberToRoomInputDTO>
abstract removeMemberFromRoom(data: UserRemoveListInputDTO): Promise<Result<any ,any>>
abstract setAmin(data: MemberSetAdminDTO): Promise<Result<any ,any>>
}
abstract setAmin(data: MemberSetAdminDTO): Promise<Result<any ,any>>
}
@@ -1,5 +1,5 @@
import { Observable } from 'rxjs';
import { IRemoveRoomMemberOutput, RemoveRoomMemberInput } from 'src/app/module/chat/domain/use-case/member/member-remove-socket-use-case.service';
import { IRemoveRoomMemberOutput, RemoveRoomMemberInput } from 'src/app/core/chat/usecase/member/member-remove-socket-use-case.service';
export abstract class IMemberSocketRepository {
abstract removeMember(input: RemoveRoomMemberInput): Promise<any>
@@ -1,6 +1,11 @@
import { DataSourceReturn } from "src/app/services/Repositorys/type";
import { IMessageGetAllByRoomIdOutPut } from "../../usecase/message/message-get-all-by-room-Id";
export interface IGetMessagesFromRoomParams {
roomId: string
lastMessageDate?: string
}
export abstract class IMessageRemoteRepository {
abstract getMessagesFromRoom(id: string): DataSourceReturn<IMessageGetAllByRoomIdOutPut>
}
abstract getMessagesFromRoom(input: IGetMessagesFromRoomParams): DataSourceReturn<IMessageGetAllByRoomIdOutPut>
}
@@ -1,12 +1,12 @@
import { HubConnection } from "@microsoft/signalr";
import { Result } from "neverthrow";
import { MessageCreateOutPutDataDTO, MessageInputDTO } from "src/app/module/chat/domain/use-case/message/message-create-use-case.service";
import { MessageMarkAsReadInput } from "src/app/module/chat/domain/use-case/message/message-mark-as-read-use-case.service";
import { MessageDeleteInputDTO } from "src/app/module/chat/domain/use-case/message/message-delete-by-id-live-use-case.service";
import { MessageCreateOutPutDataDTO, MessageInputDTO } from "src/app/core/chat/usecase/message/message-create-use-case.service";
import { MessageMarkAsReadInput } from "src/app/core/chat/usecase/message/message-mark-as-read-use-case.service";
import { MessageDeleteInputDTO } from "src/app/core/chat/usecase/message/message-delete-by-id-live-use-case.service";
import { MessageOutPutDataDTO } from "../dto/messageOutputDTO";
import { Observable } from "rxjs";
import { MessageReactionInput } from "src/app/module/chat/domain/use-case/message/message-reaction-by-id-use-case.service";
import { MessageUpdateInput } from "src/app/module/chat/domain/use-case/message/message-update-by-id-use-case.service";
import { MessageReactionInput } from "src/app/core/chat/usecase/message/message-reaction-by-id-use-case.service";
import { MessageUpdateInput } from "src/app/core/chat/usecase/message/message-update-by-id-use-case.service";
import { SocketMessage } from "src/app/infra/socket/signalR/signalR";
export abstract class IMessageSocketRepository {
@@ -1,17 +1,17 @@
import { DataSourceReturn } from "src/app/services/Repositorys/type";
import { IMessageGetAllByRoomIdOutPut } from "../../usecase/message/message-get-all-by-room-Id";
import { CreateRoomInputDTO, RoomOutPutDTO } from "src/app/module/chat/domain/use-case/room/room-create-use-case.service";
import { RoomByIdInputDTO, RoomByIdOutputDTO } from "src/app/module/chat/domain/use-case/room/room-get-by-id-use-case.service";
import { RoomUpdateInputDTO, RoomUpdateOutputDTO } from "src/app/module/chat/domain/use-case/room/room-update-by-id-use-case.service";
import { CreateRoomInputDTO, RoomOutPutDTO } from "src/app/core/chat/usecase/room/room-create-use-case.service";
import { RoomByIdInputDTO, RoomByIdOutputDTO } from "src/app/core/chat/usecase/room/room-get-by-id-use-case.service";
import { RoomUpdateInputDTO, RoomUpdateOutputDTO } from "src/app/core/chat/usecase/room/room-update-by-id-use-case.service";
import { Result } from "neverthrow";
import { AddMemberToRoomInputDTO } from "src/app/module/chat/domain/use-case/member/member-add-use-case.service";
import { RoomListOutPutDTO } from "src/app/module/chat/domain/use-case/room/room-get-list-use-case.service";
import { AddMemberToRoomInputDTO } from "src/app/core/chat/usecase/member/member-add-use-case.service";
import { RoomListOutPutDTO } from "src/app/core/chat/usecase/room/room-get-list-use-case.service";
export abstract class IRoomRemoteRepository {
abstract createRoom(data: CreateRoomInputDTO): DataSourceReturn<RoomOutPutDTO>
abstract getRoomList(): Promise<DataSourceReturn<RoomListOutPutDTO>>
abstract getRoomList(): Promise<DataSourceReturn<RoomListOutPutDTO>>
abstract getRoom(id: RoomByIdInputDTO): DataSourceReturn<RoomByIdOutputDTO>
abstract updateRoom(data: RoomUpdateInputDTO): Promise<DataSourceReturn<RoomUpdateOutputDTO>>
abstract deleteRoom(id: string): Promise<Result<any ,any>>
abstract addMemberToRoomSocket(data: AddMemberToRoomInputDTO): Promise<Result<any ,any>>
}
}
@@ -2,7 +2,7 @@ import { HubConnection } from "@microsoft/signalr";
import { Result } from "neverthrow";
import { BehaviorSubject, Observable } from "rxjs";
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/core/chat/usecase/room/room-create-use-case.service";
import { z } from "zod";
@@ -1,5 +1,5 @@
import { HttpResult, IHttPReturn } from "src/app/infra/http/type"
import { UserPhotoGetByIdInputSchema } from "src/app/module/chat/domain/use-case/user-photo/user-photo-get-by-id-use-case.service"
import { UserPhotoGetByIdInputSchema } from "src/app/core/chat/usecase/user-photo/user-photo-get-by-id-use-case.service"
import { z } from "zod"
export const IGetUserPhotoByAttachmentIdInputSchema = z.object({
@@ -1,7 +1,7 @@
import { Injectable } from '@angular/core';
import { captureAndReraiseAsync } from 'src/app/services/decorators/captureAndReraiseAsync';
import { MemberListRemoteRepository } from '../../../data/repository/member/member-list-remote-repository.service';
import { UserRemoveListInputDTO } from '../room/room-leave-by-id-use-case.service';
import { MemberListRemoteRepository } from 'src/app/module/chat/data/repository/member/member-list-remote-repository.service';
@Injectable({
providedIn: 'root'
@@ -1,10 +1,10 @@
import { Injectable } from '@angular/core';
import { filter, map } from 'rxjs/operators';
import { HttpAdapter } from 'src/app/infra/http/adapter';
import { RoomByIdOutputDTO } from '../../../domain/use-case/room/room-get-by-id-use-case.service';
import { IMemberLocalRepository } from 'src/app/core/chat/repository/member/member-local-repository';
import { MemberListMapper } from '../../../domain/mapper/memberLIstMapper';
import { roomMemberListDetermineChanges } from '../../../data/async/list/rooms/roomMembersChangeDetector';
import { roomMemberListDetermineChanges } from 'src/app/module/chat/data/async/list/rooms/roomMembersChangeDetector';
import { MemberListMapper } from 'src/app/core/chat/mapper/memberLIstMapper';
import { RoomByIdOutputDTO } from '../room/room-get-by-id-use-case.service';
@Injectable({
providedIn: 'root'
})
@@ -1,9 +1,9 @@
import { Injectable } from '@angular/core';
import { filter, map } from 'rxjs/operators';
import { InstanceId } from '../../chat-service.service';
import { MessageEntity } from '../../../../../core/chat/entity/message';
import { z } from 'zod';
import { IMessageSocketRepository } from 'src/app/core/chat/repository/message/message-socket-repository';
import { MessageEntity } from '../../entity/message';
import { InstanceId } from 'src/app/module/chat/domain/chat-service.service';
export const ListenMessageByRoomIdNewInputDTOSchema = z.object({
@@ -1,8 +1,9 @@
import { Injectable } from '@angular/core';
import { MessageSocketRepositoryService } from 'src/app/module/chat/data/repository/message/message-live-signalr-data-source.service'
import { InstanceId } from '../../chat-service.service';
import { InstanceId } from '../../../../module/chat/domain/chat-service.service';
import { filter, map } from 'rxjs/operators';
import { z } from 'zod';
import { IMessageSocketRepository } from '../../repository/message/message-socket-repository';
export const ListenSendMessageInputDTOSchema = z.object({
roomId: z.string(),
@@ -17,7 +18,7 @@ export type ListenSendMessageInputDTO = z.infer<typeof ListenSendMessageInputDTO
export class ListenSendMessageUseCase {
constructor(
private MessageSocketRepositoryService: MessageSocketRepositoryService
private MessageSocketRepositoryService: IMessageSocketRepository
) { }
execute({roomId}: {roomId: string}) {
@@ -3,6 +3,7 @@ import { filter } from 'rxjs/operators';
import { SignalRService } from 'src/app/infra/socket/signalR/signal-r.service';
import { MessageSocketRepositoryService } from 'src/app/module/chat/data/repository/message/message-live-signalr-data-source.service'
import { z } from 'zod';
import { IMessageSocketRepository } from '../../repository/message/message-socket-repository';
export const ListenMessageDeleteByRoomIdInputDTOSchema = z.object({
roomId: z.string(),
@@ -16,7 +17,7 @@ export type ListenMessageDeleteByRoomIdInputDTO = z.infer<typeof ListenMessageDe
export class ListenMessageDeleteByRoomIdService {
constructor(
private MessageSocketRepositoryService: MessageSocketRepositoryService,
private MessageSocketRepositoryService: IMessageSocketRepository,
) { }
execute({roomId}: ListenMessageDeleteByRoomIdInputDTO) {
@@ -4,9 +4,11 @@ import { AttachmentRemoteDataSourceService } from 'src/app/module/chat/data/repo
import { AttachmentLocalDataSource } from 'src/app/module/chat/data/repository/attachment/attachment-local-repository.service'
import { createBlobUrl } from 'src/app/utils/ToBase64';
import { err, Result } from 'neverthrow';
import { MessageEntitySchema } from '../../../../../core/chat/entity/message';
import { TracingType, XTracerAsync } from 'src/app/services/monitoring/opentelemetry/tracer';
import { isHttpResponse } from 'src/app/infra/http/http.service';
import { MessageEntitySchema } from '../../entity/message';
import { IAttachmentRemoteRepository } from '../../repository/attachment/attachment-remote-repository';
import { IAttachmentLocalRepository } from '../../repository/typing/typing-local-repository';
const MessageAttachmentByMessageIdSchema = MessageEntitySchema.pick({
$id: true,
@@ -22,8 +24,8 @@ export type MessageAttachmentByMessageIdInput = z.infer<typeof MessageAttachment
export class MessageAttachmentByMessageIdUseCase {
constructor(
private AttachmentRemoteDataSourceService: AttachmentRemoteDataSourceService,
private AttachmentLocalDataSource: AttachmentLocalDataSource
private AttachmentRemoteDataSourceService: IAttachmentRemoteRepository,
private AttachmentLocalDataSource: IAttachmentLocalRepository
) { }
@XTracerAsync({name:'Message-Attachment-By-MessageIdUseCase', module:'chat', bugPrint: true, waitNThrow: 15000})
@@ -1,8 +1,8 @@
import { Injectable } from '@angular/core';
import { IMessage, MessageAttachmentSource, MessageEntity, MessageEntitySchema, } from '../../../../../core/chat/entity/message';
import { IMessage, MessageAttachmentSource, MessageEntity, MessageEntitySchema, } from '../../entity/message';
import { z } from 'zod';
import { v4 as uuidv4 } from 'uuid';
import { InstanceId } from '../../chat-service.service';
import { InstanceId } from '../../../../module/chat/domain/chat-service.service';
import { createBlobFromBase64, createDataURL } from 'src/app/utils/ToBase64';
import { zodSafeValidation } from 'src/app/utils/zodValidation';
import { Logger } from 'src/app/services/logger/main/service';
@@ -1,7 +1,8 @@
import { Injectable } from '@angular/core';
import { z } from 'zod';
import { MessageSocketRepositoryService } from '../../../data/repository/message/message-live-signalr-data-source.service';
import { MessageSocketRepositoryService } from '../../../../module/chat/data/repository/message/message-live-signalr-data-source.service';
import { XTracerAsync, TracingType } from 'src/app/services/monitoring/opentelemetry/tracer';
import { IMessageSocketRepository } from '../../repository/message/message-socket-repository';
export const MessageDeleteInputDTOSchema = z.object({
requestId: z.string().optional(),
@@ -17,7 +18,7 @@ export type MessageDeleteInputDTO = z.infer<typeof MessageDeleteInputDTOSchema>
})
export class MessageDeleteLiveUseCaseService {
constructor(
public repository: MessageSocketRepositoryService
public repository: IMessageSocketRepository
) { }
@XTracerAsync({name:'MessageDeleteLiveUseCaseService', module:'chat', bugPrint: true, waitNThrow: 5000})
@@ -6,6 +6,8 @@ import { AttachmentLocalDataSource } from 'src/app/module/chat/data/repository/a
import { z } from 'zod';
import { zodSafeValidation } from 'src/app/utils/zodValidation';
import { IMessage, MessageEntitySchema } from 'src/app/core/chat/entity/message';
import { IAttachmentRemoteRepository } from '../../repository/attachment/attachment-remote-repository';
import { IAttachmentLocalRepository } from '../../repository/typing/typing-local-repository';
const DownloadMessageAttachmentByMessageIdSchema = z.object({
$messageId: z.string(),
@@ -21,8 +23,8 @@ export type DownloadMessageAttachmentByMessageId = z.infer<typeof DownloadMessag
export class DownloadMessageAttachmentUserCaseService {
constructor(
private AttachmentRemoteDataSourceService: AttachmentRemoteDataSourceService,
private AttachmentLocalDataSource: AttachmentLocalDataSource
private AttachmentRemoteDataSourceService: IAttachmentRemoteRepository,
private AttachmentLocalDataSource: IAttachmentLocalRepository
) { }
async execute(input: DownloadMessageAttachmentByMessageId) {
@@ -6,6 +6,8 @@ import { err, Result } from 'neverthrow';
import { AttachmentTableSchema } from 'src/app/infra/database/dexie/instance/chat/schema/attachment';
import { z } from 'zod';
import { createBlobUrl } from 'src/app/utils/ToBase64';
import { IAttachmentRemoteRepository } from '../../repository/attachment/attachment-remote-repository';
import { IAttachmentLocalRepository } from '../../repository/typing/typing-local-repository';
const GetMessageAttachmentLocallyByMessageIdSchema = AttachmentTableSchema.pick({
$messageId: true
@@ -21,8 +23,8 @@ export type GetMessageAttachmentLocallyByMessageId = z.infer<typeof GetMessageAt
export class GetMessageAttachmentLocallyUseCaseService {
constructor(
private AttachmentRemoteDataSourceService: AttachmentRemoteDataSourceService,
private AttachmentLocalDataSource: AttachmentLocalDataSource
private AttachmentRemoteDataSourceService: IAttachmentRemoteRepository,
private AttachmentLocalDataSource: IAttachmentLocalRepository
) { }
@@ -39,7 +41,7 @@ export class GetMessageAttachmentLocallyUseCaseService {
return dataUrl
}
} else {
return err(getLocalAttachment.error)
return err(getLocalAttachment.error)
}
}
@@ -3,6 +3,8 @@ import { z } from 'zod';
import { MessageLocalDataSourceService } from 'src/app/module/chat/data/repository/message/message-local-data-source.service'
import { MessageSocketRepositoryService } from 'src/app/module/chat/data/repository/message/message-live-signalr-data-source.service'
import { SessionStore } from 'src/app/store/session.service';
import { IMessageLocalRepository } from '../../repository/message/message-local-repository';
import { IMessageSocketRepository } from '../../repository/message/message-socket-repository';
const MessageMarkAllMessageAsReadByRoomIdInputSchema = z.object({
roomId: z.string(),
@@ -20,8 +22,8 @@ export type MessageMarkAllMessageAsReadByRoomIdInputSchema = z.infer<typeof Mess
export class MessageMarkAllMessageAsReadByRoomIdService {
constructor(
private MessageLocalDataSourceService: MessageLocalDataSourceService,
private MessageSocketRepositoryService: MessageSocketRepositoryService
private MessageLocalDataSourceService: IMessageLocalRepository,
private MessageSocketRepositoryService: IMessageSocketRepository
) { }
@@ -1,7 +1,8 @@
import { Injectable } from '@angular/core';
import { MessageSocketRepositoryService } from '../../../data/repository/message/message-live-signalr-data-source.service';
import { MessageSocketRepositoryService } from '../../../../module/chat/data/repository/message/message-live-signalr-data-source.service';
import { XTracerAsync, TracingType } from 'src/app/services/monitoring/opentelemetry/tracer';
import { z } from 'zod';
import { IMessageSocketRepository } from '../../repository/message/message-socket-repository';
export const MessageMarkAsReadInputSchema = z.object({
memberId: z.number(),
@@ -18,7 +19,7 @@ export type MessageMarkAsReadInput = z.infer<typeof MessageMarkAsReadInputSchema
export class MessageMarkAsReadUseCaseService {
constructor(
private MessageSocketRepositoryService: MessageSocketRepositoryService,
private MessageSocketRepositoryService: IMessageSocketRepository,
) { }
@@ -1,8 +1,9 @@
import { Injectable } from '@angular/core';
import { object, z } from 'zod';
import { ValidateSchema } from 'src/app/services/decorators/validate-schema.decorator';
import { MessageRemoteDataSourceService } from '../../../data/repository/message/message-remote-data-source.service';
import { MessageSocketRepositoryService } from '../../../data/repository/message/message-live-signalr-data-source.service';
import { MessageRemoteDataSourceService } from '../../../../module/chat/data/repository/message/message-remote-data-source.service';
import { MessageSocketRepositoryService } from '../../../../module/chat/data/repository/message/message-live-signalr-data-source.service';
import { IMessageSocketRepository } from '../../repository/message/message-socket-repository';
const MessageReactionInputDTOSchema = z.object({
@@ -21,7 +22,7 @@ export type MessageReactionInput = z.infer< typeof MessageReactionInputDTOSchema
export class MessageReactionUseCaseService {
constructor(
public repository: MessageSocketRepositoryService
public repository: IMessageSocketRepository
) { }
@ValidateSchema(MessageReactionInputDTOSchema)
@@ -1,8 +1,9 @@
import { Injectable } from '@angular/core';
import { z } from 'zod';
import { ValidateSchema } from 'src/app/services/decorators/validate-schema.decorator';
import { MessageRemoteDataSourceService } from '../../../data/repository/message/message-remote-data-source.service';
import { MessageSocketRepositoryService } from '../../../data/repository/message/message-live-signalr-data-source.service';
import { MessageRemoteDataSourceService } from '../../../../module/chat/data/repository/message/message-remote-data-source.service';
import { MessageSocketRepositoryService } from '../../../../module/chat/data/repository/message/message-live-signalr-data-source.service';
import { IMessageSocketRepository } from '../../repository/message/message-socket-repository';
const MessageUpdateInputDTOSchema = z.object({
@@ -22,7 +23,7 @@ export type MessageUpdateInput = z.infer< typeof MessageUpdateInputDTOSchema>
export class MessageUpdateUseCaseService {
constructor(
public repository: MessageSocketRepositoryService
public repository: IMessageSocketRepository
) { }
@ValidateSchema(MessageUpdateInputDTOSchema)
@@ -1,17 +1,22 @@
import { Injectable } from '@angular/core';
import { MessageLocalDataSourceService } from '../../../data/repository/message/message-local-data-source.service';
import { MessageSocketRepositoryService } from '../../../data/repository/message/message-live-signalr-data-source.service';
import { InstanceId } from '../../chat-service.service';
import { MessageLocalDataSourceService } from '../../../../module/chat/data/repository/message/message-local-data-source.service';
import { MessageSocketRepositoryService } from '../../../../module/chat/data/repository/message/message-live-signalr-data-source.service';
import { InstanceId } from '../../../../module/chat/domain/chat-service.service';
import { MessageMapper } from '../../mapper/messageMapper';
import { v4 as uuidv4 } from 'uuid'
import { AttachmentLocalDataSource } from '../../../data/repository/attachment/attachment-local-repository.service';
import { RoomLocalRepository } from '../../../data/repository/room/room-local-repository.service';
import { AttachmentLocalDataSource } from '../../../../module/chat/data/repository/attachment/attachment-local-repository.service';
import { RoomLocalRepository } from '../../../../module/chat/data/repository/room/room-local-repository.service';
import { MemberListLocalRepository } from 'src/app/module/chat/data/repository/member/member-list-local-repository.service'
import { Result } from 'neverthrow';
import { RoomType } from 'src/app/core/chat/entity/group';
import { MessageTable } from 'src/app/infra/database/dexie/instance/chat/schema/message';
import { MessageOutPutDataDTO } from 'src/app/core/chat/repository/dto/messageOutputDTO';
import { IDBoolean } from 'src/app/infra/database/dexie/type';
import { IMemberLocalRepository } from '../../repository/member/member-local-repository';
import { IMessageLocalRepository } from '../../repository/message/message-local-repository';
import { IMessageSocketRepository } from '../../repository/message/message-socket-repository';
import { IRoomLocalRepository } from '../../repository/room/room-local-repository';
import { IAttachmentLocalRepository } from '../../repository/typing/typing-local-repository';
@Injectable({
providedIn: 'root'
@@ -19,12 +24,12 @@ import { IDBoolean } from 'src/app/infra/database/dexie/type';
export class SendLocalMessagesUseCaseService {
constructor(
private MessageSocketRepositoryService: MessageSocketRepositoryService,
private messageLocalDataSourceService: MessageLocalDataSourceService,
private AttachmentRepositoryService: AttachmentLocalDataSource,
private roomLocalDataSourceService: RoomLocalRepository,
private MemberListLocalRepository: MemberListLocalRepository,
private messageSocketRepositoryService: MessageSocketRepositoryService,
private MessageSocketRepositoryService: IMessageSocketRepository,
private messageLocalDataSourceService: IMessageLocalRepository,
private AttachmentRepositoryService: IAttachmentLocalRepository,
private roomLocalDataSourceService: IRoomLocalRepository,
private MemberListLocalRepository: IMemberLocalRepository,
private messageSocketRepositoryService: IMessageSocketRepository,
) { }
async execute() {
@@ -1,14 +1,17 @@
import { Injectable } from '@angular/core';
import { MessageLocalDataSourceService } from '../../../data/repository/message/message-local-data-source.service';
import { messageListDetermineChanges } from '../../../data/async/list/rooms/messageListChangedetector';
import { MessageRemoteDataSourceService } from '../../../data/repository/message/message-remote-data-source.service';
import { MessageSocketRepositoryService } from '../../../data/repository/message/message-live-signalr-data-source.service';
import { messageListDetermineChanges } from '../../../../module/chat/data/async/list/rooms/messageListChangedetector';
import { MessageRemoteDataSourceService } from '../../../../module/chat/data/repository/message/message-remote-data-source.service';
import { MessageSocketRepositoryService } from '../../../../module/chat/data/repository/message/message-live-signalr-data-source.service';
import { ok } from 'neverthrow';
import { RoomLocalRepository } from '../../../data/repository/room/room-local-repository.service';
import { RoomLocalRepository } from '../../../../module/chat/data/repository/room/room-local-repository.service';
import { Logger } from 'src/app/services/logger/main/service';
import { XTracerAsync, TracingType } from 'src/app/services/monitoring/opentelemetry/tracer';
import { MessageTable } from 'src/app/infra/database/dexie/instance/chat/schema/message';
import { IDBoolean } from 'src/app/infra/database/dexie/type';
import { IMessageLocalRepository } from '../../repository/message/message-local-repository';
import { IMessageRemoteRepository } from '../../repository/message/message-remote-repository';
import { IMessageSocketRepository } from '../../repository/message/message-socket-repository';
import { IRoomLocalRepository } from '../../repository/room/room-local-repository';
@Injectable({
providedIn: 'root'
@@ -16,10 +19,10 @@ import { IDBoolean } from 'src/app/infra/database/dexie/type';
export class SyncAllRoomMessagesService {
constructor(
private messageLocalDataSourceService: MessageLocalDataSourceService,
private messageRemoteDataSourceService: MessageRemoteDataSourceService,
private MessageSocketRepositoryService: MessageSocketRepositoryService,
private roomLocalDataSourceService: RoomLocalRepository,
private messageLocalDataSourceService: IMessageLocalRepository,
private messageRemoteDataSourceService: IMessageRemoteRepository,
private MessageSocketRepositoryService: IMessageSocketRepository,
private roomLocalDataSourceService: IRoomLocalRepository,
) { }
@XTracerAsync({name:'SyncAllRoomMessagesService', module:'chat', bugPrint: true})
@@ -39,8 +42,10 @@ export class SyncAllRoomMessagesService {
const removeLocalRooms = allRooms.value.filter((e)=> e.local != IDBoolean.true)
const roomPromises = removeLocalRooms.map(async (room) => {
const lastMessage = room.messages.find(e => e.sentAt && e.id)
const [result, localResult] = await Promise.all([
this.messageRemoteDataSourceService.getMessagesFromRoom(room.id),
this.messageRemoteDataSourceService.getMessagesFromRoom({roomId:room.id, lastMessageDate: lastMessage?.sentAt}),
this.messageLocalDataSourceService.getItems(room.id)
]);
@@ -4,14 +4,14 @@ import { IMessageSocketRepository } from 'src/app/core/chat/repository/message/m
import { MessageEntity } from 'src/app/core/chat/entity/message';
import { IBoldLocalRepository } from 'src/app/core/chat/repository/bold/bold-local-repository';
import { IMessageLocalRepository } from 'src/app/core/chat/repository/message/message-local-repository';
import { InstanceId } from '../../chat-service.service';
import { InstanceId } from '../../../../module/chat/domain/chat-service.service';
import { HttpAdapter } from 'src/app/infra/http/adapter';
import { SessionStore } from 'src/app/store/session.service';
import { TracingType, XTracerAsync } from 'src/app/services/monitoring/opentelemetry/tracer';
import { IRoomLocalRepository } from 'src/app/core/chat/repository/room/room-local-repository';
import { IMessageGetAllByRoomIdOutPut } from 'src/app/core/chat/usecase/message/message-get-all-by-room-Id';
import { RoomEntity } from 'src/app/core/chat/entity/group';
import { messageListDetermineChanges } from '../../../data/async/list/rooms/messageListChangedetector';
import { messageListDetermineChanges } from '../../../../module/chat/data/async/list/rooms/messageListChangedetector';
@Injectable({
@@ -94,8 +94,8 @@ export class RoomBoldSyncUseCaseService {
const regex = new RegExp("Room\\/([0-9a-fA-F]{8})-([0-9a-fA-F]{4})-([0-9a-fA-F]{4})-([0-9a-fA-F]{4})-([0-9a-fA-F]{12})\\/Messages");
return this.http.listen().pipe(
filter((response: any)=> {
return response?.isOk() && regex.test(response.value.url) && response.value.url.endsWith('/Messages')
filter((response)=> {
return response?.isOk() && regex.test(response.value.url)
}),
map((response: any) => response.value.data as IMessageGetAllByRoomIdOutPut)
).subscribe(async (data)=> {
@@ -1,7 +1,8 @@
import { Injectable } from '@angular/core';
import { GetRoomListUseCaseService } from './room-get-list-use-case.service'
import { RoomSocketRepositoryService } from '../../../data/repository/room/room-socket-repository.service'
import { RoomSocketRepositoryService } from '../../../../module/chat/data/repository/room/room-socket-repository.service'
import { IRoomLocalRepository } from 'src/app/core/chat/repository/room/room-local-repository';
import { IRoomSocketRepository } from '../../repository/room/room-socket-repository';
@Injectable({
providedIn: 'root'
@@ -9,7 +10,7 @@ import { IRoomLocalRepository } from 'src/app/core/chat/repository/room/room-loc
export class RoomGetListOnCreateUseCaseService {
constructor(
private RoomSocketRepositoryService: RoomSocketRepositoryService,
private RoomSocketRepositoryService: IRoomSocketRepository,
private getRoomListUseCaseService: GetRoomListUseCaseService,
private roomLocalDataSourceService: IRoomLocalRepository,
) {
@@ -32,7 +33,7 @@ export class RoomGetListOnCreateUseCaseService {
if(findLocally.isOk() && !findLocally.value) {
this.getRoomListUseCaseService.execute()
}
}, 1000);
@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
import { roomListDetermineChanges } from '../../../data/async/list/rooms/roomListChangeDetector';
import { roomListDetermineChanges } from '../../../../module/chat/data/async/list/rooms/roomListChangeDetector';
import { captureAndReraiseAsync } from 'src/app/services/decorators/captureAndReraiseAsync';
import { CronJobService } from 'src/app/utils/task-scheduler'
import { z } from "zod";
@@ -8,7 +8,7 @@ import { IMessageGetAllByRoomIdOutPut } from 'src/app/core/chat/usecase/message/
import { RoomEntity } from 'src/app/core/chat/entity/group';
import { RoomTable } from 'src/app/infra/database/dexie/instance/chat/schema/room';
import { IMessageLocalRepository } from 'src/app/core/chat/repository/message/message-local-repository';
import { messageListDetermineChanges } from '../../../data/async/list/rooms/messageListChangedetector';
import { messageListDetermineChanges } from '../../../../module/chat/data/async/list/rooms/messageListChangedetector';
import { IDBoolean } from 'src/app/infra/database/dexie/type';
@Injectable({
@@ -166,7 +166,7 @@ export class RoomSetLastMessageService {
return this.http.listen().pipe(
filter((response: any)=> {
return response?.isOk() && regex.test(response.value.url) && response.value.url.endsWith('/Messages')
return response?.isOk() && regex.test(response.value.url)
}),
map((response: any) => response.value.data as IMessageGetAllByRoomIdOutPut)
).subscribe(async (data)=> {
@@ -1,6 +1,7 @@
import { Injectable } from '@angular/core';
import { MessageSocketRepositoryService } from 'src/app/module/chat/data/repository/message/message-live-signalr-data-source.service';
import { XTracerAsync } from 'src/app/services/monitoring/opentelemetry/tracer';
import { IMessageSocketRepository } from '../repository/message/message-socket-repository';
@Injectable({
providedIn: 'root'
@@ -8,7 +9,7 @@ import { XTracerAsync } from 'src/app/services/monitoring/opentelemetry/tracer';
export class SocketConnectUseCaseService {
constructor(
private MessageSocketRepositoryService: MessageSocketRepositoryService
private MessageSocketRepositoryService: IMessageSocketRepository
) { }
@XTracerAsync({name:'SocketConnectUseCaseService', module:'chat', bugPrint: true})
@@ -1,5 +1,6 @@
import { Injectable } from '@angular/core';
import { MessageSocketRepositoryService } from 'src/app/module/chat/data/repository/message/message-live-signalr-data-source.service';
import { IMessageSocketRepository } from '../repository/message/message-socket-repository';
@Injectable({
@@ -8,7 +9,7 @@ import { MessageSocketRepositoryService } from 'src/app/module/chat/data/reposit
export class SocketJoinUseCaseService {
constructor(
private MessageSocketRepositoryService: MessageSocketRepositoryService
private MessageSocketRepositoryService: IMessageSocketRepository
) { }
@@ -1,5 +1,5 @@
import { Injectable, Input } from '@angular/core';
import { MessageLocalDataSourceService } from '../../../data/repository/message/message-local-data-source.service';
import { MessageLocalDataSourceService } from '../../../../module/chat/data/repository/message/message-local-data-source.service';
import { TracingType, XTracerAsync } from 'src/app/services/monitoring/opentelemetry/tracer';
import { ParamsValidation } from 'src/app/services/decorators/validate-schema.decorator';
import { MessageEntitySchema } from 'src/app/core/chat/entity/message';
@@ -1,8 +1,9 @@
import { Injectable } from '@angular/core';
import { MessageLocalDataSourceService } from '../../../data/repository/message/message-local-data-source.service';
import { MessageLocalDataSourceService } from '../../../../module/chat/data/repository/message/message-local-data-source.service';
import { MessageEntitySchema } from 'src/app/core/chat/entity/message';
import { z } from 'zod';
import { TracingType, XTracerAsync } from 'src/app/services/monitoring/opentelemetry/tracer';
import { IMessageLocalRepository } from '../../repository/message/message-local-repository';
const SocketMessageDeleteOutputSchema = MessageEntitySchema.pick({
id: true,
@@ -32,7 +33,7 @@ export type ISocketMessageDeleteOutput = z.infer<typeof SocketMessageDeleteOutpu
export class SocketMessageDeleteUseCaseService {
constructor(
private messageLocalDataSourceService: MessageLocalDataSourceService
private messageLocalDataSourceService: IMessageLocalRepository
) { }
@@ -1,11 +1,12 @@
import { Injectable } from '@angular/core';
import { MessageLocalDataSourceService } from '../../../data/repository/message/message-local-data-source.service';
import { MessageLocalDataSourceService } from '../../../../module/chat/data/repository/message/message-local-data-source.service';
import { ParamsValidation, SafeValidateSchema, ValidateSchema } from 'src/app/services/decorators/validate-schema.decorator';
import { TracingType, XTracerAsync } from 'src/app/services/monitoring/opentelemetry/tracer';
import { MessageEntitySchema } from 'src/app/core/chat/entity/message';
import { z } from 'zod';
import { MessageTable } from 'src/app/infra/database/dexie/instance/chat/schema/message';
import { MessageOutPutDataDTOSchema } from 'src/app/core/chat/repository/dto/messageOutputDTO';
import { IMessageLocalRepository } from '../../repository/message/message-local-repository';
const SocketMessageUpdateOutputSchema = MessageEntitySchema.pick({
@@ -34,7 +35,7 @@ export type ISocketMessageUpdateOutput = z.infer<typeof SocketMessageUpdateOutpu
export class SocketMessageUpdateUseCaseService {
constructor(
private messageLocalDataSourceService: MessageLocalDataSourceService
private messageLocalDataSourceService: IMessageLocalRepository
) { }
@@ -1,6 +1,6 @@
import { Injectable } from '@angular/core';
import { SessionStore } from 'src/app/store/session.service';
import { UserTypingRemoteRepositoryService } from '../../../data/repository/typing/user-typing-live-data-source.service';
import { UserTypingRemoteRepositoryService } from 'src/app/module/chat/data/repository/typing/user-typing-live-data-source.service'
@Injectable({
providedIn: 'root'
+4 -1
View File
@@ -39,7 +39,10 @@ export class HttpService {
let httpParams = new HttpParams();
if (options?.params) {
Object.keys(options.params).forEach(key => {
httpParams = httpParams.append(key, String(options.params[key]));
if(options.params[key]) {
httpParams = httpParams.append(key, options.params[key]);
}
});
}
@@ -1,6 +1,6 @@
import { RoomTable } from "src/app/infra/database/dexie/instance/chat/schema/room";
import { RoomByIdOutputDTO } from "src/app/module/chat/domain/use-case/room/room-get-by-id-use-case.service";
import { RoomListItemOutPutDTO } from "src/app/module/chat/domain/use-case/room/room-get-list-use-case.service";
import { RoomByIdOutputDTO } from "src/app/core/chat/usecase/room/room-get-by-id-use-case.service";
import { RoomListItemOutPutDTO } from "src/app/core/chat/usecase/room/room-get-list-use-case.service";
export function roomByIdDetermineChanges(serverResponse: RoomByIdOutputDTO, localRooms: RoomTable[]) {
@@ -1,6 +1,6 @@
import { RoomType } from "src/app/core/chat/entity/group";
import { RoomTable } from "src/app/infra/database/dexie/instance/chat/schema/room";
import { RoomListItemOutPutDTO } from "src/app/module/chat/domain/use-case/room/room-get-list-use-case.service";
import { RoomListItemOutPutDTO } from "src/app/core/chat/usecase/room/room-get-list-use-case.service";
import { SessionStore } from "src/app/store/session.service";
export function roomListDetermineChanges(serverRooms: RoomListItemOutPutDTO[], localRooms: RoomTable[]) {
@@ -1,5 +1,5 @@
import { MemberTable } from "src/app/infra/database/dexie/instance/chat/schema/members";
import { RoomByIdMemberItemOutputDTO } from "src/app/module/chat/domain/use-case/room/room-get-by-id-use-case.service";
import { RoomByIdMemberItemOutputDTO } from "src/app/core/chat/usecase/room/room-get-by-id-use-case.service";
export function roomMemberListDetermineChanges(____serverRooms: RoomByIdMemberItemOutputDTO[], localRooms: MemberTable[], roomId: string) {
@@ -4,7 +4,7 @@ import { z } from 'zod';
import { DexieRepository } from 'src/app/infra/repository/dexie/dexie-repository.service';
import { ok } from 'neverthrow';
import { err, Result } from 'neverthrow';
import { MemberListUPdateStatusInputDTO } from '../../../domain/use-case/socket/member-list-update-status-use-case.service';
import { MemberListUPdateStatusInputDTO } from '../../../../../core/chat/usecase/socket/member-list-update-status-use-case.service';
import { from } from 'rxjs';
import { MemberTable, MemberTableSchema } from 'src/app/infra/database/dexie/instance/chat/schema/members';
import { chatDatabase } from 'src/app/infra/database/dexie/instance/chat/service';
@@ -4,9 +4,9 @@ import { ValidateSchema } from 'src/app/services/decorators/validate-schema.deco
import { HttpService } from 'src/app/services/http.service';
import { DataSourceReturn } from 'src/app/services/Repositorys/type';
import { IMemberRemoteRepository } from 'src/app/core/chat/repository/member/member-remote-repository';
import { AddMemberToRoomInputDTO, AddMemberToRoomInputDTOSchema } from '../../../domain/use-case/member/member-add-use-case.service';
import { MemberSetAdminDTO } from '../../../domain/use-case/member/member-admin-use-case.service';
import { UserRemoveListInputDTOSchema, UserRemoveListInputDTO } from '../../../domain/use-case/room/room-leave-by-id-use-case.service';
import { UserRemoveListInputDTOSchema, UserRemoveListInputDTO } from '../../../../../core/chat/usecase/room/room-leave-by-id-use-case.service';
import { AddMemberToRoomInputDTOSchema, AddMemberToRoomInputDTO } from 'src/app/core/chat/usecase/member/member-add-use-case.service';
import { MemberSetAdminDTO } from 'src/app/core/chat/usecase/member/member-admin-use-case.service';
@Injectable({
providedIn: 'root'
})
@@ -1,11 +1,11 @@
import { Injectable } from '@angular/core';
import { SignalRService } from 'src/app/infra/socket/signalR/signal-r.service';
import { IMemberSocketRepository } from 'src/app/core/chat/repository/member/member-socket-repository';
import { IRemoveRoomMemberOutput, RemoveRoomMemberInput } from '../../../domain/use-case/member/member-remove-socket-use-case.service';
import { InstanceId } from '../../../domain/chat-service.service';
import { v4 as uuidv4 } from 'uuid'
import { filter, map, tap } from 'rxjs/operators';
import { SocketMessage } from 'src/app/infra/socket/signalR/signalR';
import { RemoveRoomMemberInput, IRemoveRoomMemberOutput } from 'src/app/core/chat/usecase/member/member-remove-socket-use-case.service';
@Injectable({
providedIn: 'root'
@@ -1,16 +1,16 @@
import { Injectable } from '@angular/core';
import { v4 as uuidv4 } from 'uuid'
import { InstanceId } from '../../../domain/chat-service.service';
import { MessageUpdateInput } from '../../../domain/use-case/message/message-update-by-id-use-case.service';
import { MessageReactionInput } from '../../../domain/use-case/message/message-reaction-by-id-use-case.service';
import { MessageUpdateInput } from '../../../../../core/chat/usecase/message/message-update-by-id-use-case.service';
import { MessageReactionInput } from '../../../../../core/chat/usecase/message/message-reaction-by-id-use-case.service';
import { SignalRService } from 'src/app/infra/socket/signalR/signal-r.service';
import { filter, map } from 'rxjs/operators';
import { SocketMessage } from 'src/app/infra/socket/signalR/signalR';
import { IMessageSocketRepository } from 'src/app/core/chat/repository/message/message-socket-repository';
import { MessageCreateOutPutDataDTO, MessageInputDTO } from '../../../domain/use-case/message/message-create-use-case.service';
import { MessageMarkAsReadInput } from '../../../domain/use-case/message/message-mark-as-read-use-case.service';
import { MessageCreateOutPutDataDTO, MessageInputDTO } from '../../../../../core/chat/usecase/message/message-create-use-case.service';
import { MessageMarkAsReadInput } from '../../../../../core/chat/usecase/message/message-mark-as-read-use-case.service';
import { MessageOutPutDataDTO } from 'src/app/core/chat/repository/dto/messageOutputDTO';
import { MessageDeleteInputDTO } from '../../../domain/use-case/message/message-delete-by-id-live-use-case.service';
import { MessageDeleteInputDTO } from '../../../../../core/chat/usecase/message/message-delete-by-id-live-use-case.service';
import { BehaviorSubject, Observable } from 'rxjs';
interface sendDeliverAt {
@@ -4,7 +4,7 @@ import { DataSourceReturn } from 'src/app/services/Repositorys/type';
import { SignalRService } from 'src/app/infra/socket/signalR/signal-r.service';
import { HttpAdapter } from 'src/app/infra/http/adapter';
import { IMessageGetAllByRoomIdOutPut } from 'src/app/core/chat/usecase/message/message-get-all-by-room-Id';
import { IMessageRemoteRepository } from 'src/app/core/chat/repository/message/message-remote-repository';
import { IGetMessagesFromRoomParams, IMessageRemoteRepository } from 'src/app/core/chat/repository/message/message-remote-repository';
@Injectable({
providedIn: 'root'
@@ -21,9 +21,9 @@ export class MessageRemoteDataSourceService implements IMessageRemoteRepository
// @APIReturn(MessageOutPutDTOSchema, 'get/Messages')
async getMessagesFromRoom(id: string): DataSourceReturn<IMessageGetAllByRoomIdOutPut> {
async getMessagesFromRoom(input: IGetMessagesFromRoomParams): DataSourceReturn<IMessageGetAllByRoomIdOutPut> {
var a = await this.http.get<IMessageGetAllByRoomIdOutPut>(`${this.baseUrl}/Room/${id}/Messages`)
var a = await this.http.get<IMessageGetAllByRoomIdOutPut>(`${this.baseUrl}/Room/${input.roomId}/Messages?startDate=${encodeURIComponent(input.lastMessageDate)}`)
return a.map((e) => {
return e.data
@@ -41,8 +41,6 @@ export class RoomLocalRepository extends DexieRepository<RoomTable, RoomTable> i
// (modifications as Partial<RoomTable>).messages[0].sentAt = oldValue.messages?.[0]?.sentAt
// }
console.log({modifications, oldValue})
if((modifications as Partial<RoomTable>).id || oldValue.id) {
(modifications as Partial<RoomTable>).local = IDBoolean.false
} else {
@@ -1,18 +1,18 @@
import { Injectable } from '@angular/core';
import { Result } from 'neverthrow';
import { HttpService } from 'src/app/services/http.service';
import { AddMemberToRoomInputDTO } from '../../../domain/use-case/member/member-add-use-case.service';
import { DataSourceReturn } from 'src/app/services/Repositorys/type';
import { SessionStore } from 'src/app/store/session.service';
import { SignalRService } from 'src/app/infra/socket/signalR/signal-r.service';
import { v4 as uuidv4 } from 'uuid'
import { CreateRoomInputDTO, RoomOutPutDTO } from '../../../domain/use-case/room/room-create-use-case.service';
import { CreateRoomInputDTO, RoomOutPutDTO } from '../../../../../core/chat/usecase/room/room-create-use-case.service';
import { IRoomRemoteRepository } from 'src/app/core/chat/repository/room/room-remote-repository';
import { RoomByIdOutputDTO } from 'src/app/module/chat/domain/use-case/room/room-get-by-id-use-case.service';
import { RoomUpdateInputDTO, RoomUpdateOutputDTO } from 'src/app/module/chat/domain/use-case/room/room-update-by-id-use-case.service';
import { RoomListOutPutDTO } from '../../../domain/use-case/room/room-get-list-use-case.service';
import { RoomByIdOutputDTO } from 'src/app/core/chat/usecase/room/room-get-by-id-use-case.service';
import { RoomUpdateInputDTO, RoomUpdateOutputDTO } from 'src/app/core/chat/usecase/room/room-update-by-id-use-case.service';
import { RoomListOutPutDTO } from '../../../../../core/chat/usecase/room/room-get-list-use-case.service';
import { z } from 'zod';
import { HttpAdapter } from 'src/app/infra/http/adapter';
import { AddMemberToRoomInputDTO } from 'src/app/core/chat/usecase/member/member-add-use-case.service';
const RoomByIdInputDTOSchema = z.string()
type RoomByIdInputDTO = z.infer<typeof RoomByIdInputDTOSchema>
@@ -5,7 +5,7 @@ import { z } from 'zod';
import { SocketMessage } from 'src/app/infra/socket/signalR/signalR';
import { v4 as uuidv4 } from 'uuid'
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 '../../../../../core/chat/usecase/room/room-create-use-case.service';
const listenToDeleteRoomInputSchema = z.object({
roomId: z.string()
@@ -1,57 +1,56 @@
import { Injectable } from '@angular/core';
import { MessageDeleteLiveUseCaseService } from 'src/app/module/chat/domain/use-case/message/message-delete-by-id-live-use-case.service'
import { MessageDeleteLiveUseCaseService } from 'src/app/core/chat/usecase/message/message-delete-by-id-live-use-case.service'
import { SessionStore } from 'src/app/store/session.service';
import { MessageReactionInput, MessageReactionUseCaseService } from 'src/app/module/chat/domain/use-case/message/message-reaction-by-id-use-case.service';
import { MessageUpdateInput, MessageUpdateUseCaseService } from 'src/app/module/chat/domain/use-case/message/message-update-by-id-use-case.service';
import { MemberAdminUseCaseService, MemberSetAdminDTO } from 'src/app/module/chat/domain/use-case/member/member-admin-use-case.service';
import { MessageCreateUseCaseService } from 'src/app/module/chat/domain/use-case/message/message-create-use-case.service';
import { MessageReactionInput, MessageReactionUseCaseService } from 'src/app/core/chat/usecase/message/message-reaction-by-id-use-case.service';
import { MessageUpdateInput, MessageUpdateUseCaseService } from 'src/app/core/chat/usecase/message/message-update-by-id-use-case.service';
import { MemberAdminUseCaseService, MemberSetAdminDTO } from 'src/app/core/chat/usecase/member/member-admin-use-case.service';
import { MessageCreateUseCaseService } from 'src/app/core/chat/usecase/message/message-create-use-case.service';
import { SignalRService } from 'src/app/infra/socket/signalR/signal-r.service';
import { SocketMessageDeleteUseCaseService } from 'src/app/module/chat/domain/use-case/socket/socket-message-delete-use-case.service';
import { SocketMessageUpdateUseCaseService } from 'src/app/module/chat/domain/use-case/socket/socket-message-update-use-case.service';
import { SocketMessageCreateUseCaseService } from 'src/app/module/chat/domain/use-case/socket/socket-message-create-use-case.service';
import { DownloadMessageAttachmentByMessageId, DownloadMessageAttachmentUserCaseService } from 'src/app/module/chat/domain/use-case/message/message-download-attachment-user-case.service';
import { ListenMessageByRoomIdNewUseCase } from 'src/app/module/chat/domain/use-case/message/listen-message-by-roomId.service';
import { MemberListUpdateStatusUseCaseService } from 'src/app/module/chat/domain/use-case/socket/member-list-update-status-use-case.service';
import { ListenMessageDeleteByRoomIdService } from './use-case/message/listene-message-delete-by-roomId.service';
import { ListenMessageUpdateByRoomIdUseCase } from './use-case/message/listen-message-update-by-roomId.service';
import { GetRoomByIdUseCaseService } from './use-case/room/room-get-by-id-use-case.service';
import { DeleteRoomUseCaseService } from './use-case/room/room-delete-by-id-use-case.service';
import { CreateRoomInputDTO, CreateRoomUseCaseService } from './use-case/room/room-create-use-case.service';
import { RoomLeaveUseCase, UserRemoveListInputDTO } from './use-case/room/room-leave-by-id-use-case.service';
import { SyncAllRoomMessagesService } from './use-case/message/sync-all-room-messages.service';
import { ListenSendMessageUseCase } from './use-case/message/listen-send-message.service';
import { SendLocalMessagesUseCaseService } from './use-case/message/messages-send-offline-use-case.service'
import { RemoveMemberUseCaseService } from './use-case/member/-use-case.service'
import { AddMemberUseCaseService } from './use-case/member/member-add-use-case.service'
import { MemberRemoveSocketUseCaseService, RemoveRoomMemberInput } from './use-case/member/member-remove-socket-use-case.service'
import { RoomUpdateInputDTO, UpdateRoomByIdUseCaseService } from './use-case/room/room-update-by-id-use-case.service'
import { SocketConnectUseCaseService } from './use-case/socket-connect-use-case.service'
import { MessageMarkAsReadUseCaseService } from './use-case/message/message-mark-as-read-use-case.service'
import { MessageMarkAllMessageAsReadByRoomIdInputSchema, MessageMarkAllMessageAsReadByRoomIdService } from './use-case/message/message-mark-all-message-as-read-by-room-id.service'
import { GetRoomListUseCaseService } from 'src/app/module/chat/domain/use-case/room/room-get-list-use-case.service';
import { SocketMessageDeleteUseCaseService } from 'src/app/core/chat/usecase/socket/socket-message-delete-use-case.service';
import { SocketMessageUpdateUseCaseService } from 'src/app/core/chat/usecase/socket/socket-message-update-use-case.service';
import { SocketMessageCreateUseCaseService } from 'src/app/core/chat/usecase/socket/socket-message-create-use-case.service';
import { DownloadMessageAttachmentByMessageId, DownloadMessageAttachmentUserCaseService } from 'src/app/core/chat/usecase/message/message-download-attachment-user-case.service';
import { ListenMessageByRoomIdNewUseCase } from 'src/app/core/chat/usecase/message/listen-message-by-roomId.service';
import { MemberListUpdateStatusUseCaseService } from 'src/app/core/chat/usecase/socket/member-list-update-status-use-case.service';
import { ListenMessageDeleteByRoomIdService } from 'src/app/core/chat/usecase/message/listene-message-delete-by-roomId.service';
import { ListenMessageUpdateByRoomIdUseCase } from 'src/app/core/chat/usecase/message/listen-message-update-by-roomId.service';
import { GetRoomByIdUseCaseService } from '../../../core/chat/usecase/room/room-get-by-id-use-case.service';
import { DeleteRoomUseCaseService } from '../../../core/chat/usecase/room/room-delete-by-id-use-case.service';
import { CreateRoomInputDTO, CreateRoomUseCaseService } from '../../../core/chat/usecase/room/room-create-use-case.service';
import { RoomLeaveUseCase, UserRemoveListInputDTO } from '../../../core/chat/usecase/room/room-leave-by-id-use-case.service';
import { SyncAllRoomMessagesService } from 'src/app/core/chat/usecase/message/sync-all-room-messages.service';
import { ListenSendMessageUseCase } from '../../../core/chat/usecase/message/listen-send-message.service';
import { SendLocalMessagesUseCaseService } from 'src/app/core/chat/usecase/message/messages-send-offline-use-case.service'
import { RemoveMemberUseCaseService } from 'src/app/core/chat/usecase/member/-use-case.service'
import { AddMemberToRoomInputDTO, AddMemberUseCaseService } from 'src/app/core/chat/usecase/member/member-add-use-case.service'
import { MemberRemoveSocketUseCaseService, RemoveRoomMemberInput } from 'src/app/core/chat/usecase/member/member-remove-socket-use-case.service'
import { RoomUpdateInputDTO, UpdateRoomByIdUseCaseService } from '../../../core/chat/usecase/room/room-update-by-id-use-case.service'
import { SocketConnectUseCaseService } from 'src/app/core/chat/usecase/socket-connect-use-case.service'
import { MessageMarkAsReadUseCaseService } from 'src/app/core/chat/usecase/message/message-mark-as-read-use-case.service'
import { MessageMarkAllMessageAsReadByRoomIdInputSchema, MessageMarkAllMessageAsReadByRoomIdService } from 'src/app/core/chat/usecase/message/message-mark-all-message-as-read-by-room-id.service'
import { GetRoomListUseCaseService } from 'src/app/core/chat/usecase/room/room-get-list-use-case.service';
import { filter, map } from 'rxjs/operators';
import { v4 as uuidv4 } from 'uuid'
import { IMessage, MessageEntity } from '../../../core/chat/entity/message';
import { MessageAttachmentByMessageIdInput, MessageAttachmentByMessageIdUseCase } from './use-case/message/message-attachment-by-message-id.service';
import { AddMemberToRoomInputDTO } from '../domain/use-case/member/member-add-use-case.service';
import { MessageAttachmentByMessageIdInput, MessageAttachmentByMessageIdUseCase } from 'src/app/core/chat/usecase/message/message-attachment-by-message-id.service';
import { RoomType } from "src/app/core/chat/entity/group";
import { HttpListenToMessageLoadHistoryAdapter } from './adapter'
import { HttpListenToMessageLoadHistoryUseCaseInput } from 'src/app/core/chat/usecase/message/http-listen-to-message-load-history-by-roomId-use-case';
import { MessageSocketRepositoryService } from 'src/app/module/chat/data/repository/message/message-live-signalr-data-source.service'
import { MessageMarkAsReadInput } from "src/app/module/chat/domain/use-case/message/message-mark-as-read-use-case.service";
import { BoldRemoveByRoomIdInput, BoldRemoveByRoomIdService } from 'src/app/module/chat/domain/use-case/bold/bold-remove-by-room-id.service';
import { MemberListHttpSyncUseCase } from 'src/app/module/chat/domain/use-case/member/member-list-http-sync-use-case.ts.service'
import { RoomBoldSyncUseCaseService } from 'src/app/module/chat/domain/use-case/room/room-bold-sync-use-case.service'
import { RoomSetLastMessageService } from 'src/app/module/chat/domain/use-case/room/room-set-last-message.service';
import { RoomDirectOnSetIdUseCaseInputSchema, RoomDirectOnSetIdUseCaseService } from 'src/app/module/chat/domain/use-case/room/room-direct-on-set-id-use-case.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 { 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 { 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 { IRoomGetLocalByIdServiceInput, RoomGetLocalByIdService } from './use-case/room/room-getlocal-by-id.service';
import { MessageMarkAsReadInput } from "src/app/core/chat/usecase/message/message-mark-as-read-use-case.service";
import { BoldRemoveByRoomIdInput, BoldRemoveByRoomIdService } from 'src/app/core/chat/usecase/bold/bold-remove-by-room-id.service';
import { MemberListHttpSyncUseCase } from 'src/app/core/chat/usecase/member/member-list-http-sync-use-case.ts.service'
import { RoomBoldSyncUseCaseService } from 'src/app/core/chat/usecase/room/room-bold-sync-use-case.service'
import { RoomSetLastMessageService } from 'src/app/core/chat/usecase/room/room-set-last-message.service';
import { RoomDirectOnSetIdUseCaseInputSchema, RoomDirectOnSetIdUseCaseService } from 'src/app/core/chat/usecase/room/room-direct-on-set-id-use-case.service';
import { RoomCreateLocalDirectMessageInputDTOInputDTO, RoomCreateLocalDirectMessageService } from 'src/app/core/chat/usecase/room/room-create-local-direct-message.service';
import { RoomGetListOnCreateUseCaseService } from 'src/app/core/chat/usecase/room/room-get-list-on-create-use-case.service';
import { IRoomSetLocalToFalseByIdInput, RoomSetLocalToFalseByIdService } from 'src/app/core/chat/usecase/room/room-set-local-to-false-by-id.service';
import { RoomUpdateNameSyncService } from 'src/app/core/chat/usecase/room/room-update-name-sync.service';
import { IUserPhotoGetByIdInput, UserPhotoGetByIdUseCase } from 'src/app/core/chat/usecase/user-photo/user-photo-get-by-id-use-case.service'
import { IMessageLocalGetByIdServiceInput, MessageLocalGetByIdService } from 'src/app/core/chat/usecase/message/message-local-get-by-id.service'
import { ContactListService } from 'src/app/core/chat/usecase/contact/contact-list.service';
import { IRoomGetLocalByIdServiceInput, RoomGetLocalByIdService } from '../../../core/chat/usecase/room/room-getlocal-by-id.service';
export const getInstanceId = (): string => {
+2 -5
View File
@@ -228,10 +228,6 @@
<div class="height-100">
<div class="timeline-container height-100 d-flex pt-10 pl-20 filter-{{segment}} flex-column" >
<div class="timeline-date align-center" *ngIf="isSelectedDayHasEvent && hasEventToday">
<span >Hoje,&nbsp;</span> {{ todayDateFormat() }}
</div>
<div class="ss-timeline timeline-mobile flex-grow-1 pr-10 text-black height-100 width-100 overflow-y-auto" >
<div *ngFor="let year of TimelineMDList " >
@@ -240,7 +236,8 @@
<div *ngFor="let day of month.days; let i = index " class="EventListBox-container" >
<div class="day" *ngIf="!(i == 0 && isSelectedDayHasEvent)" >
<div class="day" >
<span *ngIf="i == 0 && isSelectedDayIsToday" > Hoje </span>
{{ day.daysInfo.dayName }} <div style="text-transform: capitalize; display: inline;">{{month.monthInfo.monthName}}</div>
</div>
+16 -11
View File
@@ -183,7 +183,7 @@ export class AgendaPage implements OnInit {
environment = environment
selectedUserCalendar: number | string = null
hasEventToday = false
isSelectedDayHasEvent = true
isSelectedDayIsToday = true
sharedCalendar: Observable<TableSharedCalendar[]>
@@ -854,22 +854,27 @@ export class AgendaPage implements OnInit {
if(YearIndex == 0) {
let MonthNameIndex = year[YearIndex].months.findIndex( x => x.monthInfo.monthName == monthName)
if(MonthNameIndex == 0) {
let DayNameIndex = year[YearIndex].months[MonthNameIndex].days.findIndex( x => x.daysInfo.dayName == dayName)
if(DayNameIndex == 0) {
this.hasEventToday = true
} else {
this.hasEventToday = false
let events = year[YearIndex].months[MonthNameIndex].days.filter( x => x.daysInfo.dayName == dayName)
for(const e of events) {
for(const b of e.events) {
const equal = (momentG(new Date(), 'dd MMMM yyyy', 'pt') == momentG((b as any).start, 'dd MMMM yyyy', 'pt'))
if(equal) {
this.isSelectedDayIsToday = true
return true
}
}
}
this.isSelectedDayIsToday = false
} else {
this.hasEventToday = false
this.isSelectedDayIsToday = false
}
} else {
this.hasEventToday = false
this.isSelectedDayIsToday = false
}
this.isSelectedDayHasEvent = momentG(new Date(), 'dd MMMM yyyy', 'pt') == momentG(this.eventSelectedDate, 'dd MMMM yyyy', 'pt');
}
-1
View File
@@ -258,4 +258,3 @@
</div>
<div [class.header-bottom-line]="ThemeService.currentTheme == 'gov'" style="height: 5px;"></div>
</div>
@@ -176,11 +176,8 @@ export class PublicationFolderService {
if (!found) {
this.publicationList[folderId].push(publicationDetails)
this.revertPublicationOrder(folderId);
console.log('found')
} else {
console.log('try')
let a: any = this.publicationList[folderId][findIndex]
let b: any = publicationDetails
-2
View File
@@ -383,7 +383,6 @@ export class ChatPage implements OnInit {
else {
this.roomId = null;
this.selectedRoomId = room.$id;
console.log('RoomSelected', room)
this.RoomSelected = room
this.closeAllDesktopComponents();
this.showEmptyComponent = false;
@@ -524,7 +523,6 @@ export class ChatPage implements OnInit {
modal.onDidDismiss().then(e => {
this.roomId = null;
this.selectedRoomId = null;
console.log('RoomSelected', room)
this.RoomSelected = null
})
}
@@ -69,6 +69,7 @@
<div *ngIf="attachment.fileType == MessageAttachmentFileType.Image">
<img
class="image-container"
*ngIf="message.oneShot != true && attachment.blobURl != true"
[src]="attachment.safeFile"
(load)="onImageLoad(message, messageIndex)"
@@ -76,6 +77,7 @@
>
<img
class="image-container"
*ngIf="message.oneShot != true && attachment.blobURl"
[src]="attachment.safeFile|safehtml"
(load)="onImageLoad(message, messageIndex)"
@@ -545,3 +545,9 @@ ion-footer {
.emoji-picker button:hover {
transform: scale(1.1);
}
.image-container {
max-height: 400px;
max-width: 700px;
}
@@ -48,7 +48,7 @@
<ion-content >
<div class="messages height-100 width-100 d-flex flex-column" #scrollMe >
<div class="messages height-100 width-100 d-flex flex-column" #scrollMe>
<div
*ngFor="let message of RoomStore.messages1[room.$id]; let messageIndex = index" class="messages-list-item-wrapper"
@@ -87,6 +87,7 @@
<div *ngIf="attachment.fileType == MessageAttachmentFileType.Image">
<img
class="image-container"
*ngIf="message.oneShot != true && attachment.blobURl != true"
[src]="attachment.safeFile"
(load)="onImageLoad(message, messageIndex)"
@@ -94,6 +95,7 @@
>
<img
class="image-container"
*ngIf="message.oneShot != true && attachment.blobURl"
[src]="attachment.safeFile|safehtml"
(load)="onImageLoad(message, messageIndex)"
@@ -525,3 +525,9 @@ button::-moz-focus-inner {
color: #0782c9;
margin: 5px 0 0 0;
}
.image-container {
max-height: 325px;
max-width: 300px;
}
@@ -144,15 +144,20 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
@HostListener('document:click', ['$event'])
@HostListener('document:touchstart', ['$event'])
handleClickOutside(event: Event) {
if (!this.handleClickActive) return;
this.handleClickActive = false
const clickedInside = (event.target as HTMLElement).closest('.mat-menu-content');
if (!clickedInside) {
this.selectedMessage = null;
}
}
if (!this.handleClickActive) return;
const clickedInside = (event.target as HTMLElement).closest('.mat-menu-content');
setTimeout(()=> {
if (!clickedInside) {
this.selectedMessage = null;
}
}, 100);
}
messageStatus(message: MessageViewModal) {
if(this.allViewed(message)) {
@@ -1059,6 +1064,7 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
}
addReaction(message: any, emoji: string) {
console.log('reaction==')
// Logic to add reaction to the message
this.selectedMessage = null; // Close the picker after adding reaction
-1
View File
@@ -51,7 +51,6 @@ export class RoomStore {
scrollToBottomClicked = ()=> {}
constructor(
private messageLocalDataSourceService: MessageLocalDataSourceService,
private RoomLocalRepository: RoomLocalRepository,
private chatServiceService: ChatServiceService,
private MemberListLocalRepository: MemberListLocalRepository,
File diff suppressed because one or more lines are too long