顧客情報削除実装編#
1.1. 処理概要#
顧客情報の検索で取得した情報をもとに、画面上で入力ができる形で顧客情報を表示します。
削除ボタンが押された際に、顧客情報の削除を行います。
本処理を行うには、API認証よりAPIを呼び出すためのアクセストークンが必要となります。
1.1.1. 呼出API#
以下、顧客情報削除で呼び出すAPIとなります。
No | API | 処理内容 | 使用用途 |
---|---|---|---|
1 | DELETE /v2/api/customers/{customer_id} | 顧客を削除する | 顧客一覧画面で削除ボタン押下時に顧客情報を削除 |
2 | GET /v2/api/customers | 顧客を検索する | 顧客変更画面表示時に変更対象の顧客情報を検索 |
1.1.2. 処理フロー#
顧客情報削除を行うまでの処理は以下のフローとなります。
1.1.3. 実装例#
以下API呼出の実装例となります。
顧客変更画面表示時の「顧客を検索する」API呼び出しについては、「顧客情報検索実装編」及び提供ソースをご確認ください。
※本マニュアルに記載している実装例は、分かりやすさを優先し簡易的に記載しております。提供しているソースと異なりますので詳細については提供ソースをご確認ください。
CustomerChangeController.java
/** * 削除ボタン処理 */ // Spring annotation @RequestMapping(value = "/CustomerChange/delete" , method = RequestMethod.POST) public String delete( Model model, @ModelAttribute("customerChangeForm") CustomerChangeForm form ) { // エラーメッセージをクリア form.setErrorInformation(null); Web_IFCustomerDelete_I iFCustomerDelete_I = new Web_IFCustomerDelete_I(); Web_IFCustomerDelete_O iFCustomerDelete_O = new Web_IFCustomerDelete_O(); iFCustomerDelete_I.entry_id = CommonConstants.登録者ID; iFCustomerDelete_I.version_info = form.getVersionInfo(); try { // 契約中の基本契約をチェック if (this.judgeBasicContract(form.getCustomerId())) { form.setErrorInformation(getMsg(MessageConstants.MSGE00007, getMsg(MessageConstants.LBL000008), getMsg(MessageConstants.LBL000009), getMsg(MessageConstants.LBL000011))); return ControllerConstants.CUSTOMER_CHANGE_JSP; } // 削除処理 iFCustomerDelete_O = customerService.customerDelete(iFCustomerDelete_I, form.getCustomerId()); if (ControllerConstants.API_RESULT_NG.equals(iFCustomerDelete_O.result_information.result)) { form.setErrorInformation(iFCustomerDelete_O.result_information.detailed_result); return ControllerConstants.CUSTOMER_CHANGE_JSP; } } catch (ApiException e) { if(ApiErrorType.排他エラー.getValue().equals(e.getErrorCode())) { // メッセージ表示 form.setErrorInformation(getMsg(MessageConstants.MSGE00001, getMsg(MessageConstants.SCN000010))); return ControllerConstants.CUSTOMER_CHANGE_JSP; } else { model.addAttribute("errorCode", e.getErrorCode().getValue()); return ControllerConstants.SYSTEM_ERROR_JSP; } } catch (Exception e) { return ControllerConstants.SYSTEM_ERROR_JSP; } model.addAttribute("customerChangeForm", form); form.setMessage(getMsg(MessageConstants.MSGI00004, getMsg(MessageConstants.LBL000004), form.getCustomerId())); return ControllerConstants.CUSTOMER_CHANGE_JSP; }
CustomerService.java
/** * 顧客_削除 API * * @param web_IFCustomerDelete_I IF顧客_削除_入力 * @return IF顧客_削除_出力 */ public Web_IFCustomerDelete_O customerDelete(Web_IFCustomerDelete_I web_IFCustomerDelete_I, String customerId) { // 通信設定 HashMap<String, String> mapQueryString = new HashMap<String, String>(); mapQueryString.put(UriInfo.entry_id, web_IFCustomerDelete_I.entry_id); mapQueryString.put(UriInfo.version_info, String.valueOf(web_IFCustomerDelete_I.version_info)); String strURI = ClientUtil.makeURI(UriInfo.CustomerDelete + customerId + "?", null, mapQueryString); HttpDelete deleteMethod = ClientUtil.makeHttpDelete(strURI); return CommonHttpClient.httpDelete(deleteMethod, Web_IFCustomerDelete_O.class); }
共通HTTPリクエストクラス[CommonHttpClient.java]の実装例についてはこちらをご参照ください。