グループ情報削除実装編#
1.1. 処理概要#
グループ情報の検索で取得した情報をもとに、画面上で入力ができる形でグループ情報を表示します。
削除ボタンが押された際に、画面の入力内容をもとにグループ情報の削除を行います。
本処理を行うには、API認証よりAPIを呼び出すためのアクセストークンが必要となります。
1.1.1. 呼出API#
以下、グループ削除で呼び出すAPIとなります。
No | API | 処理内容 | 使用用途 |
---|---|---|---|
1 | DELETE /v2/api/group/{group_id } | グループを削除する | グループ編集画面で削除ボタン押下時にグループ情報を削除 |
2 | GET /v2/api/group | グループを検索する | グループ編集画面表示時に変更対象のグループ情報を検索 |
1.1.2. 処理フロー#
グループ削除を行うまでの処理は以下のフローとなります。
1.1.3. 実装例#
以下API呼出の実装例となります。
グループ変更画面表示時の「グループを検索する」API呼び出しについては、「グループ情報検索実装編」及び提供ソースをご確認ください。
※本マニュアルに記載している実装例は、分かりやすさを優先し簡易的に記載しております。提供しているソースと異なりますので詳細については提供ソースをご確認ください。
GroupChangeController.java
/** * 削除処理 */ @RequestMapping(value = "/GroupChange/delete", method = RequestMethod.POST) public String delete( Model model, @Valid GroupChangeForm form, BindingResult result){ model.addAttribute("groupChangeForm", form); groupChangeFormSession.setGroupChangeForm(form); // バリデーションエラー if (result.hasErrors()) { return ControllerConstants.GROUP_CHANGE_JSP; } Web_IFGroupDelete_I web_IFGroupDelete_I = new Web_IFGroupDelete_I(); Web_IFGroupDelete_O web_IFGroupDelete_O = new Web_IFGroupDelete_O(); // 削除に必要な情報を詰める web_IFGroupDelete_I.entry_id = CommonConstants.登録者ID; web_IFGroupDelete_I.version_info = form.getVersionInfo(); web_IFGroupDelete_I.physical_deletion_flag = form.getPhysicalDeletionFlag(); try{ // グループを削除する web_IFGroupDelete_O = groupService.groupDelete(web_IFGroupDelete_I, form); if (ControllerConstants.API_RESULT_NG.equals(web_IFGroupDelete_O.result_information.result)) { form.setErrorInformation(web_IFGroupDelete_O.result_information.detailed_result); return ControllerConstants.GROUP_CHANGE_JSP; } } catch (ApiException e) { if(ApiErrorType.排他エラー.getValue().equals(e.getErrorCode())) { // メッセージ表示 form.setErrorInformation(getMsg(MessageConstants.MSGE00004, getMsg(MessageConstants.SCN000008), form.getGroupId())); } else { model.addAttribute("errorCode", e.getErrorCode().getValue()); return ControllerConstants.SYSTEM_ERROR_JSP; } } catch (Exception e) { return ControllerConstants.SYSTEM_ERROR_JSP; } // メッセージ表示 form.setMessage(getMsg(MessageConstants.MSGI00004, getMsg(MessageConstants.LBL000005), form.getGroupId())); return ControllerConstants.GROUP_CHANGE_JSP; }
GroupService.java
public Web_IFGroupDelete_O groupDelete(Web_IFGroupDelete_I web_IFGroupDelete_I, GroupChangeForm form){ // 通信設定 HashMap<String, String> mapQueryString = new HashMap<String, String>(); mapQueryString.put(UriInfo.version_info, web_IFGroupDelete_I.version_info); // 登録者ID、物理削除フラグはNOT NULLの場合のみURIに追加 if(web_IFGroupDelete_I.entry_id != "" && web_IFGroupDelete_I.entry_id != null){ mapQueryString.put(UriInfo.entry_id, web_IFGroupDelete_I.entry_id); } if(web_IFGroupDelete_I.physical_deletion_flag != "" && web_IFGroupDelete_I.physical_deletion_flag != null){ mapQueryString.put(UriInfo.physical_deletion_flg, web_IFGroupDelete_I.physical_deletion_flag); } // クエリストリング作成後にグループIDを挿入 HashMap<String, String> mapUri = new HashMap<String, String>(); mapUri.put(UriInfo.group_id, form.getGroupId()); String strURI = ClientUtil.makeURI(UriInfo.GroupDelete, mapUri, mapQueryString); HttpDelete deleteMethod = ClientUtil.makeHttpDelete(strURI); return CommonHttpClient.httpDelete(deleteMethod, Web_IFGroupDelete_O.class); }
共通HTTPリクエストクラス[CommonHttpClient.java]の実装例についてはこちらをご参照ください。