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

58 lines
1.4 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,
APIDecoder
} 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?: string;
appType?: AppType;
deviceType?: DeviceType;
token?: string;
companyGroupCode: string;
}
export interface CompanyListResponse extends APIResponse {
companyList?: Company[];
}
2019-09-20 02:39:09 +00:00
export const encodeCompanyList: APIEncoder<CompanyListRequest> = (
req: CompanyListRequest
) => {
return {
p_user_seq: req.userSeq,
p_app_type: req.appType,
p_device_type: req.deviceType,
p_token: req.token,
p_comp_group_code: req.companyGroupCode
};
};
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;
};