sales-frontend-api 0.0.97 → 0.0.98

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/method.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Bridge } from 'sales-frontend-bridge';
2
- import { getDudApiHostNameFromEnvironment, getExt, isDspApp, getDspExecutionEnvironment } from 'sales-frontend-utils';
2
+ import { getDspApiHostNameFromEnvironment, getDudApiHostNameFromEnvironment, getExt, isDspApp, getDspExecutionEnvironment } from 'sales-frontend-utils';
3
3
  import axios from 'axios';
4
4
  import { addRequestLog, addResponseLog, addErrorLog } from 'sales-frontend-debug';
5
5
  import { useClientSessionStore } from 'sales-frontend-stores';
@@ -309,11 +309,8 @@ var getTestMethod = async ({ id, config, setupFn }) => {
309
309
  const res = await httpClient.api.get(testAPI);
310
310
  return res.data;
311
311
  };
312
-
313
- // src/http-methods/search-modal/address/address-search.service.ts
314
312
  var getAddressListMethod = async (params, config) => {
315
- const serviceCode = getServiceCode();
316
- const apiUrl = `${serviceCode}/api/dis/v1/get/codes/address-list`;
313
+ const apiUrl = `${getDspApiHostNameFromEnvironment("dis")}/v1/get/codes/address-list`;
317
314
  const httpClient = new HttpClientAxios(config);
318
315
  const res = await httpClient.api.post(apiUrl, params);
319
316
  return res.data;
@@ -329,11 +326,8 @@ var useSearchAddressQuery = (params, options, config) => {
329
326
  ...options
330
327
  });
331
328
  };
332
-
333
- // src/http-methods/search-modal/address/postal-code.service.ts
334
329
  var getAddressPostalCodeMethod = async (params, config) => {
335
- const serviceCode = getServiceCode();
336
- const apiUrl = `${serviceCode}/api/dis/v1/get/codes/address/postal-code`;
330
+ const apiUrl = `${getDspApiHostNameFromEnvironment("dis")}/v1/get/codes/address/postal-code`;
337
331
  const httpClient = new HttpClientAxios(config);
338
332
  const res = await httpClient.api.post(apiUrl, params);
339
333
  return res.data;
@@ -349,11 +343,8 @@ var useSearchPostalCodeQuery = (params, options, config) => {
349
343
  ...options
350
344
  });
351
345
  };
352
-
353
- // src/http-methods/search-modal/address/address-standardization.service.ts
354
346
  var getAddressStandardizationListMethod = async (params, config) => {
355
- const serviceCode = getServiceCode();
356
- const apiUrl = `${serviceCode}/api/dis/v1/get/codes/address-standardization-list`;
347
+ const apiUrl = `${getDspApiHostNameFromEnvironment("dis")}/v1/get/codes/address-standardization-list`;
357
348
  const httpClient = new HttpClientAxios(config);
358
349
  const res = await httpClient.api.post(apiUrl, params);
359
350
  return res.data;
@@ -369,18 +360,14 @@ var useSearchAddressStandardizationQuery = (params, options, config) => {
369
360
  ...options
370
361
  });
371
362
  };
372
-
373
- // src/http-methods/search-modal/occupation/occupation-search.service.ts
374
363
  var getOccupationListMethod = async (params, config) => {
375
- const serviceCode = getServiceCode();
376
- const apiUrl = `${serviceCode}/api/dis/v1/get/codes/occupation-list`;
364
+ const apiUrl = `${getDspApiHostNameFromEnvironment("dis")}/v1/get/codes/occupation-list`;
377
365
  const httpClient = new HttpClientAxios(config);
378
366
  const res = await httpClient.api.post(apiUrl, params);
379
367
  return res.data;
380
368
  };
381
369
  var getOccupationDetailMethod = async (params, config) => {
382
- const serviceCode = getServiceCode();
383
- const apiUrl = `${serviceCode}/api/dis/v1/get/codes/occupation/detail`;
370
+ const apiUrl = `${getDspApiHostNameFromEnvironment("dis")}/v1/get/codes/occupation/detail`;
384
371
  const httpClient = new HttpClientAxios(config);
385
372
  const res = await httpClient.api.post(apiUrl, params);
386
373
  return res.data;
@@ -407,11 +394,8 @@ var useSearchOccupationDetailQuery = (params, options, config) => {
407
394
  ...options
408
395
  });
409
396
  };
410
-
411
- // src/http-methods/search-modal/vehicle/vehicle-search.service.ts
412
397
  var getVehicleListMethod = async (config) => {
413
- const serviceCode = getServiceCode();
414
- const apiUrl = `${serviceCode}/api/dis/v1/get/codes/vehicle-type-list`;
398
+ const apiUrl = `${getDspApiHostNameFromEnvironment("dis")}/v1/get/codes/vehicle-type-list`;
415
399
  const httpClient = new HttpClientAxios(config);
416
400
  const res = await httpClient.api.post(apiUrl);
417
401
  return res.data;
@@ -427,11 +411,8 @@ var useSearchVehicleQuery = (options, config) => {
427
411
  ...options
428
412
  });
429
413
  };
430
-
431
- // src/http-methods/search-modal/employee/employee-search.service.ts
432
414
  var getEmployeeProfileListMethod = async (params, config) => {
433
- const serviceCode = getServiceCode();
434
- const apiUrl = `${serviceCode}/api/dea/v1/get/participant/profile/employee`;
415
+ const apiUrl = `${getDspApiHostNameFromEnvironment("dea")}/v1/get/participant/profile/employee`;
435
416
  const httpClient = new HttpClientAxios(config);
436
417
  const res = await httpClient.api.post(apiUrl, params);
437
418
  return res.data;
@@ -447,11 +428,8 @@ var useSearchEmployeeProfileQuery = (params, options, config) => {
447
428
  ...options
448
429
  });
449
430
  };
450
-
451
- // src/http-methods/search-modal/organization/organization-search.service.ts
452
431
  var getOrganizationProfileListMethod = async (params, config) => {
453
- const serviceCode = getServiceCode();
454
- const apiUrl = `${serviceCode}/api/dea/v1/get/participant/profile/organization`;
432
+ const apiUrl = `${getDspApiHostNameFromEnvironment("dea")}/v1/get/participant/profile/organization`;
455
433
  const httpClient = new HttpClientAxios(config);
456
434
  const res = await httpClient.api.post(apiUrl, params);
457
435
  return res.data;
@@ -467,11 +445,8 @@ var useSearchOrganizationQuery = (params, options, config) => {
467
445
  ...options
468
446
  });
469
447
  };
470
-
471
- // src/http-methods/search-modal/nationality/nationality-search.service.ts
472
448
  var getNationalityListMethod = async (params, config) => {
473
- const serviceCode = getServiceCode();
474
- const apiUrl = `${serviceCode}/api/dis/v1/get/codes/nationality-list`;
449
+ const apiUrl = `${getDspApiHostNameFromEnvironment("dis")}/v1/get/codes/nationality-list`;
475
450
  const httpClient = new HttpClientAxios(config);
476
451
  const res = await httpClient.api.post(apiUrl, params);
477
452
  return res.data;
@@ -488,11 +463,8 @@ var useSearchNationalityQuery = (params, options, config) => {
488
463
  ...options
489
464
  });
490
465
  };
491
-
492
- // src/http-methods/search-modal/customer-list/customer-list-search.service.ts
493
466
  var getCustomerListMethod = async (params, config) => {
494
- const serviceCode = getServiceCode();
495
- const apiUrl = `${serviceCode}/api/dis/v1/get/customer-list`;
467
+ const apiUrl = `${getDspApiHostNameFromEnvironment("dis")}/v1/get/customer-list`;
496
468
  const httpClient = new HttpClientAxios(config);
497
469
  const res = await httpClient.api.post(apiUrl, params);
498
470
  return res.data;
@@ -508,11 +480,8 @@ var useSearchCustomerListQuery = (params, options, config) => {
508
480
  ...options
509
481
  });
510
482
  };
511
-
512
- // src/http-methods/search-modal/risk-grade/risk-grade-search.service.ts
513
483
  var getRiskGradeMethod = async (params, config) => {
514
- const serviceCode = getServiceCode();
515
- const apiUrl = `${serviceCode}/api/dis/v1/get/codes/risk-grade`;
484
+ const apiUrl = `${getDspApiHostNameFromEnvironment("dis")}/v1/get/codes/risk-grade`;
516
485
  const httpClient = new HttpClientAxios(config);
517
486
  const res = await httpClient.api.post(apiUrl, params);
518
487
  return res.data;
@@ -528,11 +497,8 @@ var useSearchRiskGradeQuery = (params, options, config) => {
528
497
  ...options
529
498
  });
530
499
  };
531
-
532
- // src/http-methods/search-modal/dea-customer-list/dea-customer-list-search.service.ts
533
500
  var getDspCustomerListMethod = async (params, config) => {
534
- const serviceCode = getServiceCode();
535
- const apiUrl = `${serviceCode}/api/dea/v1/get/participant/profile/customer/personal`;
501
+ const apiUrl = `${getDspApiHostNameFromEnvironment("dea")}/v1/get/participant/profile/customer/personal`;
536
502
  const httpClient = new HttpClientAxios(config);
537
503
  const res = await httpClient.api.post(apiUrl, params);
538
504
  return res.data;
@@ -548,11 +514,8 @@ var useSearchDspCustomerListQuery = (params, options, config) => {
548
514
  ...options
549
515
  });
550
516
  };
551
-
552
- // src/http-methods/search-modal/visa/visa-search.service.ts
553
517
  var getVisaListMethod = async (config) => {
554
- const serviceCode = getServiceCode();
555
- const apiUrl = `${serviceCode}/api/dis/v1/get/codes/visa-status-list`;
518
+ const apiUrl = `${getDspApiHostNameFromEnvironment("dis")}/v1/get/codes/visa-status-list`;
556
519
  const httpClient = new HttpClientAxios(config);
557
520
  const res = await httpClient.api.post(apiUrl);
558
521
  return res.data;
@@ -568,11 +531,9 @@ var useSearchVisaQuery = (options, config) => {
568
531
  ...options
569
532
  });
570
533
  };
571
-
572
- // src/http-methods/fp-login/login-dsp.service.ts
573
534
  var postLoginMethod = async (userId) => {
574
535
  console.log("userId", userId);
575
- const apiUrl = "/api/dat/v1/post/login";
536
+ const apiUrl = `${getDspApiHostNameFromEnvironment("dat")}/v1/post/login`;
576
537
  const httpClient = new HttpClientAxios({
577
538
  headers: {
578
539
  "Debug-Refresh-Queue-Off": "true"
@@ -584,19 +545,15 @@ var postLoginMethod = async (userId) => {
584
545
  });
585
546
  return res.data;
586
547
  };
587
-
588
- // src/http-methods/remote-identity-verification/remote-identity-verification.service.ts
589
548
  var getRemoteIdentityVerificationSystemToken = async (params, axiosConfig) => {
590
- const serviceCode = getServiceCode();
591
- const apiUrl = `${serviceCode}/api/dea/v1/post/participant/remote-identity-verification-system/token`;
549
+ const apiUrl = `${getDspApiHostNameFromEnvironment("dea")}/v1/post/participant/remote-identity-verification-system/token`;
592
550
  const response = await new HttpClientAxios({
593
551
  ...axiosConfig
594
552
  }).api.post(apiUrl, params);
595
553
  return response.data;
596
554
  };
597
555
  var confirmRemoteIdentityVerificationSystemIdentificationCard = async (params, axiosConfig) => {
598
- const serviceCode = getServiceCode();
599
- const apiUrl = `${serviceCode}/api/dea/v1/post/participant/remote-identity-verification-system/identification-card/confirm`;
556
+ const apiUrl = `${getDspApiHostNameFromEnvironment("dea")}/v1/post/participant/remote-identity-verification-system/identification-card/confirm`;
600
557
  const response = await new HttpClientAxios({
601
558
  ...axiosConfig
602
559
  }).api.post(apiUrl, params);
@@ -615,11 +572,8 @@ var useConfirmRemoteIdentityVerificationSystemIdentificationCardMutation = (opti
615
572
  ...options
616
573
  });
617
574
  };
618
-
619
- // src/http-methods/common-code/common-code-search.service.ts
620
575
  var getCommonCodeListMethod = async (param, config) => {
621
- const serviceCode = getServiceCode();
622
- const apiUrl = `${serviceCode}/api/dea/v1/get/common-code/list`;
576
+ const apiUrl = `${getDspApiHostNameFromEnvironment("dea")}/v1/get/common-code/list`;
623
577
  const httpClient = new HttpClientAxios(config);
624
578
  const res = await httpClient.api.post(apiUrl, param);
625
579
  return res.data;
@@ -635,11 +589,8 @@ var useSearchCommonCodeQuery = (param, options, config) => {
635
589
  ...options
636
590
  });
637
591
  };
638
-
639
- // src/http-methods/app-config/app-config.service.ts
640
592
  var getUserProfile = async (axiosConfig) => {
641
- const serviceCode = getServiceCode();
642
- const apiUrl = `${serviceCode}/api/dat/v1/get/user/profile`;
593
+ const apiUrl = `${getDspApiHostNameFromEnvironment("dat")}/v1/get/user/profile`;
643
594
  const response = await new HttpClientAxios({
644
595
  ...axiosConfig
645
596
  }).api.post(apiUrl);
@@ -650,7 +601,7 @@ var getDayDiffFromToday = (date) => {
650
601
  return Math.floor(diff / (1e3 * 60 * 60 * 24));
651
602
  };
652
603
  var postFileUploadMethod = async (params, config) => {
653
- const apiUrl = `${getDudApiHostNameFromEnvironment(getServiceCode(), location.hostname)}/v1/post/file`;
604
+ const apiUrl = `${getDudApiHostNameFromEnvironment()}/v1/post/file`;
654
605
  const formData = new FormData();
655
606
  if (params.data instanceof File) {
656
607
  formData.append("data", params.data, params.name || params.data.name);
@@ -663,7 +614,7 @@ var postFileUploadMethod = async (params, config) => {
663
614
  params.expireDate && formData.append("preservationTerm", (getDayDiffFromToday(params.expireDate) + 1).toString() || "1");
664
615
  params.preservationTerm && formData.append("preservationTerm", params.preservationTerm.toString() || "1");
665
616
  formData.append("fileType", params.fileType || params.data.type.split("/").pop() || "png");
666
- const httpClient = new HttpClientAxios(config);
617
+ const httpClient = new HttpClientAxios({ ...config, withCredentials: false });
667
618
  httpClient.api.interceptors.response.use((response) => {
668
619
  const { data } = response;
669
620
  if (data.isSuccess === true && data.code.includes("erro")) {
@@ -675,7 +626,7 @@ var postFileUploadMethod = async (params, config) => {
675
626
  return res.data;
676
627
  };
677
628
  async function postFileDownloadMethod(params, config) {
678
- const apiUrl = `${getServiceCode()}/api/dud/v1/get/file`;
629
+ const apiUrl = `${getDudApiHostNameFromEnvironment()}/v1/get/file`;
679
630
  const httpClient = new HttpClientAxios({
680
631
  ...config,
681
632
  ...params.outputType === "BINARY" && { responseType: "blob" }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/http-methods/method-util.ts","../src/http-client/cookie/cookie-client.ts","../src/http-client/header/header.types.ts","../src/http-client/header/header-manager.ts","../src/http-client/axios/http-client-axios.ts","../src/http-client/auth/auth-client.ts","../src/http-methods/sample/sample.service.ts","../src/http-methods/search-modal/address/address-search.service.ts","../src/http-methods/search-modal/address/use-search-address-query.ts","../src/http-methods/search-modal/address/postal-code.service.ts","../src/http-methods/search-modal/address/use-search-postal-code-query.ts","../src/http-methods/search-modal/address/address-standardization.service.ts","../src/http-methods/search-modal/address/use-search-address-standardization-query.ts","../src/http-methods/search-modal/occupation/occupation-search.service.ts","../src/http-methods/search-modal/occupation/use-search-occupation-query.ts","../src/http-methods/search-modal/vehicle/vehicle-search.service.ts","../src/http-methods/search-modal/vehicle/use-search-vehicle-query.ts","../src/http-methods/search-modal/employee/employee-search.service.ts","../src/http-methods/search-modal/employee/use-search-employee-profile-query.ts","../src/http-methods/search-modal/organization/organization-search.service.ts","../src/http-methods/search-modal/organization/use-search-organization-query.ts","../src/http-methods/search-modal/nationality/nationality-search.service.ts","../src/http-methods/search-modal/nationality/use-search-nationality-query.ts","../src/http-methods/search-modal/customer-list/customer-list-search.service.ts","../src/http-methods/search-modal/customer-list/use-search-customer-list-query.ts","../src/http-methods/search-modal/risk-grade/risk-grade-search.service.ts","../src/http-methods/search-modal/risk-grade/use-search-risk-grade-query.ts","../src/http-methods/search-modal/dea-customer-list/dea-customer-list-search.service.ts","../src/http-methods/search-modal/dea-customer-list/use-search-dea-customer-list-query.ts","../src/http-methods/search-modal/visa/visa-search.service.ts","../src/http-methods/search-modal/visa/use-search-visa-query.ts","../src/http-methods/fp-login/login-dsp.service.ts","../src/http-methods/remote-identity-verification/remote-identity-verification.service.ts","../src/http-methods/remote-identity-verification/use-remote-identity-verification-query.tsx","../src/http-methods/common-code/common-code-search.service.ts","../src/http-methods/common-code/use-search-common-code-query.ts","../src/http-methods/app-config/app-config.service.ts","../src/http-methods/dud-external-file/dud-external-file.service.ts","../src/http-methods/dud-external-file/use-dud-external-file-query.ts"],"names":["config","error","useQuery","useMutation"],"mappings":"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","file":"method.js","sourcesContent":["export const getServiceCode = () => {\n // @ts-ignore\n if (typeof window.isStorybookEnv === 'boolean') {\n return '';\n } else {\n return `/${location.pathname.split('/')[1]}`;\n }\n};\n","/**\n * 클라이언트용 쿠키 함수\n */\nexport const cookieClient = {\n getCookie(name: string): string {\n if (typeof document === 'undefined') {\n return '';\n }\n const match = document.cookie.match(new RegExp(`(^|; *)${name}=([^;]*)`));\n\n return match ? decodeURIComponent(match[2] || '') : '';\n },\n\n setCookie(\n name: string,\n value: string,\n options: {\n expires?: number | Date; // number of days\n path?: string;\n domain?: string;\n secure?: boolean;\n } = {}\n ): void {\n if (typeof document === 'undefined') {\n return;\n }\n\n let cookieString = `${name}=${encodeURIComponent(value)}`;\n\n if (options.expires) {\n let expiresDate: Date;\n if (typeof options.expires === 'number') {\n expiresDate = new Date();\n expiresDate.setDate(expiresDate.getDate() + options.expires);\n } else {\n expiresDate = options.expires;\n }\n cookieString += `; expires=${expiresDate.toUTCString()}`;\n }\n\n cookieString += `; path=${options.path || '/'}`;\n\n if (options.domain) {\n cookieString += `; domain=${options.domain}`;\n }\n\n if (options.secure) {\n cookieString += '; secure';\n }\n\n document.cookie = cookieString;\n },\n deleteCookie(name: string, options: { path?: string; domain?: string } = {}): void {\n cookieClient.setCookie(name, '', { ...options, expires: -1 });\n }\n};\n","/**\n * @see https://loop.cloud.microsoft/p/eyJ3Ijp7InUiOiJodHRwczovL2hhbndoYWxpZmVtMzY1LnNoYXJlcG9pbnQuY29tLz9uYXY9Y3owbE1rWW1aRDFpSVVVd1FXdDJSbGhSV0VWUE1tUkNYMWhUZW5KWVVFdFBSVXByYWs1b1NrSlBjRk4wYm5wNmNsWmpMVUZ5YjI1UlJWOVdSREpUV25aeWVUUTJTV2swUlZrbVpqMHdNVk5OVGtkR1JsTkJXVE0xVVZaQ1ZrRkVRa1ZaVEVoRVNUSTBXRXhVVlZoV0ptTTlKbVpzZFdsa1BURSUzRCIsInIiOmZhbHNlfSwicCI6eyJ1IjoiaHR0cHM6Ly9oYW53aGFsaWZlbTM2NS5zaGFyZXBvaW50LmNvbS9jb250ZW50c3RvcmFnZS9DU1BfYmMyNDQwMTMtZDA1NS00MzVjLWI2NzQtMWZkNzRiM2FkNzNjLyVFQiVBQyVCOCVFQyU4NCU5QyUyMCVFQiU5RCVCQyVFQyU5RCVCNCVFQiVCOCU4QyVFQiU5RiVBQyVFQiVBNiVBQy9Mb29wQXBwRGF0YS8wOS0yLiUyMEJyaWRnZSUyMFNwZWMlMjAxLmxvb3A%2FbmF2PWN6MGxNa1pqYjI1MFpXNTBjM1J2Y21GblpTVXlSa05UVUY5aVl6STBOREF4TXkxa01EVTFMVFF6TldNdFlqWTNOQzB4Wm1RM05HSXpZV1EzTTJNbVpEMWlJVVV3UVd0MlJsaFJXRVZQTW1SQ1gxaFRlbkpZVUV0UFJVcHJhazVvU2tKUGNGTjBibnA2Y2xaakxVRnliMjVSUlY5V1JESlRXblp5ZVRRMlNXazBSVmttWmowd01WTk5Ua2RHUmxGRlYxTlFOelpMUWtsTFdrWkpXVUUzU1ZkWldGTklWa0ZUSm1NOUpUSkdKbVpzZFdsa1BURSUzRCIsInIiOmZhbHNlfSwiaSI6eyJpIjoiNTdkZmVhM2QtZDA2Yi00YWRlLWIxZjEtYjE4NDA4MmNlN2VjIn19\n */\nexport const customHeaderNames = [\n 'Accept-Language',\n 'DeviceId',\n 'LoginType',\n 'PlatformName',\n 'PlatformVersion',\n 'AppVersion',\n 'DeviceModel',\n 'FormFactor',\n 'LoginChannel'\n];\n\nexport const AT = 'AT';\nexport type GetterSync = (keyName: string) => string;\nexport type SetterSync = (keyName: string, value: string) => void;\n\nexport type GetterAsync = (keyName: string) => Promise<string> | string;\nexport type SetterAsync = (keyName: string, value: string) => Promise<void> | void;\n","import { AT, customHeaderNames, GetterSync, SetterSync } from './header.types';\n\nexport class HeaderManager {\n private getter: GetterSync;\n private setter: SetterSync;\n\n constructor(getter: GetterSync, setter: SetterSync) {\n this.getter = getter;\n this.setter = setter;\n }\n\n /**\n * 커스텀 헤더를 동기적으로 설정합니다.\n */\n setCustomHeaders(): void {\n customHeaderNames.forEach((headerName) => {\n const customHeaderKey = `X-Channel-${headerName}`;\n const headerValue = this.getter(customHeaderKey);\n if (headerValue) {\n this.setter(customHeaderKey, headerValue);\n }\n });\n }\n\n /**\n * 인증 토큰을 동기적으로 설정합니다.\n */\n setAuthToken(): void {\n const token = this.getter(AT);\n if (token) {\n this.setter('Authorization', `Bearer ${token}`);\n }\n }\n\n /**\n * 모든 헤더를 동기적으로 설정합니다.\n */\n setAllHeaders(): void {\n this.setCustomHeaders();\n this.setAuthToken();\n }\n}\n","import axios from 'axios';\nimport { addErrorLog, addRequestLog, addResponseLog } from 'sales-frontend-debug';\nimport { useClientSessionStore } from 'sales-frontend-stores';\n\nimport { AuthClient } from '../auth/auth-client';\nimport { cookieClient } from '../cookie/cookie-client';\nimport { HeaderManager } from '../header/header-manager';\n\nimport type { AxiosQueueType } from './types';\nimport type { AxiosError, AxiosResponse, AxiosInstance, AxiosRequestConfig } from 'axios';\nlet isRefreshed = true;\nconst axiosQueue: AxiosQueueType[] = [];\n\n/**\n * 쿠키에서 값을 가져오고, 없으면 기본값을 쿠키에 설정 후 반환하는 헬퍼 함수\n * @param key 쿠키 키\n * @param defaultValue 쿠키 값이 없을 때 사용할 기본값\n * @returns 쿠키 값 또는 기본값\n */\nconst getOrSetCookie = (key: string, defaultValue: string): string => {\n let value = cookieClient.getCookie(key);\n if (!value) {\n value = defaultValue;\n cookieClient.setCookie(key, value, { path: '/' });\n }\n\n return value;\n};\n\n/**\n * 전자청약\n * CSR용 http-client 입니다.\n * cookie , redirect , tokem 처리 방식은 CSR 환경에 맞게 구현됩니다.\n */\nexport class HttpClientAxios {\n config: AxiosRequestConfig;\n headerManager: HeaderManager;\n\n /**\n * axios의 request interceptor 동작시, 헤더에 주입될 헤더의 key,value\n */\n headers: Record<string, string> = {};\n\n /**\n * api연동을 수행할 실제 객체(axios, fetch 등의 다른 라이브러리로 교체가능한 영역)\n * 현재 버전에서는 axios를 사용하여 구현됨.\n */\n api: AxiosInstance;\n constructor(config: AxiosRequestConfig = {}) {\n this.config = config;\n\n /**\n * 헤더매니저 셋팅\n */\n const getter: HeaderManager['getter'] = (key) => {\n return cookieClient.getCookie(key);\n };\n const setter: HeaderManager['setter'] = (key, value) => {\n if (config?.headers) {\n config.headers[key] = value;\n }\n };\n this.headerManager = new HeaderManager(getter, setter);\n\n /**\n * api수행객체 최초 생성,\n * 공통으로 적용할 설정값이 있는경우 셋팅\n */\n this.api = axios.create({\n withCredentials: true,\n ...config\n });\n\n /**\n * 인터셉터 요청 처리\n */\n this.api.interceptors.request.use(\n async (config) => {\n const debugMode = cookieClient.getCookie('dsp-debug-mode') === 'on';\n\n /** 디버깅용 로그 */\n await addRequestLog(config);\n\n const debugRefreshQueueOff = config.headers?.['Debug-Refresh-Queue-Off'] === 'true';\n if (debugRefreshQueueOff) {\n isRefreshed = true;\n }\n\n /**\n * AT토큰 주입\n */\n const authClient = new AuthClient();\n const authorization = await authClient.getAT();\n console.log('authorization', authorization);\n if (authorization) {\n config.headers['Authorization'] = authorization;\n }\n\n if (debugMode) {\n console.log('debugMode header setting!');\n /**\n * 주소가 debugMode 경우 테스트용 헤더 삽입\n */\n config.headers['x-channel-appversion'] = getOrSetCookie('x-channel-appversion', '3.1');\n config.headers['x-channel-deviceid'] = getOrSetCookie('x-channel-deviceid', 'deviceid');\n config.headers['x-channel-devicemodel'] = getOrSetCookie('x-channel-devicemodel', 'iPHONE13');\n config.headers['x-channel-formfactor'] = getOrSetCookie('x-channel-formfactor', 'Phone');\n config.headers['x-channel-loginchannel'] = getOrSetCookie('x-channel-loginchannel', 'DSP');\n config.headers['x-channel-logintype'] = getOrSetCookie('x-channel-logintype', 'ONPA_PIN');\n config.headers['x-channel-platformname'] = getOrSetCookie('x-channel-platformname', 'IOS');\n config.headers['x-channel-platformversion'] = getOrSetCookie('x-channel-platformversion', '15.4.1');\n config.headers['x-channel-screenid'] = getOrSetCookie('x-channel-screenid', location.pathname);\n config.headers['x-channel-business-work-division-code'] = getOrSetCookie(\n 'x-channel-business-work-division-code',\n 'DEA'\n );\n } else {\n const session = useClientSessionStore.getState().clientSession;\n\n config.headers['x-channel-appversion'] = session.appVersion;\n config.headers['x-channel-deviceid'] = session.deviceId;\n config.headers['x-channel-devicemodel'] = session.deviceModel;\n config.headers['x-channel-formfactor'] = session.formFactor;\n config.headers['x-channel-loginchannel'] = session.loginChannel;\n config.headers['x-channel-logintype'] = session.loginType;\n config.headers['x-channel-platformname'] = session.platformName;\n config.headers['x-channel-platformversion'] = session.platformVersion;\n config.headers['x-channel-screenid'] = location.pathname;\n config.headers['x-channel-business-work-division-code'] = session.businessWorkDivisionCode;\n }\n\n /**\n * 커스텀헤더 주입\n */\n // this.headerManager.setCustomHeaders();\n /**\n *\n * this.headers설정된 값을 config headers에 주입\n */\n const headerEntries = Object.entries(this.headers);\n headerEntries.forEach(([key, value]) => {\n if (config?.headers) {\n config.headers[key] = value;\n }\n });\n\n /**\n * isRefreshed가 false이면(= 에러발생하여 token재발행중을 의미)\n * 새로운 요청들을 처리하지 않고,큐에 저장\n * 401에러 Queue처리 Request interceptor 등록\n */\n if (!isRefreshed) {\n return new Promise((resolve, reject) => {\n axiosQueue.push({ resolve, reject, config });\n }).then(() => config);\n }\n\n return config;\n },\n (error) => {\n return Promise.reject(error);\n }\n );\n\n /**\n * 인터셉터 응답 처리\n */\n this.api.interceptors.response.use(\n async (response: AxiosResponse) => {\n /** 디버깅용 로그 */\n await addResponseLog(response);\n if (response.data.isSuccess === false) {\n /**\n * 200 응답이라도 , isSuccess === false인 경우 에러로 reject\n */\n return Promise.reject(response);\n }\n\n return response;\n },\n async (error: AxiosError) => {\n /** 디버깅용 로그 */\n await addErrorLog(error);\n\n const originalRequest = error.config;\n const debugRefreshQueueOff = config.headers?.['Debug-Refresh-Queue-Off'] === 'true';\n /**\n * 401에러 Queue처리\n */\n if (error.response?.status === 401 && !debugRefreshQueueOff) {\n isRefreshed = false;\n const client = new AuthClient();\n client\n .refreshToken()\n .then(() => {\n /**\n * 토큰 갱신 성공, 플래그를 true로 설정\n */\n isRefreshed = true;\n\n /**\n * 큐에 쌓여있던 모든 요청 재시도\n */\n while (axiosQueue.length > 0) {\n const p = axiosQueue.shift(); // axiosQueue에서 첫 번째 요소를 제거하고 반환합니다.\n if (p) {\n /**\n * api 인스턴스를 통해 요청을 재시도합니다. 따라서 재요청들은 다시 인터셉터를 타게 됩니다.\n * 신규토큰을 주입받고 정상처리\n * @todo 재시도후 reject시에는 로그인페이지로 보내는 브릿지 함수를 호출하도록 처리가 필요해보임.\n *\n * @note 11/07 : 무한루프이슈 해결을 위해 , 새로운 인스턴스를 사용하도록 수정\n */\n axios(p.config)\n .then((response) => p.resolve(response))\n .catch((err) => p.reject(err));\n }\n }\n })\n .catch((error) => {\n /**\n * 토큰 재발행중 에러 발생한 경우 처리\n * @todo 로그인페이지 이동(?)\n */\n return Promise.reject(error);\n });\n\n return new Promise((resolve, reject) => {\n if (originalRequest) {\n axiosQueue.push({ resolve, reject, config: originalRequest });\n }\n });\n } else {\n return Promise.reject(error);\n }\n }\n );\n }\n\n setHeaders(headers: Record<string, string>) {\n this.headers = {\n ...this.headers,\n ...headers\n };\n }\n}\n","import { Bridge } from 'sales-frontend-bridge';\nimport { isDspApp } from 'sales-frontend-utils';\nimport { getDspExecutionEnvironment } from 'sales-frontend-utils';\n\nimport { getServiceCode } from '../../http-methods/method-util';\nimport { HttpClientAxios } from '../axios/http-client-axios';\nimport { cookieClient } from '../cookie/cookie-client';\n\nexport class AuthClient {\n defaultTokenType = 'Bearer';\n /**\n * App인지 확인\n * @returns boolean\n */\n isApp() {\n return isDspApp();\n }\n\n getAuthorizationFromCookie() {\n const accessToken = cookieClient.getCookie('accessToken');\n\n return accessToken ? `${this.defaultTokenType} ${accessToken}` : undefined;\n }\n\n async getAuthorizationFromBridge() {\n const { tokenType, accessToken } = await Bridge.native.getAccessToken();\n\n return accessToken ? `${tokenType || this.defaultTokenType} ${accessToken}` : undefined;\n }\n\n /**\n *\n * @returns Promise<string | undefined>\n */\n async getAT(): Promise<string | undefined> {\n const debugMode = cookieClient.getCookie('dsp-debug-mode') === 'on';\n\n /**\n * debugMode 경우 cookie에서 'AT' 를 읽어온다.\n */\n if (debugMode) {\n console.log('debugMode token setting!');\n\n return this.getAuthorizationFromCookie();\n }\n\n if (this.isApp()) {\n return await this.getAuthorizationFromBridge();\n } else {\n /**\n * DSP 앱 외에는 쿠키 참조\n */\n return this.getAuthorizationFromCookie();\n }\n }\n\n /**\n * RT를 이용하여 신규 AT/RT발행\n * 기존토큰은 무효화처리\n * 쿠키에 저장.\n */\n async refreshToken(): Promise<void> {\n if (!this.isApp()) {\n // 신규 앱 외에는 내부 api 호출로 토큰 갱신\n const httpClient = new HttpClientAxios({});\n\n await httpClient.api.post(`${getServiceCode()}/internal/api/auth/refresh`);\n\n // 영업 포털 환경일 경우 세션연장 이벤트 발생(to 부모)\n if (getDspExecutionEnvironment() === 'iframe') {\n Bridge.iframe.dspKeepCallerSession();\n }\n }\n }\n}\n","import { HttpClientAxios } from '../../client';\n\nimport type { TestResponse } from './sample.dto';\nimport type { AxiosRequestConfig } from 'axios';\n\ninterface TestRequest {\n id?: number;\n config?: AxiosRequestConfig;\n setupFn?: (httpClient: HttpClientAxios) => void;\n}\nexport const getTestMethod = async ({ id, config, setupFn }: TestRequest) => {\n const testAPI = `https://jsonplaceholder.typicode.com/users/${id}`;\n\n const httpClient = new HttpClientAxios(config);\n\n const res = await httpClient.api.get<TestResponse>(testAPI);\n\n return res.data;\n};\n","import { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport type { AddressListRequestDto, DspResponseAddressListResponseDto } from './address-search.dto';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const getAddressListMethod = async (params: AddressListRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/address-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseAddressListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getAddressListMethod } from './address-search.service';\n\nimport type { AddressListRequestDto, DspResponseAddressListResponseDto } from './address-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchAddressQuery = (\n params: AddressListRequestDto,\n options?: CustomQueryOptions<DspResponseAddressListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.searchKeyWord,\n retry: false,\n queryKey: ['searchAddress', JSON.stringify(params)],\n queryFn: () => {\n return getAddressListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport type { AddressPostalCodeRequestDto, DspResponseAddressPostalCodeResponseDto } from './postal-code.dto';\n\nexport const getAddressPostalCodeMethod = async (params: AddressPostalCodeRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/address/postal-code`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseAddressPostalCodeResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getAddressPostalCodeMethod } from './postal-code.service';\n\nimport type { AddressPostalCodeRequestDto, DspResponseAddressPostalCodeResponseDto } from './postal-code.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchPostalCodeQuery = (\n params: AddressPostalCodeRequestDto,\n options?: CustomQueryOptions<DspResponseAddressPostalCodeResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.searchWordName,\n retry: false,\n queryKey: ['searchPostalCode', JSON.stringify(params)],\n queryFn: () => {\n return getAddressPostalCodeMethod(params, config);\n },\n ...options\n });\n};\n","import { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport type {\n AddressStandardizationListRequestDto,\n DspResponseAddressStandardizationListResponseDto\n} from './address-standardization.dto';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const getAddressStandardizationListMethod = async (\n params: AddressStandardizationListRequestDto,\n config?: AxiosRequestConfig\n) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/address-standardization-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseAddressStandardizationListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getAddressStandardizationListMethod } from './address-standardization.service';\n\nimport type {\n AddressStandardizationListRequestDto,\n DspResponseAddressStandardizationListResponseDto\n} from './address-standardization.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchAddressStandardizationQuery = (\n params: AddressStandardizationListRequestDto,\n options?: CustomQueryOptions<DspResponseAddressStandardizationListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.baseAddress,\n retry: false,\n queryKey: ['searchAddressStandardization', JSON.stringify(params)],\n queryFn: () => {\n return getAddressStandardizationListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport type {\n DspResponseOccupationDetailResponseDto,\n DspResponseOccupationListResponseDto,\n OccupationDetailRequestDto,\n OccupationListRequestDto\n} from './occupation-search.dto';\n\n/**\n * @description 직종 목록 조회\n */\nexport const getOccupationListMethod = async (params: OccupationListRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/occupation-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseOccupationListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n\n/**\n * @description 직종 상세 조회\n */\nexport const getOccupationDetailMethod = async (params: OccupationDetailRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/occupation/detail`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseOccupationDetailResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getOccupationDetailMethod, getOccupationListMethod } from './occupation-search.service';\n\nimport type {\n DspResponseOccupationDetailResponseDto,\n DspResponseOccupationListResponseDto,\n OccupationDetailRequestDto,\n OccupationListRequestDto\n} from './occupation-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\n/**\n * @description 직종 목록 조회 쿼리\n */\nexport const useSearchOccupationQuery = (\n params: OccupationListRequestDto,\n options?: CustomQueryOptions<DspResponseOccupationListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: true,\n retry: false,\n queryKey: ['searchOccupationList', JSON.stringify(params)],\n queryFn: () => {\n return getOccupationListMethod(params, config);\n },\n ...options\n });\n};\n\n/**\n * @description 직종 상세 조회 쿼리\n */\nexport const useSearchOccupationDetailQuery = (\n params: OccupationDetailRequestDto,\n options?: CustomQueryOptions<DspResponseOccupationDetailResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: true,\n retry: false,\n queryKey: ['searchOccupationDetail', JSON.stringify(params)],\n queryFn: () => {\n return getOccupationDetailMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport type { DspResponseVehicleTypeListResponseDto } from './vehicle-search.dto';\n\nexport const getVehicleListMethod = async (config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/vehicle-type-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseVehicleTypeListResponseDto>(apiUrl);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getVehicleListMethod } from './vehicle-search.service';\n\nimport type { DspResponseVehicleTypeListResponseDto } from './vehicle-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchVehicleQuery = (\n options?: CustomQueryOptions<DspResponseVehicleTypeListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: true,\n retry: false,\n queryKey: ['searchVehicle'],\n queryFn: () => {\n return getVehicleListMethod(config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport type { DspResponseEmployeeProfileResponseDto, EmployeeProfileSearchRequestDto } from './employee-search.dto';\n\nexport const getEmployeeProfileListMethod = async (\n params: EmployeeProfileSearchRequestDto,\n config?: AxiosRequestConfig\n) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dea/v1/get/participant/profile/employee`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseEmployeeProfileResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getEmployeeProfileListMethod } from './employee-search.service';\n\nimport type { DspResponseEmployeeProfileResponseDto, EmployeeProfileSearchRequestDto } from './employee-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchEmployeeProfileQuery = (\n params: EmployeeProfileSearchRequestDto,\n options?: CustomQueryOptions<DspResponseEmployeeProfileResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.searchWord,\n retry: false,\n queryKey: ['searchEmployeeProfile', JSON.stringify(params)],\n queryFn: () => {\n return getEmployeeProfileListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport type { DspResponseOrganizationProfileResponse, OrganizationSearchRequestDto } from './organization-search.dto';\n\nexport const getOrganizationProfileListMethod = async (\n params: OrganizationSearchRequestDto,\n config?: AxiosRequestConfig\n) => {\n const serviceCode = getServiceCode();\n ///v1/get/participant/profile/organization\n const apiUrl = `${serviceCode}/api/dea/v1/get/participant/profile/organization`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseOrganizationProfileResponse>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getOrganizationProfileListMethod } from './organization-search.service';\n\nimport type { DspResponseOrganizationProfileResponse, OrganizationSearchRequestDto } from './organization-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchOrganizationQuery = (\n params: OrganizationSearchRequestDto,\n options?: CustomQueryOptions<DspResponseOrganizationProfileResponse>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.searchWord,\n retry: false,\n queryKey: ['searchOrganization', JSON.stringify(params)],\n queryFn: () => {\n return getOrganizationProfileListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport type { DspResponseNationalityListResponseDto, NationalitySearchRequestDto } from './nationality-search.dto';\n\nexport const getNationalityListMethod = async (params: NationalitySearchRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/nationality-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseNationalityListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getNationalityListMethod } from './nationality-search.service';\n\nimport type { DspResponseNationalityListResponseDto, NationalitySearchRequestDto } from './nationality-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchNationalityQuery = (\n params: NationalitySearchRequestDto,\n options?: CustomQueryOptions<DspResponseNationalityListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n console.log('search nationality', params.searchKeyWord);\n\n return useQuery({\n enabled: !!params.searchKeyWord,\n retry: false,\n queryKey: ['searchNationality', JSON.stringify(params)],\n queryFn: () => {\n return getNationalityListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport type { CustomerListRequestDto, DspResponseCustomerListResponseDto } from './customer-list-search.dto';\n\nexport const getCustomerListMethod = async (params: CustomerListRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/customer-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseCustomerListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getCustomerListMethod } from './customer-list-search.service';\n\nimport type { CustomerListRequestDto, DspResponseCustomerListResponseDto } from './customer-list-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchCustomerListQuery = (\n params: CustomerListRequestDto,\n options?: CustomQueryOptions<DspResponseCustomerListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.customerName,\n retry: false,\n queryKey: ['searchCustomerList', JSON.stringify(params)],\n queryFn: () => {\n return getCustomerListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport type { DspResponseRiskGradeResponseDto, RiskGradeRequestDto } from './risk-grade-search.dto';\n\nexport const getRiskGradeMethod = async (params: RiskGradeRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/risk-grade`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseRiskGradeResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getRiskGradeMethod } from './risk-grade-search.service';\n\nimport type { DspResponseRiskGradeResponseDto, RiskGradeRequestDto } from './risk-grade-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchRiskGradeQuery = (\n params: RiskGradeRequestDto,\n options?: CustomQueryOptions<DspResponseRiskGradeResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.occupationIndustryCode && !!params.vehicleTypeCode,\n retry: false,\n queryKey: ['searchRiskGrade', JSON.stringify(params)],\n queryFn: () => {\n return getRiskGradeMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport type {\n DspResponseListPersonalCustomerProfileResponseDto,\n PersonalCustomerProfileRequestDto\n} from './dea-customer-list-search.dto';\n\nexport const getDspCustomerListMethod = async (\n params: PersonalCustomerProfileRequestDto,\n config?: AxiosRequestConfig\n) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dea/v1/get/participant/profile/customer/personal`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseListPersonalCustomerProfileResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getDspCustomerListMethod } from './dea-customer-list-search.service';\n\nimport type {\n DspResponseListPersonalCustomerProfileResponseDto,\n PersonalCustomerProfileRequestDto\n} from './dea-customer-list-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchDspCustomerListQuery = (\n params: PersonalCustomerProfileRequestDto,\n options?: CustomQueryOptions<DspResponseListPersonalCustomerProfileResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.customerName,\n retry: false,\n queryKey: ['searchDspCustomerList', JSON.stringify(params)],\n queryFn: () => {\n return getDspCustomerListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport type { DspResponseVisaStatusListResponseDto } from './visa-search.dto';\n\nexport const getVisaListMethod = async (config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/visa-status-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseVisaStatusListResponseDto>(apiUrl);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getVisaListMethod } from './visa-search.service';\n\nimport type { DspResponseVisaStatusListResponseDto } from './visa-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchVisaQuery = (\n options?: CustomQueryOptions<DspResponseVisaStatusListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: true,\n retry: false,\n queryKey: ['searchVisa'],\n queryFn: () => {\n return getVisaListMethod(config);\n },\n ...options\n });\n};\n","import { HttpClientAxios } from '../../client';\n\nimport { FpLoginResponseDto } from './login-dsp.dto';\n\n/**\n * @param userId 사번\n */\nexport const postLoginMethod = async (userId: number) => {\n console.log('userId', userId);\n const apiUrl = '/api/dat/v1/post/login';\n const httpClient = new HttpClientAxios({\n headers: {\n 'Debug-Refresh-Queue-Off': 'true'\n }\n });\n\n const res = await httpClient.api.post<FpLoginResponseDto>(apiUrl, {\n userId,\n channelType: 'DSP_TABLET'\n });\n\n return res.data;\n};\n","import { HttpClientAxios } from '../../client';\nimport { getServiceCode } from '../method-util';\n\nimport type { ApiConfig } from '../shared.dto';\nimport type {\n RemoteIdentityVerificationSystemTokenRequestDto,\n DspResponseRemoteIdentityVerificationSystemTokenResponseDto,\n RemoteIdentityVerificationSystemIdentificationCardRequestDto,\n DspResponseRemoteIdentityVerificationSystemIdentificationCardResponseDto\n} from './remote-identity-verification.dto';\n\n/**\n * 토큰 발급 API\n * @param params\n * @param axiosConfig\n * @returns\n */\nexport const getRemoteIdentityVerificationSystemToken = async (\n params: RemoteIdentityVerificationSystemTokenRequestDto,\n axiosConfig?: ApiConfig\n) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dea/v1/post/participant/remote-identity-verification-system/token`;\n\n const response = await new HttpClientAxios({\n ...axiosConfig\n }).api.post<DspResponseRemoteIdentityVerificationSystemTokenResponseDto>(apiUrl, params);\n\n return response.data;\n};\n\n/**\n * 비대면 인증 시스템 신분증 진위확인 API\n * @param params 진위확인 요청 파라미터\n * @param axiosConfig API 설정\n * @returns 신분증 진위확인 응답 데이터\n */\nexport const confirmRemoteIdentityVerificationSystemIdentificationCard = async (\n params: RemoteIdentityVerificationSystemIdentificationCardRequestDto,\n axiosConfig?: ApiConfig\n) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dea/v1/post/participant/remote-identity-verification-system/identification-card/confirm`;\n\n const response = await new HttpClientAxios({\n ...axiosConfig\n }).api.post<DspResponseRemoteIdentityVerificationSystemIdentificationCardResponseDto>(apiUrl, params);\n\n return response.data;\n};\n","import { useMutation } from '@tanstack/react-query';\n\nimport { CustomMutationOptions } from '../method.types';\n\nimport {\n RemoteIdentityVerificationSystemIdentificationCardResponseDto,\n RemoteIdentityVerificationSystemIdentificationCardRequestDto\n} from './remote-identity-verification.dto';\nimport { confirmRemoteIdentityVerificationSystemIdentificationCard } from './remote-identity-verification.service';\n\n/**\n * 비대면 인증 시스템 신분증 진위확인 Mutation\n * @param options\n * @returns\n */\nexport const useConfirmRemoteIdentityVerificationSystemIdentificationCardMutation = (\n options?: CustomMutationOptions<\n RemoteIdentityVerificationSystemIdentificationCardResponseDto,\n RemoteIdentityVerificationSystemIdentificationCardRequestDto\n >\n) => {\n return useMutation({\n mutationKey: ['confirmRemoteIdentityVerificationSystemIdentificationCard'],\n mutationFn: async (params) => {\n const response = await confirmRemoteIdentityVerificationSystemIdentificationCard(params);\n\n if (response.isSuccess === false) {\n throw new Error(`${response.code}: ${response.message}`);\n }\n\n return response.data;\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../client';\nimport { getServiceCode } from '../method-util';\n\nimport type { CommonCodeRequestDto, DspResponseCommonCodeResponseDto } from './common-code-search.dto';\n\nexport const getCommonCodeListMethod = async (param: CommonCodeRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dea/v1/get/common-code/list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseCommonCodeResponseDto>(apiUrl, param);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { CustomQueryOptions } from '../method.types';\n\nimport { getCommonCodeListMethod } from './common-code-search.service';\n\nimport type { CommonCodeRequestDto, DspResponseCommonCodeResponseDto } from './common-code-search.dto';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchCommonCodeQuery = (\n param: CommonCodeRequestDto,\n options?: CustomQueryOptions<DspResponseCommonCodeResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!param.commonCodeId,\n retry: false,\n queryKey: ['searchCommonCode', param.commonCodeId],\n queryFn: () => {\n return getCommonCodeListMethod(param, config);\n },\n ...options\n });\n};\n","import { HttpClientAxios } from '../../client';\nimport { getServiceCode } from '../method-util';\n\nimport type { ApiConfig } from '../shared.dto';\nimport type { DspResponseUserProfileResponseDto } from './app-config.dto';\n\n/**\n * FP 기본 정보를 조회합니다.\n * @param axiosConfig\n * @returns\n */\nexport const getUserProfile = async (axiosConfig?: ApiConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dat/v1/get/user/profile`;\n\n const response = await new HttpClientAxios({\n ...axiosConfig\n }).api.post<DspResponseUserProfileResponseDto>(apiUrl);\n\n return response.data;\n};\n","import { getDudApiHostNameFromEnvironment, getExt } from 'sales-frontend-utils';\n\nimport { HttpClientAxios } from '../../client';\nimport { getServiceCode } from '../method-util';\n\nimport type {\n DownloadType,\n FileUploadExternalRequestDto,\n FileUploadExternalResponseDto\n} from './dud-external-file.dto';\nimport type { AxiosRequestConfig } from 'axios';\n\nconst getDayDiffFromToday = (date: Date) => {\n const diff = date.getTime() - new Date().getTime();\n\n return Math.floor(diff / (1000 * 60 * 60 * 24));\n};\n\nexport const postFileUploadMethod = async (params: FileUploadExternalRequestDto, config?: AxiosRequestConfig) => {\n const apiUrl = `${getDudApiHostNameFromEnvironment(getServiceCode(), location.hostname)}/v1/post/file`;\n const formData = new FormData();\n\n if (params.data instanceof File) {\n formData.append('data', params.data, params.name || params.data.name);\n } else if (params.data instanceof Blob) {\n formData.append('data', params.data, params.name || `dud-file.${getExt(params.data)}`);\n }\n\n params.fileIdentifierValue && formData.append('fileIdentifierValue', params.fileIdentifierValue);\n params.fileExtendContent1 && formData.append('fileExtendContent1', params.fileExtendContent1);\n params.fileExtendContent2 && formData.append('fileExtendContent2', params.fileExtendContent2);\n\n /**\n * expireDate , preservationTerm 중에 1가지만\n */\n params.expireDate &&\n formData.append('preservationTerm', (getDayDiffFromToday(params.expireDate) + 1).toString() || '1');\n params.preservationTerm && formData.append('preservationTerm', params.preservationTerm.toString() || '1');\n\n /**\n * 파일/blot객체에서 자동추출하도록 수정\n */\n formData.append('fileType', params.fileType || params.data.type.split('/').pop() || 'png');\n\n const httpClient = new HttpClientAxios(config);\n\n /**\n *\n * \"isSuccess\": true,\n * \"code\": \"nxl-dsp-dud-erro-5801\",\n * \"message\": \"파일 업로드 가능 확장자는 <br/>ozd, png, jpg, gif, pdf, json, xml, txt 입니다.\"\n *\n * @description \"isSuccess\": true, 이지만 실패처리인 케이스에 대한 별도 interceptor 처리가 필요\n */\n httpClient.api.interceptors.response.use((response) => {\n const { data } = response;\n\n if (data.isSuccess === true && data.code.includes('erro')) {\n return Promise.reject(response);\n }\n\n return response;\n });\n\n const res = await httpClient.api.post<FileUploadExternalResponseDto>(apiUrl, formData);\n\n return res.data;\n};\n\nexport async function postFileDownloadMethod<T extends 'BASE64' | 'BINARY'>(\n params: { fileMgmtId: string; outputType: T },\n config?: AxiosRequestConfig\n) {\n const apiUrl = `${getServiceCode()}/api/dud/v1/get/file`;\n\n const httpClient = new HttpClientAxios({\n ...config,\n ...(params.outputType === 'BINARY' && { responseType: 'blob' })\n });\n httpClient.api.interceptors.response.use((response) => {\n const { data } = response;\n\n if (params.outputType === 'BINARY' && !(data instanceof Blob)) {\n return Promise.reject(response);\n }\n\n if (params.outputType === 'BASE64' && data.code.includes('erro')) {\n return Promise.reject(response);\n }\n\n return response;\n });\n\n /**\n * FileExternalRequestDto 의 outputType 에 따라 returnType이 상이\n * outputType = 'BASE64' 이면 returnType 이 FileExternalResponseDto\n * outputType = 'BINARY' 이면 File\n */\n const res = await httpClient.api.post<DownloadType<T>>(apiUrl, params);\n\n return res.data;\n}\n","import { useMutation, useQuery } from '@tanstack/react-query';\n\nimport { postFileDownloadMethod, postFileUploadMethod } from './dud-external-file.service';\n\nimport type { CustomMutationOptions, CustomQueryOptions } from '../method.types';\nimport type {\n DownloadType,\n FileUploadExternalRequestDto,\n FileUploadExternalResponseDto\n} from './dud-external-file.dto';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useDudExternalFileUploadQuery = (\n params: FileUploadExternalRequestDto,\n options?: CustomQueryOptions<FileUploadExternalResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params,\n retry: false,\n queryKey: ['postFileUploadMethod', JSON.stringify(params)],\n queryFn: () => {\n return postFileUploadMethod(params, config);\n },\n ...options\n });\n};\n\nexport const useDudExternalFileUploadMutation = (\n options?: CustomMutationOptions<FileUploadExternalResponseDto, FileUploadExternalRequestDto>,\n config?: AxiosRequestConfig\n) => {\n return useMutation({\n mutationFn: (params: FileUploadExternalRequestDto) => postFileUploadMethod(params, config),\n ...options\n });\n};\n\nexport const useDudExternalFileDownloadQuery = <T extends 'BASE64' | 'BINARY'>(\n params: {\n fileMgmtId: string;\n outputType: T;\n },\n options?: CustomQueryOptions<DownloadType<T>>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params,\n retry: false,\n queryKey: ['postFileDownloadMethod', JSON.stringify(params)],\n queryFn: () => postFileDownloadMethod(params, config),\n ...options\n });\n};\n"]}
1
+ {"version":3,"sources":["../src/http-methods/method-util.ts","../src/http-client/cookie/cookie-client.ts","../src/http-client/header/header.types.ts","../src/http-client/header/header-manager.ts","../src/http-client/axios/http-client-axios.ts","../src/http-client/auth/auth-client.ts","../src/http-methods/sample/sample.service.ts","../src/http-methods/search-modal/address/address-search.service.ts","../src/http-methods/search-modal/address/use-search-address-query.ts","../src/http-methods/search-modal/address/postal-code.service.ts","../src/http-methods/search-modal/address/use-search-postal-code-query.ts","../src/http-methods/search-modal/address/address-standardization.service.ts","../src/http-methods/search-modal/address/use-search-address-standardization-query.ts","../src/http-methods/search-modal/occupation/occupation-search.service.ts","../src/http-methods/search-modal/occupation/use-search-occupation-query.ts","../src/http-methods/search-modal/vehicle/vehicle-search.service.ts","../src/http-methods/search-modal/vehicle/use-search-vehicle-query.ts","../src/http-methods/search-modal/employee/employee-search.service.ts","../src/http-methods/search-modal/employee/use-search-employee-profile-query.ts","../src/http-methods/search-modal/organization/organization-search.service.ts","../src/http-methods/search-modal/organization/use-search-organization-query.ts","../src/http-methods/search-modal/nationality/nationality-search.service.ts","../src/http-methods/search-modal/nationality/use-search-nationality-query.ts","../src/http-methods/search-modal/customer-list/customer-list-search.service.ts","../src/http-methods/search-modal/customer-list/use-search-customer-list-query.ts","../src/http-methods/search-modal/risk-grade/risk-grade-search.service.ts","../src/http-methods/search-modal/risk-grade/use-search-risk-grade-query.ts","../src/http-methods/search-modal/dea-customer-list/dea-customer-list-search.service.ts","../src/http-methods/search-modal/dea-customer-list/use-search-dea-customer-list-query.ts","../src/http-methods/search-modal/visa/visa-search.service.ts","../src/http-methods/search-modal/visa/use-search-visa-query.ts","../src/http-methods/fp-login/login-dsp.service.ts","../src/http-methods/remote-identity-verification/remote-identity-verification.service.ts","../src/http-methods/remote-identity-verification/use-remote-identity-verification-query.tsx","../src/http-methods/common-code/common-code-search.service.ts","../src/http-methods/common-code/use-search-common-code-query.ts","../src/http-methods/app-config/app-config.service.ts","../src/http-methods/dud-external-file/dud-external-file.service.ts","../src/http-methods/dud-external-file/use-dud-external-file-query.ts"],"names":["config","error","getDspApiHostNameFromEnvironment","useQuery","useMutation"],"mappings":"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","file":"method.js","sourcesContent":["export const getServiceCode = () => {\n // @ts-ignore\n if (typeof window.isStorybookEnv === 'boolean') {\n return '';\n } else {\n return `/${location.pathname.split('/')[1]}`;\n }\n};\n","/**\n * 클라이언트용 쿠키 함수\n */\nexport const cookieClient = {\n getCookie(name: string): string {\n if (typeof document === 'undefined') {\n return '';\n }\n const match = document.cookie.match(new RegExp(`(^|; *)${name}=([^;]*)`));\n\n return match ? decodeURIComponent(match[2] || '') : '';\n },\n\n setCookie(\n name: string,\n value: string,\n options: {\n expires?: number | Date; // number of days\n path?: string;\n domain?: string;\n secure?: boolean;\n } = {}\n ): void {\n if (typeof document === 'undefined') {\n return;\n }\n\n let cookieString = `${name}=${encodeURIComponent(value)}`;\n\n if (options.expires) {\n let expiresDate: Date;\n if (typeof options.expires === 'number') {\n expiresDate = new Date();\n expiresDate.setDate(expiresDate.getDate() + options.expires);\n } else {\n expiresDate = options.expires;\n }\n cookieString += `; expires=${expiresDate.toUTCString()}`;\n }\n\n cookieString += `; path=${options.path || '/'}`;\n\n if (options.domain) {\n cookieString += `; domain=${options.domain}`;\n }\n\n if (options.secure) {\n cookieString += '; secure';\n }\n\n document.cookie = cookieString;\n },\n deleteCookie(name: string, options: { path?: string; domain?: string } = {}): void {\n cookieClient.setCookie(name, '', { ...options, expires: -1 });\n }\n};\n","/**\n * @see https://loop.cloud.microsoft/p/eyJ3Ijp7InUiOiJodHRwczovL2hhbndoYWxpZmVtMzY1LnNoYXJlcG9pbnQuY29tLz9uYXY9Y3owbE1rWW1aRDFpSVVVd1FXdDJSbGhSV0VWUE1tUkNYMWhUZW5KWVVFdFBSVXByYWs1b1NrSlBjRk4wYm5wNmNsWmpMVUZ5YjI1UlJWOVdSREpUV25aeWVUUTJTV2swUlZrbVpqMHdNVk5OVGtkR1JsTkJXVE0xVVZaQ1ZrRkVRa1ZaVEVoRVNUSTBXRXhVVlZoV0ptTTlKbVpzZFdsa1BURSUzRCIsInIiOmZhbHNlfSwicCI6eyJ1IjoiaHR0cHM6Ly9oYW53aGFsaWZlbTM2NS5zaGFyZXBvaW50LmNvbS9jb250ZW50c3RvcmFnZS9DU1BfYmMyNDQwMTMtZDA1NS00MzVjLWI2NzQtMWZkNzRiM2FkNzNjLyVFQiVBQyVCOCVFQyU4NCU5QyUyMCVFQiU5RCVCQyVFQyU5RCVCNCVFQiVCOCU4QyVFQiU5RiVBQyVFQiVBNiVBQy9Mb29wQXBwRGF0YS8wOS0yLiUyMEJyaWRnZSUyMFNwZWMlMjAxLmxvb3A%2FbmF2PWN6MGxNa1pqYjI1MFpXNTBjM1J2Y21GblpTVXlSa05UVUY5aVl6STBOREF4TXkxa01EVTFMVFF6TldNdFlqWTNOQzB4Wm1RM05HSXpZV1EzTTJNbVpEMWlJVVV3UVd0MlJsaFJXRVZQTW1SQ1gxaFRlbkpZVUV0UFJVcHJhazVvU2tKUGNGTjBibnA2Y2xaakxVRnliMjVSUlY5V1JESlRXblp5ZVRRMlNXazBSVmttWmowd01WTk5Ua2RHUmxGRlYxTlFOelpMUWtsTFdrWkpXVUUzU1ZkWldGTklWa0ZUSm1NOUpUSkdKbVpzZFdsa1BURSUzRCIsInIiOmZhbHNlfSwiaSI6eyJpIjoiNTdkZmVhM2QtZDA2Yi00YWRlLWIxZjEtYjE4NDA4MmNlN2VjIn19\n */\nexport const customHeaderNames = [\n 'Accept-Language',\n 'DeviceId',\n 'LoginType',\n 'PlatformName',\n 'PlatformVersion',\n 'AppVersion',\n 'DeviceModel',\n 'FormFactor',\n 'LoginChannel'\n];\n\nexport const AT = 'AT';\nexport type GetterSync = (keyName: string) => string;\nexport type SetterSync = (keyName: string, value: string) => void;\n\nexport type GetterAsync = (keyName: string) => Promise<string> | string;\nexport type SetterAsync = (keyName: string, value: string) => Promise<void> | void;\n","import { AT, customHeaderNames, GetterSync, SetterSync } from './header.types';\n\nexport class HeaderManager {\n private getter: GetterSync;\n private setter: SetterSync;\n\n constructor(getter: GetterSync, setter: SetterSync) {\n this.getter = getter;\n this.setter = setter;\n }\n\n /**\n * 커스텀 헤더를 동기적으로 설정합니다.\n */\n setCustomHeaders(): void {\n customHeaderNames.forEach((headerName) => {\n const customHeaderKey = `X-Channel-${headerName}`;\n const headerValue = this.getter(customHeaderKey);\n if (headerValue) {\n this.setter(customHeaderKey, headerValue);\n }\n });\n }\n\n /**\n * 인증 토큰을 동기적으로 설정합니다.\n */\n setAuthToken(): void {\n const token = this.getter(AT);\n if (token) {\n this.setter('Authorization', `Bearer ${token}`);\n }\n }\n\n /**\n * 모든 헤더를 동기적으로 설정합니다.\n */\n setAllHeaders(): void {\n this.setCustomHeaders();\n this.setAuthToken();\n }\n}\n","import axios from 'axios';\nimport { addErrorLog, addRequestLog, addResponseLog } from 'sales-frontend-debug';\nimport { useClientSessionStore } from 'sales-frontend-stores';\n\nimport { AuthClient } from '../auth/auth-client';\nimport { cookieClient } from '../cookie/cookie-client';\nimport { HeaderManager } from '../header/header-manager';\n\nimport type { AxiosQueueType } from './types';\nimport type { AxiosError, AxiosResponse, AxiosInstance, AxiosRequestConfig } from 'axios';\nlet isRefreshed = true;\nconst axiosQueue: AxiosQueueType[] = [];\n\n/**\n * 쿠키에서 값을 가져오고, 없으면 기본값을 쿠키에 설정 후 반환하는 헬퍼 함수\n * @param key 쿠키 키\n * @param defaultValue 쿠키 값이 없을 때 사용할 기본값\n * @returns 쿠키 값 또는 기본값\n */\nconst getOrSetCookie = (key: string, defaultValue: string): string => {\n let value = cookieClient.getCookie(key);\n if (!value) {\n value = defaultValue;\n cookieClient.setCookie(key, value, { path: '/' });\n }\n\n return value;\n};\n\n/**\n * 전자청약\n * CSR용 http-client 입니다.\n * cookie , redirect , tokem 처리 방식은 CSR 환경에 맞게 구현됩니다.\n */\nexport class HttpClientAxios {\n config: AxiosRequestConfig;\n headerManager: HeaderManager;\n\n /**\n * axios의 request interceptor 동작시, 헤더에 주입될 헤더의 key,value\n */\n headers: Record<string, string> = {};\n\n /**\n * api연동을 수행할 실제 객체(axios, fetch 등의 다른 라이브러리로 교체가능한 영역)\n * 현재 버전에서는 axios를 사용하여 구현됨.\n */\n api: AxiosInstance;\n constructor(config: AxiosRequestConfig = {}) {\n this.config = config;\n\n /**\n * 헤더매니저 셋팅\n */\n const getter: HeaderManager['getter'] = (key) => {\n return cookieClient.getCookie(key);\n };\n const setter: HeaderManager['setter'] = (key, value) => {\n if (config?.headers) {\n config.headers[key] = value;\n }\n };\n this.headerManager = new HeaderManager(getter, setter);\n\n /**\n * api수행객체 최초 생성,\n * 공통으로 적용할 설정값이 있는경우 셋팅\n */\n this.api = axios.create({\n withCredentials: true,\n ...config\n });\n\n /**\n * 인터셉터 요청 처리\n */\n this.api.interceptors.request.use(\n async (config) => {\n const debugMode = cookieClient.getCookie('dsp-debug-mode') === 'on';\n\n /** 디버깅용 로그 */\n await addRequestLog(config);\n\n const debugRefreshQueueOff = config.headers?.['Debug-Refresh-Queue-Off'] === 'true';\n if (debugRefreshQueueOff) {\n isRefreshed = true;\n }\n\n /**\n * AT토큰 주입\n */\n const authClient = new AuthClient();\n const authorization = await authClient.getAT();\n console.log('authorization', authorization);\n if (authorization) {\n config.headers['Authorization'] = authorization;\n }\n\n if (debugMode) {\n console.log('debugMode header setting!');\n /**\n * 주소가 debugMode 경우 테스트용 헤더 삽입\n */\n config.headers['x-channel-appversion'] = getOrSetCookie('x-channel-appversion', '3.1');\n config.headers['x-channel-deviceid'] = getOrSetCookie('x-channel-deviceid', 'deviceid');\n config.headers['x-channel-devicemodel'] = getOrSetCookie('x-channel-devicemodel', 'iPHONE13');\n config.headers['x-channel-formfactor'] = getOrSetCookie('x-channel-formfactor', 'Phone');\n config.headers['x-channel-loginchannel'] = getOrSetCookie('x-channel-loginchannel', 'DSP');\n config.headers['x-channel-logintype'] = getOrSetCookie('x-channel-logintype', 'ONPA_PIN');\n config.headers['x-channel-platformname'] = getOrSetCookie('x-channel-platformname', 'IOS');\n config.headers['x-channel-platformversion'] = getOrSetCookie('x-channel-platformversion', '15.4.1');\n config.headers['x-channel-screenid'] = getOrSetCookie('x-channel-screenid', location.pathname);\n config.headers['x-channel-business-work-division-code'] = getOrSetCookie(\n 'x-channel-business-work-division-code',\n 'DEA'\n );\n } else {\n const session = useClientSessionStore.getState().clientSession;\n\n config.headers['x-channel-appversion'] = session.appVersion;\n config.headers['x-channel-deviceid'] = session.deviceId;\n config.headers['x-channel-devicemodel'] = session.deviceModel;\n config.headers['x-channel-formfactor'] = session.formFactor;\n config.headers['x-channel-loginchannel'] = session.loginChannel;\n config.headers['x-channel-logintype'] = session.loginType;\n config.headers['x-channel-platformname'] = session.platformName;\n config.headers['x-channel-platformversion'] = session.platformVersion;\n config.headers['x-channel-screenid'] = location.pathname;\n config.headers['x-channel-business-work-division-code'] = session.businessWorkDivisionCode;\n }\n\n /**\n * 커스텀헤더 주입\n */\n // this.headerManager.setCustomHeaders();\n /**\n *\n * this.headers설정된 값을 config headers에 주입\n */\n const headerEntries = Object.entries(this.headers);\n headerEntries.forEach(([key, value]) => {\n if (config?.headers) {\n config.headers[key] = value;\n }\n });\n\n /**\n * isRefreshed가 false이면(= 에러발생하여 token재발행중을 의미)\n * 새로운 요청들을 처리하지 않고,큐에 저장\n * 401에러 Queue처리 Request interceptor 등록\n */\n if (!isRefreshed) {\n return new Promise((resolve, reject) => {\n axiosQueue.push({ resolve, reject, config });\n }).then(() => config);\n }\n\n return config;\n },\n (error) => {\n return Promise.reject(error);\n }\n );\n\n /**\n * 인터셉터 응답 처리\n */\n this.api.interceptors.response.use(\n async (response: AxiosResponse) => {\n /** 디버깅용 로그 */\n await addResponseLog(response);\n if (response.data.isSuccess === false) {\n /**\n * 200 응답이라도 , isSuccess === false인 경우 에러로 reject\n */\n return Promise.reject(response);\n }\n\n return response;\n },\n async (error: AxiosError) => {\n /** 디버깅용 로그 */\n await addErrorLog(error);\n\n const originalRequest = error.config;\n const debugRefreshQueueOff = config.headers?.['Debug-Refresh-Queue-Off'] === 'true';\n /**\n * 401에러 Queue처리\n */\n if (error.response?.status === 401 && !debugRefreshQueueOff) {\n isRefreshed = false;\n const client = new AuthClient();\n client\n .refreshToken()\n .then(() => {\n /**\n * 토큰 갱신 성공, 플래그를 true로 설정\n */\n isRefreshed = true;\n\n /**\n * 큐에 쌓여있던 모든 요청 재시도\n */\n while (axiosQueue.length > 0) {\n const p = axiosQueue.shift(); // axiosQueue에서 첫 번째 요소를 제거하고 반환합니다.\n if (p) {\n /**\n * api 인스턴스를 통해 요청을 재시도합니다. 따라서 재요청들은 다시 인터셉터를 타게 됩니다.\n * 신규토큰을 주입받고 정상처리\n * @todo 재시도후 reject시에는 로그인페이지로 보내는 브릿지 함수를 호출하도록 처리가 필요해보임.\n *\n * @note 11/07 : 무한루프이슈 해결을 위해 , 새로운 인스턴스를 사용하도록 수정\n */\n axios(p.config)\n .then((response) => p.resolve(response))\n .catch((err) => p.reject(err));\n }\n }\n })\n .catch((error) => {\n /**\n * 토큰 재발행중 에러 발생한 경우 처리\n * @todo 로그인페이지 이동(?)\n */\n return Promise.reject(error);\n });\n\n return new Promise((resolve, reject) => {\n if (originalRequest) {\n axiosQueue.push({ resolve, reject, config: originalRequest });\n }\n });\n } else {\n return Promise.reject(error);\n }\n }\n );\n }\n\n setHeaders(headers: Record<string, string>) {\n this.headers = {\n ...this.headers,\n ...headers\n };\n }\n}\n","import { Bridge } from 'sales-frontend-bridge';\nimport { isDspApp } from 'sales-frontend-utils';\nimport { getDspExecutionEnvironment } from 'sales-frontend-utils';\n\nimport { getServiceCode } from '../../http-methods/method-util';\nimport { HttpClientAxios } from '../axios/http-client-axios';\nimport { cookieClient } from '../cookie/cookie-client';\n\nexport class AuthClient {\n defaultTokenType = 'Bearer';\n /**\n * App인지 확인\n * @returns boolean\n */\n isApp() {\n return isDspApp();\n }\n\n getAuthorizationFromCookie() {\n const accessToken = cookieClient.getCookie('accessToken');\n\n return accessToken ? `${this.defaultTokenType} ${accessToken}` : undefined;\n }\n\n async getAuthorizationFromBridge() {\n const { tokenType, accessToken } = await Bridge.native.getAccessToken();\n\n return accessToken ? `${tokenType || this.defaultTokenType} ${accessToken}` : undefined;\n }\n\n /**\n *\n * @returns Promise<string | undefined>\n */\n async getAT(): Promise<string | undefined> {\n const debugMode = cookieClient.getCookie('dsp-debug-mode') === 'on';\n\n /**\n * debugMode 경우 cookie에서 'AT' 를 읽어온다.\n */\n if (debugMode) {\n console.log('debugMode token setting!');\n\n return this.getAuthorizationFromCookie();\n }\n\n if (this.isApp()) {\n return await this.getAuthorizationFromBridge();\n } else {\n /**\n * DSP 앱 외에는 쿠키 참조\n */\n return this.getAuthorizationFromCookie();\n }\n }\n\n /**\n * RT를 이용하여 신규 AT/RT발행\n * 기존토큰은 무효화처리\n * 쿠키에 저장.\n */\n async refreshToken(): Promise<void> {\n if (!this.isApp()) {\n // 신규 앱 외에는 내부 api 호출로 토큰 갱신\n const httpClient = new HttpClientAxios({});\n\n await httpClient.api.post(`${getServiceCode()}/internal/api/auth/refresh`);\n\n // 영업 포털 환경일 경우 세션연장 이벤트 발생(to 부모)\n if (getDspExecutionEnvironment() === 'iframe') {\n Bridge.iframe.dspKeepCallerSession();\n }\n }\n }\n}\n","import { HttpClientAxios } from '../../client';\n\nimport type { TestResponse } from './sample.dto';\nimport type { AxiosRequestConfig } from 'axios';\n\ninterface TestRequest {\n id?: number;\n config?: AxiosRequestConfig;\n setupFn?: (httpClient: HttpClientAxios) => void;\n}\nexport const getTestMethod = async ({ id, config, setupFn }: TestRequest) => {\n const testAPI = `https://jsonplaceholder.typicode.com/users/${id}`;\n\n const httpClient = new HttpClientAxios(config);\n\n const res = await httpClient.api.get<TestResponse>(testAPI);\n\n return res.data;\n};\n","import { getDspApiHostNameFromEnvironment } from 'sales-frontend-utils';\n\nimport { HttpClientAxios } from '../../../client';\n\nimport type { AddressListRequestDto, DspResponseAddressListResponseDto } from './address-search.dto';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const getAddressListMethod = async (params: AddressListRequestDto, config?: AxiosRequestConfig) => {\n const apiUrl = `${getDspApiHostNameFromEnvironment('dis')}/v1/get/codes/address-list`;\n const httpClient = new HttpClientAxios(config);\n\n const res = await httpClient.api.post<DspResponseAddressListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getAddressListMethod } from './address-search.service';\n\nimport type { AddressListRequestDto, DspResponseAddressListResponseDto } from './address-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchAddressQuery = (\n params: AddressListRequestDto,\n options?: CustomQueryOptions<DspResponseAddressListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.searchKeyWord,\n retry: false,\n queryKey: ['searchAddress', JSON.stringify(params)],\n queryFn: () => {\n return getAddressListMethod(params, config);\n },\n ...options\n });\n};\n","import { getDspApiHostNameFromEnvironment } from 'sales-frontend-utils';\n\nimport { HttpClientAxios } from '../../../client';\n\nimport type { AddressPostalCodeRequestDto, DspResponseAddressPostalCodeResponseDto } from './postal-code.dto';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const getAddressPostalCodeMethod = async (params: AddressPostalCodeRequestDto, config?: AxiosRequestConfig) => {\n const apiUrl = `${getDspApiHostNameFromEnvironment('dis')}/v1/get/codes/address/postal-code`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseAddressPostalCodeResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getAddressPostalCodeMethod } from './postal-code.service';\n\nimport type { AddressPostalCodeRequestDto, DspResponseAddressPostalCodeResponseDto } from './postal-code.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchPostalCodeQuery = (\n params: AddressPostalCodeRequestDto,\n options?: CustomQueryOptions<DspResponseAddressPostalCodeResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.searchWordName,\n retry: false,\n queryKey: ['searchPostalCode', JSON.stringify(params)],\n queryFn: () => {\n return getAddressPostalCodeMethod(params, config);\n },\n ...options\n });\n};\n","import { getDspApiHostNameFromEnvironment } from 'sales-frontend-utils';\n\nimport { HttpClientAxios } from '../../../client';\n\nimport type {\n AddressStandardizationListRequestDto,\n DspResponseAddressStandardizationListResponseDto\n} from './address-standardization.dto';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const getAddressStandardizationListMethod = async (\n params: AddressStandardizationListRequestDto,\n config?: AxiosRequestConfig\n) => {\n const apiUrl = `${getDspApiHostNameFromEnvironment('dis')}/v1/get/codes/address-standardization-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseAddressStandardizationListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getAddressStandardizationListMethod } from './address-standardization.service';\n\nimport type {\n AddressStandardizationListRequestDto,\n DspResponseAddressStandardizationListResponseDto\n} from './address-standardization.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchAddressStandardizationQuery = (\n params: AddressStandardizationListRequestDto,\n options?: CustomQueryOptions<DspResponseAddressStandardizationListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.baseAddress,\n retry: false,\n queryKey: ['searchAddressStandardization', JSON.stringify(params)],\n queryFn: () => {\n return getAddressStandardizationListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\nimport { getDspApiHostNameFromEnvironment } from 'sales-frontend-utils';\n\nimport { HttpClientAxios } from '../../../client';\n\nimport type {\n DspResponseOccupationDetailResponseDto,\n DspResponseOccupationListResponseDto,\n OccupationDetailRequestDto,\n OccupationListRequestDto\n} from './occupation-search.dto';\n\n/**\n * @description 직종 목록 조회\n */\nexport const getOccupationListMethod = async (params: OccupationListRequestDto, config?: AxiosRequestConfig) => {\n const apiUrl = `${getDspApiHostNameFromEnvironment('dis')}/v1/get/codes/occupation-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseOccupationListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n\n/**\n * @description 직종 상세 조회\n */\nexport const getOccupationDetailMethod = async (params: OccupationDetailRequestDto, config?: AxiosRequestConfig) => {\n const apiUrl = `${getDspApiHostNameFromEnvironment('dis')}/v1/get/codes/occupation/detail`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseOccupationDetailResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getOccupationDetailMethod, getOccupationListMethod } from './occupation-search.service';\n\nimport type {\n DspResponseOccupationDetailResponseDto,\n DspResponseOccupationListResponseDto,\n OccupationDetailRequestDto,\n OccupationListRequestDto\n} from './occupation-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\n/**\n * @description 직종 목록 조회 쿼리\n */\nexport const useSearchOccupationQuery = (\n params: OccupationListRequestDto,\n options?: CustomQueryOptions<DspResponseOccupationListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: true,\n retry: false,\n queryKey: ['searchOccupationList', JSON.stringify(params)],\n queryFn: () => {\n return getOccupationListMethod(params, config);\n },\n ...options\n });\n};\n\n/**\n * @description 직종 상세 조회 쿼리\n */\nexport const useSearchOccupationDetailQuery = (\n params: OccupationDetailRequestDto,\n options?: CustomQueryOptions<DspResponseOccupationDetailResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: true,\n retry: false,\n queryKey: ['searchOccupationDetail', JSON.stringify(params)],\n queryFn: () => {\n return getOccupationDetailMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\nimport { getDspApiHostNameFromEnvironment } from 'sales-frontend-utils';\n\nimport { HttpClientAxios } from '../../../client';\n\nimport type { DspResponseVehicleTypeListResponseDto } from './vehicle-search.dto';\n\nexport const getVehicleListMethod = async (config?: AxiosRequestConfig) => {\n const apiUrl = `${getDspApiHostNameFromEnvironment('dis')}/v1/get/codes/vehicle-type-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseVehicleTypeListResponseDto>(apiUrl);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getVehicleListMethod } from './vehicle-search.service';\n\nimport type { DspResponseVehicleTypeListResponseDto } from './vehicle-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchVehicleQuery = (\n options?: CustomQueryOptions<DspResponseVehicleTypeListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: true,\n retry: false,\n queryKey: ['searchVehicle'],\n queryFn: () => {\n return getVehicleListMethod(config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\nimport { getDspApiHostNameFromEnvironment } from 'sales-frontend-utils';\n\nimport { HttpClientAxios } from '../../../client';\n\nimport type { DspResponseEmployeeProfileResponseDto, EmployeeProfileSearchRequestDto } from './employee-search.dto';\n\nexport const getEmployeeProfileListMethod = async (\n params: EmployeeProfileSearchRequestDto,\n config?: AxiosRequestConfig\n) => {\n const apiUrl = `${getDspApiHostNameFromEnvironment('dea')}/v1/get/participant/profile/employee`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseEmployeeProfileResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getEmployeeProfileListMethod } from './employee-search.service';\n\nimport type { DspResponseEmployeeProfileResponseDto, EmployeeProfileSearchRequestDto } from './employee-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchEmployeeProfileQuery = (\n params: EmployeeProfileSearchRequestDto,\n options?: CustomQueryOptions<DspResponseEmployeeProfileResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.searchWord,\n retry: false,\n queryKey: ['searchEmployeeProfile', JSON.stringify(params)],\n queryFn: () => {\n return getEmployeeProfileListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\nimport { getDspApiHostNameFromEnvironment } from 'sales-frontend-utils';\n\nimport { HttpClientAxios } from '../../../client';\n\nimport type { DspResponseOrganizationProfileResponse, OrganizationSearchRequestDto } from './organization-search.dto';\n\nexport const getOrganizationProfileListMethod = async (\n params: OrganizationSearchRequestDto,\n config?: AxiosRequestConfig\n) => {\n const apiUrl = `${getDspApiHostNameFromEnvironment('dea')}/v1/get/participant/profile/organization`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseOrganizationProfileResponse>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getOrganizationProfileListMethod } from './organization-search.service';\n\nimport type { DspResponseOrganizationProfileResponse, OrganizationSearchRequestDto } from './organization-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchOrganizationQuery = (\n params: OrganizationSearchRequestDto,\n options?: CustomQueryOptions<DspResponseOrganizationProfileResponse>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.searchWord,\n retry: false,\n queryKey: ['searchOrganization', JSON.stringify(params)],\n queryFn: () => {\n return getOrganizationProfileListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\nimport { getDspApiHostNameFromEnvironment } from 'sales-frontend-utils';\n\nimport { HttpClientAxios } from '../../../client';\n\nimport type { DspResponseNationalityListResponseDto, NationalitySearchRequestDto } from './nationality-search.dto';\n\nexport const getNationalityListMethod = async (params: NationalitySearchRequestDto, config?: AxiosRequestConfig) => {\n const apiUrl = `${getDspApiHostNameFromEnvironment('dis')}/v1/get/codes/nationality-list`;\n\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseNationalityListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getNationalityListMethod } from './nationality-search.service';\n\nimport type { DspResponseNationalityListResponseDto, NationalitySearchRequestDto } from './nationality-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchNationalityQuery = (\n params: NationalitySearchRequestDto,\n options?: CustomQueryOptions<DspResponseNationalityListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n console.log('search nationality', params.searchKeyWord);\n\n return useQuery({\n enabled: !!params.searchKeyWord,\n retry: false,\n queryKey: ['searchNationality', JSON.stringify(params)],\n queryFn: () => {\n return getNationalityListMethod(params, config);\n },\n ...options\n });\n};\n","import { getDspApiHostNameFromEnvironment } from 'sales-frontend-utils';\n\nimport { HttpClientAxios } from '../../../client';\n\nimport type { CustomerListRequestDto, DspResponseCustomerListResponseDto } from './customer-list-search.dto';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const getCustomerListMethod = async (params: CustomerListRequestDto, config?: AxiosRequestConfig) => {\n const apiUrl = `${getDspApiHostNameFromEnvironment('dis')}/v1/get/customer-list`;\n\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseCustomerListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getCustomerListMethod } from './customer-list-search.service';\n\nimport type { CustomerListRequestDto, DspResponseCustomerListResponseDto } from './customer-list-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchCustomerListQuery = (\n params: CustomerListRequestDto,\n options?: CustomQueryOptions<DspResponseCustomerListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.customerName,\n retry: false,\n queryKey: ['searchCustomerList', JSON.stringify(params)],\n queryFn: () => {\n return getCustomerListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\nimport { getDspApiHostNameFromEnvironment } from 'sales-frontend-utils';\n\nimport { HttpClientAxios } from '../../../client';\n\nimport type { DspResponseRiskGradeResponseDto, RiskGradeRequestDto } from './risk-grade-search.dto';\n\nexport const getRiskGradeMethod = async (params: RiskGradeRequestDto, config?: AxiosRequestConfig) => {\n const apiUrl = `${getDspApiHostNameFromEnvironment('dis')}/v1/get/codes/risk-grade`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseRiskGradeResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getRiskGradeMethod } from './risk-grade-search.service';\n\nimport type { DspResponseRiskGradeResponseDto, RiskGradeRequestDto } from './risk-grade-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchRiskGradeQuery = (\n params: RiskGradeRequestDto,\n options?: CustomQueryOptions<DspResponseRiskGradeResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.occupationIndustryCode && !!params.vehicleTypeCode,\n retry: false,\n queryKey: ['searchRiskGrade', JSON.stringify(params)],\n queryFn: () => {\n return getRiskGradeMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\nimport { getDspApiHostNameFromEnvironment } from 'sales-frontend-utils';\n\nimport { HttpClientAxios } from '../../../client';\n\nimport type {\n DspResponseListPersonalCustomerProfileResponseDto,\n PersonalCustomerProfileRequestDto\n} from './dea-customer-list-search.dto';\n\nexport const getDspCustomerListMethod = async (\n params: PersonalCustomerProfileRequestDto,\n config?: AxiosRequestConfig\n) => {\n const apiUrl = `${getDspApiHostNameFromEnvironment('dea')}/v1/get/participant/profile/customer/personal`;\n\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseListPersonalCustomerProfileResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getDspCustomerListMethod } from './dea-customer-list-search.service';\n\nimport type {\n DspResponseListPersonalCustomerProfileResponseDto,\n PersonalCustomerProfileRequestDto\n} from './dea-customer-list-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchDspCustomerListQuery = (\n params: PersonalCustomerProfileRequestDto,\n options?: CustomQueryOptions<DspResponseListPersonalCustomerProfileResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.customerName,\n retry: false,\n queryKey: ['searchDspCustomerList', JSON.stringify(params)],\n queryFn: () => {\n return getDspCustomerListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\nimport { getDspApiHostNameFromEnvironment } from 'sales-frontend-utils';\n\nimport { HttpClientAxios } from '../../../client';\n\nimport type { DspResponseVisaStatusListResponseDto } from './visa-search.dto';\n\nexport const getVisaListMethod = async (config?: AxiosRequestConfig) => {\n const apiUrl = `${getDspApiHostNameFromEnvironment('dis')}/v1/get/codes/visa-status-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseVisaStatusListResponseDto>(apiUrl);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getVisaListMethod } from './visa-search.service';\n\nimport type { DspResponseVisaStatusListResponseDto } from './visa-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchVisaQuery = (\n options?: CustomQueryOptions<DspResponseVisaStatusListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: true,\n retry: false,\n queryKey: ['searchVisa'],\n queryFn: () => {\n return getVisaListMethod(config);\n },\n ...options\n });\n};\n","import { getDspApiHostNameFromEnvironment } from 'sales-frontend-utils';\n\nimport { HttpClientAxios } from '../../client';\n\nimport { FpLoginResponseDto } from './login-dsp.dto';\n\n/**\n * @param userId 사번\n */\nexport const postLoginMethod = async (userId: number) => {\n console.log('userId', userId);\n const apiUrl = `${getDspApiHostNameFromEnvironment('dat')}/v1/post/login`;\n const httpClient = new HttpClientAxios({\n headers: {\n 'Debug-Refresh-Queue-Off': 'true'\n }\n });\n\n const res = await httpClient.api.post<FpLoginResponseDto>(apiUrl, {\n userId,\n channelType: 'DSP_TABLET'\n });\n\n return res.data;\n};\n","import { getDspApiHostNameFromEnvironment } from 'sales-frontend-utils';\n\nimport { HttpClientAxios } from '../../client';\nimport { getServiceCode } from '../method-util';\n\nimport type { ApiConfig } from '../shared.dto';\nimport type {\n RemoteIdentityVerificationSystemTokenRequestDto,\n DspResponseRemoteIdentityVerificationSystemTokenResponseDto,\n RemoteIdentityVerificationSystemIdentificationCardRequestDto,\n DspResponseRemoteIdentityVerificationSystemIdentificationCardResponseDto\n} from './remote-identity-verification.dto';\n\n/**\n * 토큰 발급 API\n * @param params\n * @param axiosConfig\n * @returns\n */\nexport const getRemoteIdentityVerificationSystemToken = async (\n params: RemoteIdentityVerificationSystemTokenRequestDto,\n axiosConfig?: ApiConfig\n) => {\n const apiUrl = `${getDspApiHostNameFromEnvironment('dea')}/v1/post/participant/remote-identity-verification-system/token`;\n\n const response = await new HttpClientAxios({\n ...axiosConfig\n }).api.post<DspResponseRemoteIdentityVerificationSystemTokenResponseDto>(apiUrl, params);\n\n return response.data;\n};\n\n/**\n * 비대면 인증 시스템 신분증 진위확인 API\n * @param params 진위확인 요청 파라미터\n * @param axiosConfig API 설정\n * @returns 신분증 진위확인 응답 데이터\n */\nexport const confirmRemoteIdentityVerificationSystemIdentificationCard = async (\n params: RemoteIdentityVerificationSystemIdentificationCardRequestDto,\n axiosConfig?: ApiConfig\n) => {\n const apiUrl = `${getDspApiHostNameFromEnvironment('dea')}/v1/post/participant/remote-identity-verification-system/identification-card/confirm`;\n\n const response = await new HttpClientAxios({\n ...axiosConfig\n }).api.post<DspResponseRemoteIdentityVerificationSystemIdentificationCardResponseDto>(apiUrl, params);\n\n return response.data;\n};\n","import { useMutation } from '@tanstack/react-query';\n\nimport { CustomMutationOptions } from '../method.types';\n\nimport {\n RemoteIdentityVerificationSystemIdentificationCardResponseDto,\n RemoteIdentityVerificationSystemIdentificationCardRequestDto\n} from './remote-identity-verification.dto';\nimport { confirmRemoteIdentityVerificationSystemIdentificationCard } from './remote-identity-verification.service';\n\n/**\n * 비대면 인증 시스템 신분증 진위확인 Mutation\n * @param options\n * @returns\n */\nexport const useConfirmRemoteIdentityVerificationSystemIdentificationCardMutation = (\n options?: CustomMutationOptions<\n RemoteIdentityVerificationSystemIdentificationCardResponseDto,\n RemoteIdentityVerificationSystemIdentificationCardRequestDto\n >\n) => {\n return useMutation({\n mutationKey: ['confirmRemoteIdentityVerificationSystemIdentificationCard'],\n mutationFn: async (params) => {\n const response = await confirmRemoteIdentityVerificationSystemIdentificationCard(params);\n\n if (response.isSuccess === false) {\n throw new Error(`${response.code}: ${response.message}`);\n }\n\n return response.data;\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\nimport { getDspApiHostNameFromEnvironment } from 'sales-frontend-utils';\n\nimport { HttpClientAxios } from '../../client';\n\nimport type { CommonCodeRequestDto, DspResponseCommonCodeResponseDto } from './common-code-search.dto';\n\nexport const getCommonCodeListMethod = async (param: CommonCodeRequestDto, config?: AxiosRequestConfig) => {\n const apiUrl = `${getDspApiHostNameFromEnvironment('dea')}/v1/get/common-code/list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseCommonCodeResponseDto>(apiUrl, param);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { CustomQueryOptions } from '../method.types';\n\nimport { getCommonCodeListMethod } from './common-code-search.service';\n\nimport type { CommonCodeRequestDto, DspResponseCommonCodeResponseDto } from './common-code-search.dto';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchCommonCodeQuery = (\n param: CommonCodeRequestDto,\n options?: CustomQueryOptions<DspResponseCommonCodeResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!param.commonCodeId,\n retry: false,\n queryKey: ['searchCommonCode', param.commonCodeId],\n queryFn: () => {\n return getCommonCodeListMethod(param, config);\n },\n ...options\n });\n};\n","import { getDspApiHostNameFromEnvironment } from 'sales-frontend-utils';\n\nimport { HttpClientAxios } from '../../client';\n\nimport type { ApiConfig } from '../shared.dto';\nimport type { DspResponseUserProfileResponseDto } from './app-config.dto';\n\n/**\n * FP 기본 정보를 조회합니다.\n * @param axiosConfig\n * @returns\n */\nexport const getUserProfile = async (axiosConfig?: ApiConfig) => {\n const apiUrl = `${getDspApiHostNameFromEnvironment('dat')}/v1/get/user/profile`;\n const response = await new HttpClientAxios({\n ...axiosConfig\n }).api.post<DspResponseUserProfileResponseDto>(apiUrl);\n\n return response.data;\n};\n","import { getDudApiHostNameFromEnvironment, getExt } from 'sales-frontend-utils';\n\nimport { HttpClientAxios } from '../../client';\nimport { getServiceCode } from '../method-util';\n\nimport type {\n DownloadType,\n FileUploadExternalRequestDto,\n FileUploadExternalResponseDto\n} from './dud-external-file.dto';\nimport type { AxiosRequestConfig } from 'axios';\n\nconst getDayDiffFromToday = (date: Date) => {\n const diff = date.getTime() - new Date().getTime();\n\n return Math.floor(diff / (1000 * 60 * 60 * 24));\n};\n\nexport const postFileUploadMethod = async (params: FileUploadExternalRequestDto, config?: AxiosRequestConfig) => {\n const apiUrl = `${getDudApiHostNameFromEnvironment()}/v1/post/file`;\n const formData = new FormData();\n\n if (params.data instanceof File) {\n formData.append('data', params.data, params.name || params.data.name);\n } else if (params.data instanceof Blob) {\n formData.append('data', params.data, params.name || `dud-file.${getExt(params.data)}`);\n }\n\n params.fileIdentifierValue && formData.append('fileIdentifierValue', params.fileIdentifierValue);\n params.fileExtendContent1 && formData.append('fileExtendContent1', params.fileExtendContent1);\n params.fileExtendContent2 && formData.append('fileExtendContent2', params.fileExtendContent2);\n\n /**\n * expireDate , preservationTerm 중에 1가지만\n */\n params.expireDate &&\n formData.append('preservationTerm', (getDayDiffFromToday(params.expireDate) + 1).toString() || '1');\n params.preservationTerm && formData.append('preservationTerm', params.preservationTerm.toString() || '1');\n\n /**\n * 파일/blot객체에서 자동추출하도록 수정\n */\n formData.append('fileType', params.fileType || params.data.type.split('/').pop() || 'png');\n\n const httpClient = new HttpClientAxios({ ...config, withCredentials: false });\n\n /**\n *\n * \"isSuccess\": true,\n * \"code\": \"nxl-dsp-dud-erro-5801\", 'erro' 오타아니라 원래 4글자 규칙이라고합니다.\n * \"message\": \"파일 업로드 가능 확장자는 <br/>ozd, png, jpg, gif, pdf, json, xml, txt 입니다.\"\n *\n * @description \"isSuccess\": true, 이지만 실패처리인 케이스에 대한 별도 interceptor 처리가 필요\n */\n httpClient.api.interceptors.response.use((response) => {\n const { data } = response;\n\n if (data.isSuccess === true && data.code.includes('erro')) {\n return Promise.reject(response);\n }\n\n return response;\n });\n\n const res = await httpClient.api.post<FileUploadExternalResponseDto>(apiUrl, formData);\n\n return res.data;\n};\n\nexport async function postFileDownloadMethod<T extends 'BASE64' | 'BINARY'>(\n params: { fileMgmtId: string; outputType: T },\n config?: AxiosRequestConfig\n) {\n const apiUrl = `${getDudApiHostNameFromEnvironment()}/v1/get/file`;\n\n const httpClient = new HttpClientAxios({\n ...config,\n ...(params.outputType === 'BINARY' && { responseType: 'blob' })\n });\n httpClient.api.interceptors.response.use((response) => {\n const { data } = response;\n\n if (params.outputType === 'BINARY' && !(data instanceof Blob)) {\n return Promise.reject(response);\n }\n\n if (params.outputType === 'BASE64' && data.code.includes('erro')) {\n return Promise.reject(response);\n }\n\n return response;\n });\n\n /**\n * FileExternalRequestDto 의 outputType 에 따라 returnType이 상이\n * outputType = 'BASE64' 이면 returnType 이 FileExternalResponseDto\n * outputType = 'BINARY' 이면 File\n */\n const res = await httpClient.api.post<DownloadType<T>>(apiUrl, params);\n\n return res.data;\n}\n","import { useMutation, useQuery } from '@tanstack/react-query';\n\nimport { postFileDownloadMethod, postFileUploadMethod } from './dud-external-file.service';\n\nimport type { CustomMutationOptions, CustomQueryOptions } from '../method.types';\nimport type {\n DownloadType,\n FileUploadExternalRequestDto,\n FileUploadExternalResponseDto\n} from './dud-external-file.dto';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useDudExternalFileUploadQuery = (\n params: FileUploadExternalRequestDto,\n options?: CustomQueryOptions<FileUploadExternalResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params,\n retry: false,\n queryKey: ['postFileUploadMethod', JSON.stringify(params)],\n queryFn: () => {\n return postFileUploadMethod(params, config);\n },\n ...options\n });\n};\n\nexport const useDudExternalFileUploadMutation = (\n options?: CustomMutationOptions<FileUploadExternalResponseDto, FileUploadExternalRequestDto>,\n config?: AxiosRequestConfig\n) => {\n return useMutation({\n mutationFn: (params: FileUploadExternalRequestDto) => postFileUploadMethod(params, config),\n ...options\n });\n};\n\nexport const useDudExternalFileDownloadQuery = <T extends 'BASE64' | 'BINARY'>(\n params: {\n fileMgmtId: string;\n outputType: T;\n },\n options?: CustomQueryOptions<DownloadType<T>>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params,\n retry: false,\n queryKey: ['postFileDownloadMethod', JSON.stringify(params)],\n queryFn: () => postFileDownloadMethod(params, config),\n ...options\n });\n};\n"]}