2019-12-24 14:58:43 +09:00

79 lines
2.1 KiB
TypeScript

import {
ProtocolDecoder,
ProtocolMessage,
BodyStringDivider,
decodeProtocolMessage,
ProtocolResponse
} from '@ucap-webmessenger/protocol';
import { EmployeeType } from '@ucap-webmessenger/protocol-room';
import { RoleCode } from '@ucap-webmessenger/protocol-authentication';
import {
UserInfoSS,
DataUserResponse
} from '@ucap-webmessenger/protocol-query';
// export interface UserInfoSSForDaesang extends UserInfoSS {
// /****** For daesang ******/
// /** 사업장 */
// workplace: string;
// /** 담당업무 */
// responsibilities: string;
// /** 업무 상태 */
// workstatus: string;
// }
// export interface DataUserResponse extends ProtocolResponse {
// // DivCD(s)
// divCd: string;
// // {사용자정보-SS}
// userInfo?: UserInfoSS;
// }
export const decodeDataUser: ProtocolDecoder<DataUserResponse> = (
message: ProtocolMessage
) => {
let userInfo: UserInfoSS;
if (message.bodyList.length > 1) {
const info = message.bodyList[1].split(BodyStringDivider);
userInfo = {
seq: Number(info[0]),
name: info[1],
profileImageFile: info[2],
grade: info[3],
intro: info[4],
companyCode: info[5],
hpNumber: info[6],
lineNumber: info[7],
email: info[8],
isMobile: info[9] === 'Y' ? true : false,
deptName: info[10],
order: info[11],
isActive: info[12] === 'Y' ? true : false,
roleCd: info[13] as RoleCode,
employeeNum: info[14],
madn: info[15],
hardSadn: info[16],
fmcSadn: info[17],
callMode: info[18],
nameEn: info[19],
nameCn: info[20],
gradeEn: info[21],
gradeCn: info[22],
deptNameEn: info[23],
deptNameCn: info[24],
deptSeq: info[25],
isPrivacyAgree: info[26] === 'Y' ? true : false,
isValidLogin: info[27] === 'Y' ? true : false,
employeeType: info[28] as EmployeeType,
workplace: info[29],
responsibilities: info[30],
workstatus: info[31],
customerInfo: info[32]
};
}
return decodeProtocolMessage(message, {
divCd: message.bodyList[0],
userInfo
} as DataUserResponse);
};