added protocol > QUERY

This commit is contained in:
leejh 2019-09-26 17:13:01 +09:00
parent f88d16de8b
commit 5141de66c1
12 changed files with 850 additions and 30 deletions

View File

@ -0,0 +1,54 @@
import {
ProtocolRequest,
ProtocolResponse,
ProtocolEncoder,
PacketBody,
ProtocolDecoder,
ProtocolMessage,
PacketBodyValue
} from '@ucap-webmessenger/protocol';
import { CallMode } from '@ucap-webmessenger/core';
export interface DataUserExtRequest extends ProtocolRequest {
// DivCD(s)
divCd: string;
// 사용자SEQ(n)
seq: number;
}
export interface DataUserExtResponse extends ProtocolResponse {
// DivCD(s)
divCd: string;
// 사용자SEQ(n)
seq: number;
// CallMode(s)
callMode: CallMode;
// HARDPHONE_SADN
hardSadn: string;
// FMC_SADN
fmcSadn: string;
}
export const encodeDataUserExt: ProtocolEncoder<DataUserExtRequest> = (
req: DataUserExtRequest
) => {
const bodyList: PacketBody[] = [];
bodyList.push(
{ type: PacketBodyValue.String, value: req.divCd },
{ type: PacketBodyValue.Integer, value: req.seq }
);
return bodyList;
};
export const decodeDataUserExt: ProtocolDecoder<DataUserExtResponse> = (
message: ProtocolMessage
) => {
return {
divCd: message.bodyList[0],
seq: message.bodyList[1],
callMode: message.bodyList[2] as CallMode,
hardSadn: message.bodyList[3],
fmcSadn: message.bodyList[4]
} as DataUserExtResponse;
};

View File

@ -0,0 +1,90 @@
import {
ProtocolRequest,
ProtocolResponse,
ProtocolEncoder,
PacketBody,
ProtocolDecoder,
ProtocolMessage,
PacketBodyValue,
BodyStringDivider
} from '@ucap-webmessenger/protocol';
import { EmployeeType } from '@ucap-webmessenger/protocol-room';
import { RoleCode } from '@ucap-webmessenger/protocol-authentication';
import { UserInfoSS } from './dept-user';
export interface DataUserRequest extends ProtocolRequest {
// DivCD(s)
divCd: string;
// 사용자SEQ(n)
seq: number;
// 발신자회사코드(s)
senderCompanyCode: string;
// 발신자임직원유형(s)
senderEmployeeType: EmployeeType;
}
export interface DataUserResponse extends ProtocolResponse {
// DivCD(s)
divCd: string;
// {사용자정보-SS}
userInfo?: UserInfoSS;
}
export const encodeDataUser: ProtocolEncoder<DataUserRequest> = (
req: DataUserRequest
) => {
const bodyList: PacketBody[] = [];
bodyList.push(
{ type: PacketBodyValue.String, value: req.divCd },
{ type: PacketBodyValue.Integer, value: req.seq },
{ type: PacketBodyValue.String, value: req.senderCompanyCode },
{ type: PacketBodyValue.String, value: req.senderEmployeeType }
);
return bodyList;
};
export const decodeDataUser: ProtocolDecoder<DataUserResponse> = (
message: ProtocolMessage
) => {
let userInfo: UserInfoSS;
if (message.bodyList.length > 1) {
const info = message.bodyList[1].split(BodyStringDivider);
let i = 0;
userInfo = {
seq: info[i],
name: info[i++],
profileImageFile: info[i++],
grade: info[i++],
intro: info[i++],
companyCode: info[i++],
hpNumber: info[i++],
lineNumber: info[i++],
email: info[i++],
isMobile: info[i++] === 'Y' ? true : false,
deptName: info[i++],
order: info[i++],
isActive: info[i++] === 'Y' ? true : false,
roleCd: info[i++] as RoleCode,
employeeNum: info[i++],
madn: info[i++],
hardSadn: info[i++],
fmcSadn: info[i++],
callMode: info[i++],
nameEn: info[i++],
nameCn: info[i++],
gradeEn: info[i++],
gradeCn: info[i++],
deptNameEn: info[i++],
deptNameCn: info[i++],
deptSeq: info[i++],
isPrivacyAgree: info[i++] === 'Y' ? true : false,
isValidLogin: info[i++] === 'Y' ? true : false,
employeeType: info[i++] as EmployeeType
};
}
return {
divCd: message.bodyList[0],
userInfo
} as DataUserResponse;
};

View File

@ -9,16 +9,10 @@ import {
BodyStringDivider, BodyStringDivider,
ProtocolStream ProtocolStream
} from '@ucap-webmessenger/protocol'; } from '@ucap-webmessenger/protocol';
import {
DeviceType,
FileTransferPermissions,
OrganizationChartPermissions,
DefaultScreen,
VideoConferenceType
} from '@ucap-webmessenger/core';
import { DeptType, DeptSearchType } from '../types/dept.type';
import { EmployeeType } from '@ucap-webmessenger/protocol-room'; import { EmployeeType } from '@ucap-webmessenger/protocol-room';
import { RoleCode } from '@ucap-webmessenger/protocol-authentication'; import { RoleCode } from '@ucap-webmessenger/protocol-authentication';
import { DeptSearchType } from '../types/dept-search.type';
import { CallMode } from '@ucap-webmessenger/core';
export interface DeptUserRequest extends ProtocolRequest { export interface DeptUserRequest extends ProtocolRequest {
// DivCD(s) // DivCD(s)
@ -79,7 +73,7 @@ export interface UserInfoSS {
// FMC_SADN // FMC_SADN
fmcSadn: string; fmcSadn: string;
// CALL_MODE // CALL_MODE
callMode: string; callMode: CallMode;
// 사용자명(영어) // 사용자명(영어)
nameEn: string; nameEn: string;
// 사용자명(중국어) // 사용자명(중국어)
@ -168,7 +162,7 @@ export const decodeDeptUserData: ProtocolDecoder<DeptUserData> = (
madn: info[i++], madn: info[i++],
hardSadn: info[i++], hardSadn: info[i++],
fmcSadn: info[i++], fmcSadn: info[i++],
callMode: info[i++], callMode: info[i++] as CallMode,
nameEn: info[i++], nameEn: info[i++],
nameCn: info[i++], nameCn: info[i++],
gradeEn: info[i++], gradeEn: info[i++],

View File

@ -0,0 +1,179 @@
import {
ProtocolRequest,
ProtocolResponse,
ProtocolEncoder,
PacketBody,
ProtocolDecoder,
ProtocolMessage,
PacketBodyValue,
BodyStringDivider,
ProtocolStream
} from '@ucap-webmessenger/protocol';
import { EmployeeType } from '@ucap-webmessenger/protocol-room';
import { RoleCode } from '@ucap-webmessenger/protocol-authentication';
import { UserDnSearchType } from '../types/user-dn-search.type';
export interface UserDnRequest extends ProtocolRequest {
// DivCD(s)
divCd: string;
// 기관코드(s)
companyCode: string;
// 부서SEQ(n)
seq?: number;
// 검색string(s)
search?: string;
// 검색구분(s)
searchType: UserDnSearchType;
// 요청리스트(n) 사용안하면 0 최대 200
pageListCount?: number;
// 요청페이지(n) 사용안하면 0 처음은 1
pageCurrent?: number;
// 발신자회사코드(s)
senderCompanyCode: string;
// 발신자임직원유형(s)
senderEmployeeType: EmployeeType;
}
export interface UserInfoDN {
// 사용자SEQ
seq: number;
// 사용자명
name: string;
// 사진파일
profileImageFile: string;
// 직급
grade: string;
// 업무소개
intro: string;
// 기관코드
companyCode: string;
// 핸드폰번호
hpNumber: string;
// 내선번호
lineNumber: string;
// 이메일
email: string;
// 모바일YN
isMobile: boolean;
// 조회순서
order: string;
// ActiveYN
isActive: boolean;
// 역할코드
roleCd: RoleCode;
// 사번
employeeNum: string;
// 부서명
deptName: string;
// MADN
madn: string;
// HARDPHONE_SADN
hardSadn: string;
// FMC_SADN
fmcSadn: string;
// 사용자명(영어)
nameEn: string;
// 사용자명(중국어)
nameCn: string;
// 직급(영어)
gradeEn: string;
// 직급(중국어)
gradeCn: string;
// 부서명(영어)
deptNameEn: string;
// 부서명(중국어)
deptNameCn: string;
}
export interface UserDnData extends ProtocolStream {
// DivCD(s)
divCd: string;
// {부서정보-S}...
userDnInfos: UserInfoDN[];
}
export interface UserDnResponse extends ProtocolResponse {
// DivCD(s)
divCd: string;
// 전체갯수(n)
pageTotalCount: number;
// 요청리스트(n)
pageListCount?: number;
// 페이지(n)
pageCurrent?: number;
}
export const encodeUserDn: ProtocolEncoder<UserDnRequest> = (
req: UserDnRequest
) => {
const bodyList: PacketBody[] = [];
bodyList.push(
{ type: PacketBodyValue.String, value: req.divCd },
{ type: PacketBodyValue.String, value: req.companyCode },
{ type: PacketBodyValue.Integer, value: req.seq || 0 },
{ type: PacketBodyValue.String, value: req.search || '' },
{ type: PacketBodyValue.String, value: req.searchType },
{
type: PacketBodyValue.Integer,
value: req.pageListCount || 0
},
{ type: PacketBodyValue.Integer, value: req.pageCurrent || 0 },
{ type: PacketBodyValue.String, value: req.senderCompanyCode },
{
type: PacketBodyValue.String,
value: req.senderEmployeeType
}
);
return bodyList;
};
export const decodeUserDnData: ProtocolDecoder<UserDnData> = (
message: ProtocolMessage
) => {
const userDnInfos: UserInfoDN[] = [];
message.bodyList.slice(1).forEach(userDnInfo => {
const info = userDnInfo.split(BodyStringDivider);
let i = 0;
userDnInfos.push({
seq: info[i],
name: info[i++],
profileImageFile: info[i++],
grade: info[i++],
intro: info[i++],
companyCode: info[i++],
hpNumber: info[i++],
lineNumber: info[i++],
email: info[i++],
isMobile: info[i++] === 'Y' ? true : false,
order: info[i++],
isActive: info[i++] === 'Y' ? true : false,
roleCd: info[i++] as RoleCode,
employeeNum: info[i++],
deptName: info[i++],
madn: info[i++],
hardSadn: info[i++],
fmcSadn: info[i++],
nameEn: info[i++],
nameCn: info[i++],
gradeEn: info[i++],
gradeCn: info[i++],
deptNameEn: info[i++],
deptNameCn: info[i++]
});
});
return {
divCd: message.bodyList[0],
userDnInfos
} as UserDnData;
};
export const decodeUserDn: ProtocolDecoder<UserDnResponse> = (
message: ProtocolMessage
) => {
return {
divCd: message.bodyList[0],
pageTotalCount: message.bodyList[1],
pageListCount: message.bodyList[2],
pageCurrent: message.bodyList[3]
} as UserDnResponse;
};

View File

@ -0,0 +1,83 @@
import {
ProtocolRequest,
ProtocolResponse,
ProtocolEncoder,
PacketBody,
ProtocolDecoder,
ProtocolMessage,
PacketBodyValue,
BodyStringDivider,
ProtocolStream
} from '@ucap-webmessenger/protocol';
import { EmployeeType } from '@ucap-webmessenger/protocol-room';
export interface UserIdRequest extends ProtocolRequest {
// DivCD(s)
divCd: string;
// 사용자SEQs(s)
loginSeqs: number[];
// 발신자회사코드(s)
senderCompanyCode: string;
// 발신자임직원유형(s)
senderEmployeeType: EmployeeType;
}
export interface UserSeqInfo {
// 로그인ID
id: string;
// 사용자SEQ
seq: number;
// 모바일YN
isMobile: boolean;
// 회사코드
companyCode: string;
}
export interface UserIdData extends ProtocolStream {
// DivCD(s)
divCd: string;
// {SEQ정보}1...
userSeqInfos: UserSeqInfo[];
}
export interface UserIdResponse extends ProtocolResponse {
// DivCD(s)
divCd: string;
}
export const encodeUserId: ProtocolEncoder<UserIdRequest> = (
req: UserIdRequest
) => {
const bodyList: PacketBody[] = [];
bodyList.push(
{ type: PacketBodyValue.String, value: req.divCd },
{ type: PacketBodyValue.Integer, value: req.loginSeqs.join(',') },
{ type: PacketBodyValue.String, value: req.senderCompanyCode },
{ type: PacketBodyValue.String, value: req.senderEmployeeType }
);
return bodyList;
};
export const decodeUserIdData: ProtocolDecoder<UserIdData> = (
message: ProtocolMessage
) => {
const userSeqInfos: UserSeqInfo[] = [];
message.bodyList.slice(1).forEach(userInfo => {
const info = userInfo.split(BodyStringDivider);
userSeqInfos.push({
id: info[0],
seq: info[1],
isMobile: info[2] === 'Y' ? true : false,
companyCode: info[3]
});
});
return {
divCd: message.bodyList[0],
userSeqInfos
} as UserIdData;
};
export const decodeUserId: ProtocolDecoder<UserIdResponse> = (
message: ProtocolMessage
) => {
return { divCd: message.bodyList[0] } as UserIdResponse;
};

View File

@ -0,0 +1,218 @@
import {
ProtocolRequest,
ProtocolEncoder,
PacketBody,
ProtocolDecoder,
ProtocolMessage,
PacketBodyValue,
BodyStringDivider,
ProtocolStream
} from '@ucap-webmessenger/protocol';
import { EmployeeType } from '@ucap-webmessenger/protocol-room';
import { RoleCode } from '@ucap-webmessenger/protocol-authentication';
import { UserInfoSS } from './dept-user';
export interface UserSeqRequest extends ProtocolRequest {
// DivCD(s)
divCd: string;
// 로그인IDs(s)
loginIds: string[];
// 기관코드(s)
companyCode: string;
// 상세정보여부(s)
isDetail: boolean;
// 발신자회사코드(s)
senderCompanyCode: string;
// 발신자임직원유형(s)
senderEmployeeType: EmployeeType;
}
export interface UserInfoF {
// 사용자SEQ
seq: number;
// 사용자명
name: string;
// 사진파일
profileImageFile: string;
// 직급
grade: string;
// 업무소개
intro: string;
// 기관코드
companyCode: string;
// 핸드폰번호
hpNumber: string;
// 내선번호
lineNumber: string;
// 이메일
email: string;
// 모바일YN
isMobile: boolean;
// 부서명
deptName: string;
// 즐.찾 여부
isFavorit: boolean;
// 친구여부
isBuddy: boolean;
// ActiveYN
isActive: boolean;
// 역할코드
roleCd: RoleCode;
// 사번
employeeNum: string;
// MADN
madn: string;
// HARDPHONE_SADN
hardSadn: string;
// FMC_SADN
fmcSadn: string;
// 사용자명(영어)
nameEn: string;
// 사용자명(중국어)
nameCn: string;
// 직급(영어)
gradeEn: string;
// 직급(중국어)
gradeCn: string;
// 부서명(영어)
deptNameEn: string;
// 부서명(중국어)
deptNameCn: string;
// 이용약관동의여부YN
isPrivacyAgree: boolean;
// 유효접속여부YN
isValidLogin: boolean;
// 임직원유형(s)
employeeType: EmployeeType;
// 별명
nickName: string;
}
export interface UserSeqData extends ProtocolStream {
// DivCD(s)
divCd: string;
// {사용자정보-F}...
userInfos: UserInfoF[];
}
export interface UserSeqData2 extends ProtocolStream {
// DivCD(s)
divCd: string;
// {사용자정보-SS}...
userInfos: UserInfoSS[];
}
export const encodeUserSeq: ProtocolEncoder<UserSeqRequest> = (
req: UserSeqRequest
) => {
const bodyList: PacketBody[] = [];
bodyList.push(
{ type: PacketBodyValue.String, value: req.divCd },
{ type: PacketBodyValue.String, value: req.loginIds.join(',') },
{ type: PacketBodyValue.String, value: req.companyCode },
{ type: PacketBodyValue.String, value: req.isDetail ? 'Y' : 'N' },
{ type: PacketBodyValue.String, value: req.senderCompanyCode },
{ type: PacketBodyValue.String, value: req.senderEmployeeType }
);
return bodyList;
};
export const decodeUserSeqData: ProtocolDecoder<UserSeqData> = (
message: ProtocolMessage
) => {
const userInfos: UserInfoF[] = [];
message.bodyList.slice(1).forEach(userInfo => {
const info = userInfo.split(BodyStringDivider);
let i = 0;
userInfos.push({
seq: info[i],
name: info[i++],
profileImageFile: info[i++],
grade: info[i++],
intro: info[i++],
companyCode: info[i++],
hpNumber: info[i++],
lineNumber: info[i++],
email: info[i++],
isMobile: info[i++] === 'Y' ? true : false,
deptName: info[i++],
isFavorit: info[i++] === 'Y' ? true : false,
isBuddy: info[i++] === 'Y' ? true : false,
isActive: info[i++] === 'Y' ? true : false,
roleCd: info[i++] as RoleCode,
employeeNum: info[i++],
madn: info[i++],
hardSadn: info[i++],
fmcSadn: info[i++],
nameEn: info[i++],
nameCn: info[i++],
gradeEn: info[i++],
gradeCn: info[i++],
deptNameEn: info[i++],
deptNameCn: info[i++],
isPrivacyAgree: info[i++] === 'Y' ? true : false,
isValidLogin: info[i++] === 'Y' ? true : false,
employeeType: info[i++] as EmployeeType,
nickName: info[i++]
} as UserInfoF);
});
return {
divCd: message.bodyList[0],
userInfos
} as UserSeqData;
};
export const decodeUserSeqData2: ProtocolDecoder<UserSeqData2> = (
message: ProtocolMessage
) => {
const userInfos: UserInfoSS[] = [];
message.bodyList.slice(1).forEach(userInfo => {
const info = userInfo.split(BodyStringDivider);
let i = 0;
userInfos.push({
seq: info[i],
name: info[i++],
profileImageFile: info[i++],
grade: info[i++],
intro: info[i++],
companyCode: info[i++],
hpNumber: info[i++],
lineNumber: info[i++],
email: info[i++],
isMobile: info[i++] === 'Y' ? true : false,
deptName: info[i++],
order: info[i++],
isActive: info[i++] === 'Y' ? true : false,
roleCd: info[i++] as RoleCode,
employeeNum: info[i++],
madn: info[i++],
hardSadn: info[i++],
fmcSadn: info[i++],
callMode: info[i++],
nameEn: info[i++],
nameCn: info[i++],
gradeEn: info[i++],
gradeCn: info[i++],
deptNameEn: info[i++],
deptNameCn: info[i++],
deptSeq: info[i++],
isPrivacyAgree: info[i++] === 'Y' ? true : false,
isValidLogin: info[i++] === 'Y' ? true : false,
employeeType: info[i++] as EmployeeType
});
});
return {
divCd: message.bodyList[0],
userInfos
} as UserSeqData2;
};
// export const decodeDeptUser: ProtocolDecoder<DeptUserResponse> = (
// message: ProtocolMessage
// ) => {
// return {
// divCd: message.bodyList[0],
// pageTotalCount: message.bodyList[1],
// pageListCount: message.bodyList[2],
// pageCurrent: message.bodyList[3]
// } as DeptUserResponse;
// };

View File

@ -16,7 +16,22 @@ import {
SSVC_TYPE_QUERY_DEPT_DATA, SSVC_TYPE_QUERY_DEPT_DATA,
SSVC_TYPE_QUERY_DEPT_USER_RES, SSVC_TYPE_QUERY_DEPT_USER_RES,
SSVC_TYPE_QUERY_DEPT_USER_DATA, SSVC_TYPE_QUERY_DEPT_USER_DATA,
SSVC_TYPE_QUERY_DEPT_USER_REQ SSVC_TYPE_QUERY_DEPT_USER_REQ,
SSVC_TYPE_QUERY_USER_SEQ_REQ,
SSVC_TYPE_QUERY_USER_SEQ_RES,
SSVC_TYPE_QUERY_USER_SEQ_DATA,
SSVC_TYPE_QUERY_USER_SEQ_DATA2,
SSVC_TYPE_QUERY_USER_ID_REQ,
SSVC_TYPE_QUERY_USER_ID_RES,
SSVC_TYPE_QUERY_USER_ID_DATA,
SSVC_TYPE_QUERY_USER_BY_DN_REQ,
SSVC_TYPE_QUERY_USER_BY_DN_RES,
SSVC_TYPE_QUERY_USER_BY_DN_DATA,
SSVC_TYPE_QUERY_DATA_USER_REQ,
SSVC_TYPE_QUERY_EXT_DATA_USER_REQ,
SSVC_TYPE_QUERY_DEPT_USER2_REQ,
SSVC_TYPE_QUERY_DEPT_USER2_DATA,
SSVC_TYPE_QUERY_DEPT_USER2_RES
} from '../types/service'; } from '../types/service';
import { import {
DeptRequest, DeptRequest,
@ -34,6 +49,42 @@ import {
DeptUserData, DeptUserData,
DeptUserResponse DeptUserResponse
} from '../models/dept-user'; } from '../models/dept-user';
import {
UserSeqData,
UserSeqData2,
encodeUserSeq,
decodeUserSeqData,
decodeUserSeqData2,
UserSeqRequest
} from '../models/user-seq';
import {
UserIdRequest,
UserIdResponse,
UserIdData,
encodeUserId,
decodeUserId,
decodeUserIdData
} from '../models/user-id';
import {
UserDnRequest,
UserDnResponse,
UserDnData,
encodeUserDn,
decodeUserDnData,
decodeUserDn
} from '../models/user-dn';
import {
DataUserRequest,
DataUserResponse,
encodeDataUser,
decodeDataUser
} from '../models/data-user';
import {
DataUserExtRequest,
DataUserExtResponse,
encodeDataUserExt,
decodeDataUserExt
} from '../models/data-user-ext';
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
@ -93,4 +144,140 @@ export class QueryProtocolService {
}) })
); );
} }
public deptUser2(
req: DeptUserRequest
): Observable<DeptUserResponse | DeptUserData> {
return this.protocolService
.call(
SVC_TYPE_QUERY_DATA,
SSVC_TYPE_QUERY_DEPT_USER2_REQ,
...encodeDeptUser(req)
)
.pipe(
takeWhile(
res => SSVC_TYPE_QUERY_DEPT_USER2_RES !== res.subServiceType,
true
),
map(res => {
if (SSVC_TYPE_QUERY_DEPT_USER2_DATA === res.subServiceType) {
return {
...decodeDeptUserData(res),
Type: SSVC_TYPE_QUERY_DEPT_USER2_DATA
};
}
return {
...decodeDeptUser(res),
Type: SSVC_TYPE_QUERY_DEPT_USER2_RES
};
})
);
}
public userSeq(req: UserSeqRequest): Observable<UserSeqData | UserSeqData2> {
return this.protocolService
.call(
SVC_TYPE_QUERY_DATA,
SSVC_TYPE_QUERY_USER_SEQ_REQ,
...encodeUserSeq(req)
)
.pipe(
takeWhile(
res => SSVC_TYPE_QUERY_USER_SEQ_RES !== res.subServiceType,
true
),
map(res => {
if (SSVC_TYPE_QUERY_USER_SEQ_DATA === res.subServiceType) {
return {
...decodeUserSeqData(res),
Type: SSVC_TYPE_QUERY_USER_SEQ_DATA
};
} else if (SSVC_TYPE_QUERY_USER_SEQ_DATA2 === res.subServiceType) {
return {
...decodeUserSeqData2(res),
Type: SSVC_TYPE_QUERY_USER_SEQ_DATA2
};
}
})
);
}
public userId(req: UserIdRequest): Observable<UserIdResponse | UserIdData> {
return this.protocolService
.call(
SVC_TYPE_QUERY_DATA,
SSVC_TYPE_QUERY_USER_ID_REQ,
...encodeUserId(req)
)
.pipe(
takeWhile(
res => SSVC_TYPE_QUERY_USER_ID_RES !== res.subServiceType,
true
),
map(res => {
if (SSVC_TYPE_QUERY_USER_ID_DATA === res.subServiceType) {
return {
...decodeUserIdData(res),
Type: SSVC_TYPE_QUERY_USER_SEQ_DATA
};
}
return {
...decodeUserId(res),
Type: SSVC_TYPE_QUERY_USER_ID_RES
};
})
);
}
public userDn(req: UserDnRequest): Observable<UserDnResponse | UserDnData> {
return this.protocolService
.call(
SVC_TYPE_QUERY_DATA,
SSVC_TYPE_QUERY_USER_BY_DN_REQ,
...encodeUserDn(req)
)
.pipe(
takeWhile(
res => SSVC_TYPE_QUERY_USER_BY_DN_RES !== res.subServiceType,
true
),
map(res => {
if (SSVC_TYPE_QUERY_USER_BY_DN_DATA === res.subServiceType) {
return {
...decodeUserDnData(res),
Type: SSVC_TYPE_QUERY_USER_BY_DN_DATA
};
}
return {
...decodeUserDn(res),
Type: SSVC_TYPE_QUERY_USER_BY_DN_RES
};
})
);
}
public dataUser(req: DataUserRequest): Observable<DataUserResponse> {
return this.protocolService
.call(
SVC_TYPE_QUERY_DATA,
SSVC_TYPE_QUERY_DATA_USER_REQ,
...encodeDataUser(req)
)
.pipe(
take(1),
map(res => decodeDataUser(res))
);
}
public dataUserExt(req: DataUserExtRequest): Observable<DataUserExtResponse> {
return this.protocolService
.call(
SVC_TYPE_QUERY_DATA,
SSVC_TYPE_QUERY_EXT_DATA_USER_REQ,
...encodeDataUserExt(req)
)
.pipe(
take(1),
map(res => decodeDataUserExt(res))
);
}
} }

View File

@ -0,0 +1,10 @@
export enum DeptSearchType {
// A: 부서, 인원
All = 'A',
// U: 인원
User = 'U',
// D: 부서
Department = 'D',
// M: 다중부서 cf) 여러 부서(하위전체)를 쿼리할 때 1, 2, 3, 4..이렇게 부서SEQ들을, 로 연결해서 보냄 (검색string 필드를 사용함)
MultiDepartment = 'M'
}

View File

@ -6,14 +6,3 @@ export enum DeptType {
// T: 부서 // T: 부서
Team = 'T' Team = 'T'
} }
export enum DeptSearchType {
// A: 부서, 인원
All = 'A',
// U: 인원
User = 'U',
// D: 부서
Department = 'D',
// M: 다중부서 cf) 여러 부서(하위전체)를 쿼리할 때 1, 2, 3, 4..이렇게 부서SEQ들을, 로 연결해서 보냄 (검색string 필드를 사용함)
MultiDepartment = 'M'
}

View File

@ -8,8 +8,11 @@ export const SSVC_TYPE_QUERY_DEPT_REQ = 11; // 부서 정보 쿼리 요청
export const SSVC_TYPE_QUERY_DEPT_DATA = 12; // export const SSVC_TYPE_QUERY_DEPT_DATA = 12; //
export const SSVC_TYPE_QUERY_DEPT_RES = 13; // export const SSVC_TYPE_QUERY_DEPT_RES = 13; //
export const SSVC_TYPE_QUERY_DEPT_USER_REQ = 14; // 사용자 검색 쿼리 요청 export const SSVC_TYPE_QUERY_DEPT_USER_REQ = 14; // 사용자 검색 쿼리 요청
export const SSVC_TYPE_QUERY_DEPT_USER_DATA = 15; // export const SSVC_TYPE_QUERY_DEPT_USER_DATA = 15;
export const SSVC_TYPE_QUERY_DEPT_USER_RES = 16; // export const SSVC_TYPE_QUERY_DEPT_USER_RES = 16;
export const SSVC_TYPE_QUERY_DEPT_USER2_REQ = 54; // 사용자 검색 쿼리 요청2 (부서 LIKE 검색)
export const SSVC_TYPE_QUERY_DEPT_USER2_DATA = 55;
export const SSVC_TYPE_QUERY_DEPT_USER2_RES = 56;
export const SSVC_TYPE_QUERY_TEAM_CONTACT_USER_REQ = 17; // 공용 주소록 검색 쿼리 요청 export const SSVC_TYPE_QUERY_TEAM_CONTACT_USER_REQ = 17; // 공용 주소록 검색 쿼리 요청
export const SSVC_TYPE_QUERY_TEAM_CONTACT_USER_DATA = 18; // export const SSVC_TYPE_QUERY_TEAM_CONTACT_USER_DATA = 18; //
export const SSVC_TYPE_QUERY_TEAM_CONTACT_USER_RES = 19; // export const SSVC_TYPE_QUERY_TEAM_CONTACT_USER_RES = 19; //
@ -25,10 +28,10 @@ export const SSVC_TYPE_QUERY_USER_BY_DN_DATA = 32; //
export const SSVC_TYPE_QUERY_USER_BY_DN_RES = 33; // 사용자 정보 검색 응답(DN으로) export const SSVC_TYPE_QUERY_USER_BY_DN_RES = 33; // 사용자 정보 검색 응답(DN으로)
export const SSVC_TYPE_QUERY_MY_GROUP_REQ = 41; // 정렬된 그룹 SEQs 정보 요청 export const SSVC_TYPE_QUERY_MY_GROUP_REQ = 41; // 정렬된 그룹 SEQs 정보 요청
export const SSVC_TYPE_QUERY_MY_GROUP_RES = 42; // 정렬된 그룹 SEQs 정보 응답 export const SSVC_TYPE_QUERY_MY_GROUP_RES = 42; // 정렬된 그룹 SEQs 정보 응답
export const SSVC_TYPE_QUERY_CONFIRM_USER_REQ = 51; // 사용자 확인 요청 export const SSVC_TYPE_QUERY_MY_GROUP_REQ2 = 43; // 정렬된 그룹 SEQs 정보 요청
export const SSVC_TYPE_QUERY_CONFIRM_USER_RES = 52; // 사용자 확인 응답 export const SSVC_TYPE_QUERY_MY_GROUP_RES2 = 44; // 정렬된 그룹 SEQs 정보 응답
export const SSVC_TYPE_QUERY_AUTH_REQ = 91; // 사용자 권한 정보 요청 export const SSVC_TYPE_QUERY_AUTH_REQ = 91; // 사용자 권한 정보 요청
export const SSVC_TYPE_QUERY_AUTH_RES = 92; // 사용자 권한 정보 응답 export const SSVC_TYPE_QUERY_AUTH_RES = 92; // 사용자 권한 정보 응답
export const SSVC_TYPE_QUERY_CONTACT_VCARD_REQ = 101; // 명함주소록(거래처) 검색 요청 export const SSVC_TYPE_QUERY_VALID_USER_REQ = 93;
export const SSVC_TYPE_QUERY_CONTACT_VCARD_DATA = 102; // 명함주소록(거래처) 데이터 export const SSVC_TYPE_QUERY_VALID_USER_DATA = 94;
export const SSVC_TYPE_QUERY_CONTACT_VCARD_RES = 103; // 명함주소록(거래처) 검색 요청 응답 export const SSVC_TYPE_QUERY_VALID_USER_RES = 95;

View File

@ -0,0 +1,6 @@
export enum UserDnSearchType {
// D: 전화번호검색(HP_NUMBER, HARDPHONE_SADN, FMC_SADN)
Number = 'D',
// C: 이름검색(사용자명, 부서명)
Character = 'C'
}

View File

@ -3,12 +3,19 @@
*/ */
export * from './lib/models/auth'; export * from './lib/models/auth';
export * from './lib/models/dept'; export * from './lib/models/data-user-ext';
export * from './lib/models/data-user';
export * from './lib/models/dept-user'; export * from './lib/models/dept-user';
export * from './lib/models/dept';
export * from './lib/models/user-dn';
export * from './lib/models/user-id';
export * from './lib/models/user-seq';
export * from './lib/services/query-protocol.service'; export * from './lib/services/query-protocol.service';
export * from './lib/types/dept-search.type';
export * from './lib/types/dept.type'; export * from './lib/types/dept.type';
export * from './lib/types/service'; export * from './lib/types/service';
export * from './lib/types/user-dn-search.type';
export * from './lib/ucap-query-protocol.module'; export * from './lib/ucap-query-protocol.module';