next-ucap-messenger/projects/ucap-webmessenger-api-external/src/lib/apis/company-list.ts

65 lines
1.6 KiB
TypeScript
Raw Normal View History

2019-09-18 06:02:21 +00:00
import { AppType, DeviceType } from '@ucap-webmessenger/core';
2019-09-20 02:39:09 +00:00
import {
APIRequest,
APIResponse,
APIEncoder,
2019-11-07 04:48:25 +00:00
APIDecoder,
ParameterUtil
2019-09-20 02:39:09 +00:00
} from '@ucap-webmessenger/api';
2019-10-08 06:42:36 +00:00
import { Company } from '../models/company';
2019-09-18 06:02:21 +00:00
export interface CompanyListRequest extends APIRequest {
userSeq?: number;
2019-09-18 06:02:21 +00:00
appType?: AppType;
deviceType?: DeviceType;
token?: string;
companyGroupCode: string;
}
export interface CompanyListResponse extends APIResponse {
companyList?: Company[];
}
2019-09-20 02:39:09 +00:00
2019-11-07 04:48:25 +00:00
const companyListEncodeMap = {
userSeq: 'p_user_seq',
appType: 'p_app_type',
deviceType: 'p_device_type',
token: 'p_token',
companyGroupCode: 'p_comp_group_code'
};
2019-09-20 02:39:09 +00:00
export const encodeCompanyList: APIEncoder<CompanyListRequest> = (
req: CompanyListRequest
) => {
2019-11-07 04:48:25 +00:00
const extraParams: any = {};
extraParams.userSeq = String(req.userSeq);
return ParameterUtil.encode(companyListEncodeMap, req, extraParams);
2019-09-20 02:39:09 +00:00
};
export const decodeCompanyList: APIDecoder<CompanyListResponse> = (
res: any
) => {
let companyList: Company[] | undefined;
if (!!res.CompanyList) {
companyList = [];
for (const company of res.CompanyList) {
companyList.push({
companyCode: company.COMPANY_CODE,
companyName: company.COMPANY_NAME,
companyDomain: company.COMPANY_DOMAIN,
companyConfAuthYn: company.COMPANY_CONF_AUTH,
ucapUseYn: company.UCAP_USE_YN,
companyTimerChatAuthYn: company.COMPANY_TIMER_CHAT_AUTH
});
}
}
return {
statusCode: res.StatusCode,
errorMessage: res.ErrorMessage,
companyList
} as CompanyListResponse;
};