파일 전달 로직 수정. >> FileTalkShare.aspx 를 통해서 공유 할 수 있도록 수정.
This commit is contained in:
parent
9245a136ef
commit
f53535847f
|
@ -5,7 +5,6 @@ import {
|
|||
APIEncoder,
|
||||
APIDecoder,
|
||||
ParameterUtil,
|
||||
JsonAnalization,
|
||||
StatusCode
|
||||
} from '@ucap-webmessenger/api';
|
||||
|
||||
|
@ -51,20 +50,19 @@ export const decodeFileTalkShare: APIDecoder<FileTalkShareResponse> = (
|
|||
res: any
|
||||
) => {
|
||||
try {
|
||||
const json = JsonAnalization.receiveAnalization(res);
|
||||
return {
|
||||
statusCode: json.StatusCode,
|
||||
roomSeq: json.RoomID,
|
||||
fileName: json.FileName,
|
||||
fileExt: json.FileExt,
|
||||
fileType: json.FileType,
|
||||
thumbnailUrl: json.ThumbURL,
|
||||
attachmentSeq: json.AttSEQ,
|
||||
attachmentSize: json.AttSize,
|
||||
attachmentRegDate: json.AttRegDate,
|
||||
companyCode: json.CompanyCode,
|
||||
synapKey: json.SynapKey,
|
||||
returnJson: res
|
||||
statusCode: res.StatusCode,
|
||||
roomSeq: res.RoomID,
|
||||
fileName: res.FileName,
|
||||
fileExt: res.FileExt,
|
||||
fileType: res.FileType,
|
||||
thumbnailUrl: res.ThumbURL,
|
||||
attachmentSeq: res.AttSEQ,
|
||||
attachmentSize: res.AttSize,
|
||||
attachmentRegDate: res.AttRegDate,
|
||||
companyCode: res.CompanyCode,
|
||||
synapKey: res.SynapKey,
|
||||
returnJson: JSON.stringify(res)
|
||||
} as FileTalkShareResponse;
|
||||
} catch (e) {
|
||||
return {
|
||||
|
|
|
@ -46,7 +46,8 @@ import {
|
|||
import {
|
||||
RoomInfo,
|
||||
UserInfoShort,
|
||||
UserInfo as RoomUserInfo
|
||||
UserInfo as RoomUserInfo,
|
||||
RoomType
|
||||
} from '@ucap-webmessenger/protocol-room';
|
||||
import {
|
||||
ConfirmDialogComponent,
|
||||
|
@ -547,6 +548,10 @@ export class CreateChatDialogComponent implements OnInit, OnDestroy {
|
|||
}
|
||||
}
|
||||
onToggleRoom(roomInfo: RoomInfo) {
|
||||
if (!this.getCheckableRoom(roomInfo)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!!this.selectedRoom) {
|
||||
if (this.selectedRoom.roomSeq === roomInfo.roomSeq) {
|
||||
this.selectedRoom = null;
|
||||
|
@ -591,6 +596,16 @@ export class CreateChatDialogComponent implements OnInit, OnDestroy {
|
|||
// .length > 0
|
||||
// );
|
||||
// }
|
||||
if (
|
||||
roomInfo.roomType === RoomType.Bot ||
|
||||
roomInfo.roomType === RoomType.Allim ||
|
||||
roomInfo.roomType === RoomType.Link ||
|
||||
roomInfo.roomType === RoomType.Allim_Elephant ||
|
||||
roomInfo.roomType === RoomType.Allim_TMS
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
getCheckedRoom(roomInfo: RoomInfo) {
|
||||
|
@ -611,6 +626,12 @@ export class CreateChatDialogComponent implements OnInit, OnDestroy {
|
|||
getBtnValid() {
|
||||
if (this.data.type === UserSelectDialogType.NewGroup) {
|
||||
return this.inputForm.invalid;
|
||||
} else if (this.data.type === UserSelectDialogType.MessageForward) {
|
||||
if (this.selectedUserList.length === 0 && !this.selectedRoom) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import {
|
||||
CommonApiService,
|
||||
MassTalkSaveRequest
|
||||
MassTalkSaveRequest,
|
||||
FileTalkShareRequest
|
||||
} from '@ucap-webmessenger/api-common';
|
||||
import { KEY_ENVIRONMENTS_INFO } from './../../../types/environment.type';
|
||||
import { Injectable } from '@angular/core';
|
||||
|
@ -19,7 +20,8 @@ import {
|
|||
catchError,
|
||||
exhaustMap,
|
||||
withLatestFrom,
|
||||
concatMap
|
||||
concatMap,
|
||||
take
|
||||
} from 'rxjs/operators';
|
||||
import moment from 'moment';
|
||||
import {
|
||||
|
@ -43,7 +45,8 @@ import {
|
|||
FileEventJson,
|
||||
MassTextEventJson,
|
||||
TranslationEventJson,
|
||||
MassTranslationEventJson
|
||||
MassTranslationEventJson,
|
||||
decodeFileEventJson
|
||||
} from '@ucap-webmessenger/protocol-event';
|
||||
|
||||
import * as ChatStore from '@app/store/messenger/chat';
|
||||
|
@ -83,7 +86,8 @@ import {
|
|||
roomOpenAfterForward,
|
||||
infoForSearch,
|
||||
infoForSearchEnd,
|
||||
infoAll
|
||||
infoAll,
|
||||
forwardFailure
|
||||
} from './actions';
|
||||
import { SessionStorageService } from '@ucap-webmessenger/web-storage';
|
||||
import {
|
||||
|
@ -663,8 +667,52 @@ export class Effects {
|
|||
ofType(forward),
|
||||
tap(action => {
|
||||
if (!!action.trgtRoomSeq) {
|
||||
// 대화전달 후 방오픈.
|
||||
this.store.dispatch(roomOpenAfterForward(action));
|
||||
// 대화전달 후 방오픈. Exist roomSeq.
|
||||
if (action.req.eventType === EventType.File) {
|
||||
const loginResInfo: LoginResponse = this.sessionStorageService.get<
|
||||
LoginResponse
|
||||
>(KEY_LOGIN_RES_INFO);
|
||||
|
||||
const environmentsInfo = this.sessionStorageService.get<
|
||||
EnvironmentsInfo
|
||||
>(KEY_ENVIRONMENTS_INFO);
|
||||
|
||||
const fileEventJson: FileEventJson = decodeFileEventJson(
|
||||
action.req.sentMessage
|
||||
);
|
||||
const req: FileTalkShareRequest = {
|
||||
userSeq: loginResInfo.userSeq,
|
||||
deviceType: environmentsInfo.deviceType,
|
||||
token: loginResInfo.tokenString,
|
||||
attachmentsSeq: fileEventJson.attachmentSeq.toString(),
|
||||
roomSeq: action.trgtRoomSeq,
|
||||
synapKey: ''
|
||||
};
|
||||
this.commonApiService
|
||||
.fileTalkShare(req)
|
||||
.pipe(
|
||||
take(1),
|
||||
map(res => {
|
||||
if (res.statusCode === StatusCode.Success) {
|
||||
action = {
|
||||
...action,
|
||||
req: {
|
||||
...action.req,
|
||||
sentMessage: res.returnJson
|
||||
}
|
||||
};
|
||||
|
||||
this.store.dispatch(roomOpenAfterForward(action));
|
||||
} else {
|
||||
this.store.dispatch(forwardFailure({ error: res }));
|
||||
}
|
||||
}),
|
||||
catchError(error => of(forwardFailure({ error })))
|
||||
)
|
||||
.subscribe();
|
||||
} else {
|
||||
this.store.dispatch(roomOpenAfterForward(action));
|
||||
}
|
||||
} else if (!!action.trgtUserSeqs && action.trgtUserSeqs.length > 0) {
|
||||
// 방오픈 후 대화전달.
|
||||
this.store.dispatch(forwardAfterRoomOpen(action));
|
||||
|
@ -689,16 +737,70 @@ export class Effects {
|
|||
return openSuccess({ res });
|
||||
}),
|
||||
map(res => {
|
||||
this.store.dispatch(
|
||||
send({
|
||||
senderSeq: action.senderSeq,
|
||||
req: {
|
||||
roomSeq: res.res.roomSeq,
|
||||
eventType: action.req.eventType,
|
||||
sentMessage: action.req.sentMessage
|
||||
}
|
||||
})
|
||||
);
|
||||
if (action.req.eventType === EventType.File) {
|
||||
const loginResInfo: LoginResponse = this.sessionStorageService.get<
|
||||
LoginResponse
|
||||
>(KEY_LOGIN_RES_INFO);
|
||||
|
||||
const environmentsInfo = this.sessionStorageService.get<
|
||||
EnvironmentsInfo
|
||||
>(KEY_ENVIRONMENTS_INFO);
|
||||
|
||||
const fileEventJson: FileEventJson = decodeFileEventJson(
|
||||
action.req.sentMessage
|
||||
);
|
||||
const req: FileTalkShareRequest = {
|
||||
userSeq: loginResInfo.userSeq,
|
||||
deviceType: environmentsInfo.deviceType,
|
||||
token: loginResInfo.tokenString,
|
||||
attachmentsSeq: fileEventJson.attachmentSeq.toString(),
|
||||
roomSeq: action.trgtRoomSeq,
|
||||
synapKey: ''
|
||||
};
|
||||
this.commonApiService
|
||||
.fileTalkShare(req)
|
||||
.pipe(
|
||||
take(1),
|
||||
map(resFileShare => {
|
||||
if (resFileShare.statusCode === StatusCode.Success) {
|
||||
action = {
|
||||
...action,
|
||||
req: {
|
||||
...action.req,
|
||||
sentMessage: resFileShare.returnJson
|
||||
}
|
||||
};
|
||||
|
||||
this.store.dispatch(
|
||||
send({
|
||||
senderSeq: action.senderSeq,
|
||||
req: {
|
||||
roomSeq: res.res.roomSeq,
|
||||
eventType: action.req.eventType,
|
||||
sentMessage: action.req.sentMessage
|
||||
}
|
||||
})
|
||||
);
|
||||
} else {
|
||||
this.store.dispatch(forwardFailure({ error: res }));
|
||||
}
|
||||
}),
|
||||
catchError(error => of(forwardFailure({ error })))
|
||||
)
|
||||
.subscribe();
|
||||
} else {
|
||||
this.store.dispatch(
|
||||
send({
|
||||
senderSeq: action.senderSeq,
|
||||
req: {
|
||||
roomSeq: res.res.roomSeq,
|
||||
eventType: action.req.eventType,
|
||||
sentMessage: action.req.sentMessage
|
||||
}
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
return res;
|
||||
}),
|
||||
catchError(error => of(openFailure({ error })))
|
||||
|
|
Loading…
Reference in New Issue
Block a user