diff --git a/projects/ucap-webmessenger-api/src/lib/apis/httpUrlEncodingCodec.ts b/projects/ucap-webmessenger-api/src/lib/apis/httpUrlEncodingCodec.ts new file mode 100644 index 00000000..a4a06373 --- /dev/null +++ b/projects/ucap-webmessenger-api/src/lib/apis/httpUrlEncodingCodec.ts @@ -0,0 +1,20 @@ +import { HttpParameterCodec } from '@angular/common/http'; + +export class HttpUrlEncodingCodec implements HttpParameterCodec { + encodeKey(k: string): string { + return this.standardEncoding(k); + } + encodeValue(v: string): string { + return this.standardEncoding(v); + } + decodeKey(k: string): string { + return decodeURIComponent(k); + } + decodeValue(v: string) { + return decodeURIComponent(v); + } + + standardEncoding(v: string): string { + return encodeURIComponent(v); + } +} diff --git a/projects/ucap-webmessenger-api/src/public-api.ts b/projects/ucap-webmessenger-api/src/public-api.ts index 25527679..3258d83d 100644 --- a/projects/ucap-webmessenger-api/src/public-api.ts +++ b/projects/ucap-webmessenger-api/src/public-api.ts @@ -3,6 +3,7 @@ */ export * from './lib/apis/api'; +export * from './lib/apis/httpUrlEncodingCodec'; export * from './lib/types/message-status-code.type'; export * from './lib/types/status-code.type'; diff --git a/projects/ucap-webmessenger-pi/src/lib/apis/login2.ts b/projects/ucap-webmessenger-pi/src/lib/apis/login2.ts index 540017ca..20aba5a9 100644 --- a/projects/ucap-webmessenger-pi/src/lib/apis/login2.ts +++ b/projects/ucap-webmessenger-pi/src/lib/apis/login2.ts @@ -1,6 +1,12 @@ -import { ParameterUtil, APIEncoder, APIDecoder } from '@ucap-webmessenger/api'; +import { + ParameterUtil, + APIEncoder, + APIDecoder, + HttpUrlEncodingCodec +} from '@ucap-webmessenger/api'; import { PIRequest, PIResponse } from './pi'; +import { HttpParams, HttpParameterCodec } from '@angular/common/http'; export interface Login2Request extends PIRequest { companyCode: string; @@ -26,7 +32,14 @@ const login2EncodeMap = { }; export const encodeLogin2: APIEncoder = (req: Login2Request) => { - return ParameterUtil.encode(login2EncodeMap, req); + let parameter: HttpParams = new HttpParams({ + encoder: new HttpUrlEncodingCodec() + }); + parameter = parameter.append('companyCd', req.companyCode); + parameter = parameter.append('loginId', req.loginId); + parameter = parameter.append('loginPw', req.loginPw); + return parameter; + // return ParameterUtil.encodeForm(login2EncodeMap, req); }; export const decodeLogin2: APIDecoder = (res: any) => {