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

# Should be like this.
# tea repo collaborator add el:admin
# tea repo collaborator remove user-a
# tea repo collaborator add user-b

# tea repo collaborator +el:admin -user-a +user-b

xrc:mod:lib     fjo     \
                repo/collaborator/ls  repo/collaborator/ll  repo/collaborator/add    repo/collaborator/edit    repo/collaborator/rm

___x_cmd_fjo_repo_collaborator() {
    param:subcmd ___x_cmd_fjo_repo_collaborator           \
        ls             "Interactive UI show repo of user"     \
        ll             "List collaborator"                    \
        add            "add collaborator"                     \
        "edit|ed"      "edit collaborator permission"         \
        rm             "Remove collaborator"
    param:subcmd:try
    param:run


    ___x_cmd_fjo_repo_collaborator _param_help_doc
    return 1
}


___x_cmd_fjo_collaborator_____ui_handler(){
    if [ -n "$ENFORCE_JSON" ] || [ -n "$json" ]; then
        ___x_cmd_cmds_cat
        return
    fi
    (
        case "$1" in
            Add)
                _inf_msg="[Success]: $1 $_avt_name user to $owner_repo repo"
                _err_msg="$1 $_avt_name user to $owner_repo repo failure:"
                ;;
            Modify)
                _inf_msg="[Success]: $1 $_avt_name user to $permission permission on $owner_repo repo"
                _err_msg="$1 $_avt_name user to $permission permission on $owner_repo repo failure:"
                ;;
            Remove)
                _inf_msg="[Success]: $1 $_avt_name user from $owner_repo repo"
                _err_msg="$1 $_avt_name user from $owner_repo repo failure:"
                ;;
        esac
        ___x_cmd jo env . fjo_resp_msg=.message fjo_resp_err=.errors
        if ___x_cmd_fjo_http_error 2>/dev/null; then
            ___x_cmd_ui_tf  true "$_inf_msg"
        else
            ___x_cmd_ui_tf false "$_err_msg" >&2
            ___x_cmd_fjo____handle_resp
            return 1
        fi
    )
}

