# shellcheck shell=dash disable=SC2034,SC2154,SC2120
# https://gitea.com/api/swagger#/organization/orgListRepos
# https://gitee.com/api/v5/swagger#/getV5OrgsOrgRepos
___x_cmd_gt_org_repo_ls(){
    param:scope     ___x_cmd_gt
    param:dsl       '
options:
    #1              "Please provide organization"       <>:Address
    --type          "type"                              <>:RepoAllAccess="all"
    --page          "page"                              <>="1"
    --per_page      "per_page"                          <>="20"
    --json|-j       "output origin json data"
'
    param:run
    ___x_cmd_gx_is_interactive_env || { ___x_cmd_gt_org_repo_ll "$@"; return; }

    local org="$1"
    local ___X_CMD_TUI_TABLE_FINAL_COMMAND
    local ___X_CMD_TUI_TABLE_CUR_LINE
    local ___X_CMD_TUI_TABLE_CUR_ITEM
    ___x_cmd_gt_tui_app  --org "$org" --type "$type"  --page "$page" --per_page "$per_page" \
            --request-code '___x_cmd_gt_get_multi "/orgs/$org/repos" type'    \
            --error-msg "Couldn't find any data by $org" \
            --end ___x_cmd_gt_org_repo_app_status_handler \
            "org.repo.app.awk"
}

___x_cmd_gt_org_repo_app_status_handler(){
    if [ ! -t 1 ] || [ -n "$ENFORCE_JSON" ]; then
        ___x_cmd_gt_http_error
        return
    fi
    local _sep
    _sep=$(printf "\003")
    case "$___X_CMD_TUI_TABLE_FINAL_COMMAND" in
            "ENTER")        printf "%s\n" "$___X_CMD_TUI_TABLE_FINAL_COMMAND"          ;;
            "c")            ___x_cmd_gt_org_repo_create --org "$org"                                                   ;;
            "u")            ___x_cmd_gt_repo_edit --access "" "${org}/${___X_CMD_TUI_TABLE_CUR_LINE%%"$_sep"*}"        ;;
            "d")            ___x_cmd_gt_repo_rm     "${org}/${___X_CMD_TUI_TABLE_CUR_LINE%%"$_sep"*}"                  ;;
            "r")            NO_CACHE=1 ___x_cmd_gt_org_repo_ls "$@"                                                    ;;
            *)              return  ;;
    esac
}
