79 lines
1.9 KiB
TypeScript
79 lines
1.9 KiB
TypeScript
import { DeviceType } from '@ucap-webmessenger/core';
|
|
import {
|
|
APIRequest,
|
|
APIResponse,
|
|
APIEncoder,
|
|
APIDecoder,
|
|
ParameterUtil,
|
|
StatusCode,
|
|
JsonAnalization,
|
|
APIFormDataEncoder
|
|
} from '@ucap-webmessenger/api';
|
|
import { FileUploadItem } from '../../../../ucap-webmessenger-api/src/lib/models/file-upload-item';
|
|
|
|
export interface FileTalkSaveMultiRequest extends APIRequest {
|
|
userSeq: number;
|
|
deviceType: DeviceType;
|
|
token: string;
|
|
files: File[];
|
|
fileUploadItems: FileUploadItem;
|
|
roomSeq?: string;
|
|
}
|
|
|
|
export interface FileTalkSaveMultiResponse extends APIResponse {
|
|
roomSeq?: string;
|
|
attachmentSeq?: string;
|
|
fileCount?: string;
|
|
baseUrl?: string;
|
|
fileType?: string;
|
|
thumbnailUrls?: string[];
|
|
returnJson?: string;
|
|
}
|
|
|
|
const fileTalkSaveEncodeMapTemp = {
|
|
userSeq: 'p_user_seq',
|
|
deviceType: 'p_device_type',
|
|
token: 'p_token',
|
|
roomSeq: 'p_room_id',
|
|
files: 'file',
|
|
type: 'p_type'
|
|
};
|
|
|
|
export const encodeFileTalkSaveMulti: APIFormDataEncoder<FileTalkSaveMultiRequest> = (
|
|
req: FileTalkSaveMultiRequest
|
|
) => {
|
|
const extraParams: any = {};
|
|
extraParams.userSeq = String(req.userSeq);
|
|
|
|
return ParameterUtil.encodeFormData(
|
|
fileTalkSaveEncodeMapTemp,
|
|
req,
|
|
extraParams
|
|
);
|
|
};
|
|
|
|
export const decodeFileTalkSaveMulti: APIDecoder<FileTalkSaveMultiResponse> = (
|
|
res: any
|
|
) => {
|
|
try {
|
|
const json = JsonAnalization.receiveAnalization(res);
|
|
const fileTypeDefault =
|
|
!json.fileType || json.fileType === '' ? 'b' : json.fileType;
|
|
return {
|
|
statusCode: json.StatusCode,
|
|
roomSeq: json.RoomID,
|
|
attachmentSeq: json.AttSEQ,
|
|
fileCount: json.FileCount,
|
|
fileType: fileTypeDefault,
|
|
baseUrl: json.BaseURL,
|
|
thumbnailUrls: json.ThumbURL,
|
|
returnJson: res
|
|
} as FileTalkSaveMultiResponse;
|
|
} catch (e) {
|
|
return {
|
|
statusCode: StatusCode.Fail,
|
|
errorMessage: e
|
|
} as FileTalkSaveMultiResponse;
|
|
}
|
|
};
|