mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-20 13:26:08 +00:00
fix chat ui details
This commit is contained in:
@@ -41,7 +41,8 @@ import { MessageMarkAsReadInput } from "src/app/module/chat/domain/use-case/mess
|
||||
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 { RoomSetLastMessageService } from 'src/app/module/chat/domain/use-case/room/room-set-last-message.service';
|
||||
import { IUserPhotoGetByIdInput, UserPhotoGetByIdUseCase } from 'src/app/module/chat/domain/use-case/user-photo/user-photo-get-by-id-use-case.service'
|
||||
export const InstanceId = uuidv4();
|
||||
|
||||
@Injectable({
|
||||
@@ -84,7 +85,8 @@ export class ChatServiceService {
|
||||
private BoldRemoveByRoomIdService: BoldRemoveByRoomIdService,
|
||||
private MemberListHttpSyncUseCase: MemberListHttpSyncUseCase, // dont remove
|
||||
private RoomBoldSyncUseCaseService: RoomBoldSyncUseCaseService, // dont remove
|
||||
private RoomSetLastMessageService: RoomSetLastMessageService // dont remove
|
||||
private RoomSetLastMessageService: RoomSetLastMessageService, // dont remove
|
||||
private UserPhotoGetByIdUseCase: UserPhotoGetByIdUseCase
|
||||
) {
|
||||
this.MessageSocketRepositoryService.listenToDeleteMessages()
|
||||
.pipe()
|
||||
@@ -155,6 +157,10 @@ export class ChatServiceService {
|
||||
return this.MessageDeleteLiveUseCaseService.execute(params)
|
||||
}
|
||||
|
||||
getUserPhoto(input: IUserPhotoGetByIdInput) {
|
||||
return this.UserPhotoGetByIdUseCase.execute(input)
|
||||
}
|
||||
|
||||
reactToMessage(input: MessageReactionInput) {
|
||||
return this.MessageReactionUseCaseService.execute(input);
|
||||
}
|
||||
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { IUserPhotoLocalRepository } from 'src/app/core/chat/repository/user-photo/user-photo-local-repository';
|
||||
import { IUserPhotoRemoteRepository } from 'src/app/core/chat/repository/user-photo/user-photo-remote-repository';
|
||||
import { UserPhotoTableSchema } from 'src/app/infra/database/dexie/instance/chat/schema/user-foto';
|
||||
import { z } from 'zod';
|
||||
|
||||
export const UserPhotoGetByIdInputSchema = UserPhotoTableSchema.pick({
|
||||
attachmentId: true,
|
||||
wxUserId: true,
|
||||
})
|
||||
|
||||
export type IUserPhotoGetByIdInput = z.infer<typeof UserPhotoGetByIdInputSchema>
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
})
|
||||
export class UserPhotoGetByIdUseCase {
|
||||
|
||||
constructor(
|
||||
private userPhotoLocalRepository: IUserPhotoLocalRepository,
|
||||
private userPhotoRemoteRepository: IUserPhotoRemoteRepository
|
||||
) { }
|
||||
|
||||
async execute(input: IUserPhotoGetByIdInput) {
|
||||
|
||||
const result = await this.userPhotoLocalRepository.findOne({wxUserId: input.wxUserId})
|
||||
if(result.isOk() && result.value) {
|
||||
return result.map(e => {
|
||||
return e.file
|
||||
})
|
||||
} else if(result.isOk() && !result.value) {
|
||||
const remoteResult = await this.userPhotoRemoteRepository.getUserPhotoByAttachmentId({attachmentId: input.attachmentId})
|
||||
|
||||
if(remoteResult.isOk()) {
|
||||
this.userPhotoLocalRepository.insert({
|
||||
wxUserId: input.wxUserId,
|
||||
file: remoteResult.value.data,
|
||||
attachmentId: input.attachmentId
|
||||
})
|
||||
}
|
||||
|
||||
return remoteResult.map(e => {
|
||||
return e.data
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user