# shellcheck shell=bash disable=SC2034,SC2154
# shellcheck disable=SC2039,3043

xrc:mod:lib     fjo              \
                org/member/ls    \
                org/member/edit  \
                org/member/info  \
                org/member/ll    \
                org/member/ls    \
                org/member/rm    \



___x_cmd_fjo_org_member(){
    param:subcmd ___x_cmd_fjo_org_member                    \
        ls                  "Interactive UI show org of user"   \
        ll                  "List membership"                   \
        rm                  "Remove membership"
    param:subcmd:try
    param:run

    # "info|i"            "get org membership user info"      #TODO: not found this API
    # add                 "add org membership"                #TODO: not found this API
    # "edit|ed"           "update org membership"             #TODO: not found this API

    ___x_cmd_fjo_org_member _param_help_doc
    return 1
}


___x_cmd_fjo_org_membership____ui_handler(){
    if  [ -n "$ENFORCE_JSON" ] || [ -n "$json" ]; then
        ___x_cmd_cmds_cat
        ___x_cmd_fjo_http_error
        return
    fi

    (
        local data
        local msg
        local error_msg
        case "$1" in
            Info)
                data="role=.role url=.organization_url name=.user.login"
                msg="get membership in organizations info  success"
                error_msg="get membership in organizations info fail."
                ;;
            Add|Edit)
                msg="$1 $username to organizations  success"
                error_msg="$1 $username to organizations fail."
                ;;
        esac
        eval x jo env . state=.state fjo_resp_err=.message "$data"
        if [ -n "$state" ]; then
            ___x_cmd_ui_tf true "$msg" ${name+"Name: $name"}  ${role+"Role: $role"} ${state+"State: $state"} ${url+"Url: $url"}
        else
            ___x_cmd_ui_tf false "$error_msg"
            ___x_cmd_fjo____handle_resp
            return 1
        fi
    )
}



