2019-09-18 15:02:21 +09:00
|
|
|
import { Injectable } from '@angular/core';
|
2019-09-25 14:06:26 +09:00
|
|
|
import { ProtocolService } from '@ucap-webmessenger/protocol';
|
|
|
|
import { Observable } from 'rxjs';
|
2019-09-25 16:13:24 +09:00
|
|
|
import { take, map, takeWhile } from 'rxjs/operators';
|
2019-09-25 14:06:26 +09:00
|
|
|
import {
|
|
|
|
AuthRequest,
|
|
|
|
AuthResponse,
|
|
|
|
encodeAuth,
|
|
|
|
decodeAuth
|
|
|
|
} from '../models/auth';
|
|
|
|
import {
|
|
|
|
SVC_TYPE_QUERY_DATA,
|
2019-09-25 16:13:24 +09:00
|
|
|
SSVC_TYPE_QUERY_AUTH_REQ,
|
|
|
|
SSVC_TYPE_QUERY_DEPT_REQ,
|
|
|
|
SSVC_TYPE_QUERY_DEPT_RES,
|
|
|
|
SSVC_TYPE_QUERY_DEPT_DATA,
|
|
|
|
SSVC_TYPE_QUERY_DEPT_USER_RES,
|
|
|
|
SSVC_TYPE_QUERY_DEPT_USER_DATA,
|
2019-09-26 17:13:01 +09:00
|
|
|
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
|
2019-09-25 14:06:26 +09:00
|
|
|
} from '../types/service';
|
2019-09-25 16:13:24 +09:00
|
|
|
import {
|
|
|
|
DeptRequest,
|
|
|
|
DeptResponse,
|
|
|
|
encodeDept,
|
|
|
|
decodeDept,
|
|
|
|
decodeDeptData,
|
|
|
|
DeptData
|
|
|
|
} from '../models/dept';
|
|
|
|
import {
|
|
|
|
encodeDeptUser,
|
|
|
|
decodeDeptUser,
|
|
|
|
decodeDeptUserData,
|
|
|
|
DeptUserRequest,
|
|
|
|
DeptUserData,
|
|
|
|
DeptUserResponse
|
|
|
|
} from '../models/dept-user';
|
2019-09-26 17:13:01 +09:00
|
|
|
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';
|
2019-09-18 15:02:21 +09:00
|
|
|
|
|
|
|
@Injectable({
|
|
|
|
providedIn: 'root'
|
|
|
|
})
|
|
|
|
export class QueryProtocolService {
|
2019-09-25 14:06:26 +09:00
|
|
|
constructor(private protocolService: ProtocolService) {}
|
|
|
|
|
|
|
|
public auth(req: AuthRequest): Observable<AuthResponse> {
|
|
|
|
return this.protocolService
|
|
|
|
.call(SVC_TYPE_QUERY_DATA, SSVC_TYPE_QUERY_AUTH_REQ, ...encodeAuth(req))
|
|
|
|
.pipe(
|
|
|
|
take(1),
|
|
|
|
map(res => decodeAuth(res))
|
|
|
|
);
|
|
|
|
}
|
2019-09-25 16:13:24 +09:00
|
|
|
|
|
|
|
public dept(req: DeptRequest): Observable<DeptResponse | DeptData> {
|
|
|
|
return this.protocolService
|
|
|
|
.call(SVC_TYPE_QUERY_DATA, SSVC_TYPE_QUERY_DEPT_REQ, ...encodeDept(req))
|
|
|
|
.pipe(
|
|
|
|
takeWhile(res => SSVC_TYPE_QUERY_DEPT_RES !== res.subServiceType, true),
|
|
|
|
map(res => {
|
|
|
|
if (SSVC_TYPE_QUERY_DEPT_DATA === res.subServiceType) {
|
|
|
|
return { ...decodeDeptData(res), Type: SSVC_TYPE_QUERY_DEPT_DATA };
|
|
|
|
}
|
|
|
|
|
|
|
|
return { ...decodeDept(res), Type: SSVC_TYPE_QUERY_DEPT_RES };
|
|
|
|
})
|
|
|
|
);
|
|
|
|
}
|
|
|
|
public deptUser(
|
|
|
|
req: DeptUserRequest
|
|
|
|
): Observable<DeptUserResponse | DeptUserData> {
|
|
|
|
return this.protocolService
|
|
|
|
.call(
|
|
|
|
SVC_TYPE_QUERY_DATA,
|
|
|
|
SSVC_TYPE_QUERY_DEPT_USER_REQ,
|
|
|
|
...encodeDeptUser(req)
|
|
|
|
)
|
|
|
|
.pipe(
|
|
|
|
takeWhile(
|
|
|
|
res => SSVC_TYPE_QUERY_DEPT_USER_RES !== res.subServiceType,
|
|
|
|
true
|
|
|
|
),
|
|
|
|
map(res => {
|
|
|
|
if (SSVC_TYPE_QUERY_DEPT_USER_DATA === res.subServiceType) {
|
|
|
|
return {
|
|
|
|
...decodeDeptUserData(res),
|
|
|
|
Type: SSVC_TYPE_QUERY_DEPT_USER_DATA
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
return {
|
|
|
|
...decodeDeptUser(res),
|
|
|
|
Type: SSVC_TYPE_QUERY_DEPT_USER_RES
|
|
|
|
};
|
|
|
|
})
|
|
|
|
);
|
|
|
|
}
|
2019-09-26 17:13:01 +09:00
|
|
|
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))
|
|
|
|
);
|
|
|
|
}
|
2019-09-18 15:02:21 +09:00
|
|
|
}
|