Skip to content

グループ情報削除実装編#

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]の実装例についてはこちらをご参照ください。

Top