# shellcheck shell=sh disable=SC3043,SC2034

___x_cmd_gt_repo_page(){
    param:subcmd ___x_cmd_gt_repo_page                  \
        info        "Show information of page"          \
        build       "Build page"
    param:subcmd:try
    param:run

    ___x_cmd_gt_repo_page _param_help_doc
    return 1
}

# Section: Info
# https://gitee.com/api/v5/swagger#/getV5ReposOwnerRepoPages
# shellcheck disable=SC2154
___x_cmd_gt_repo_page_info(){
    param:scope     ___x_cmd_gt
    param:dsl       '
options:
    --repo|-r       "<owner_path>/<repo_path>"   <>:RepoPath
    --json|-j       "output origin json data"
'
    param:run
    ___x_cmd_gt_param_init_owner_repo

    ___x_cmd_gt_curl get "/repos/${owner_repo}/pages" | ___x_cmd_gt_repo_page____ui_handler Getting
}
# EndSection

# Section: Build
# https://gitee.com/api/v5/swagger#/postV5ReposOwnerRepoPagesBuilds
___x_cmd_gt_repo_page_build(){
    param:scope     ___x_cmd_gt
    param:dsl       '
options:
    --repo|-r       "<owner_path>/<repo_path>"       <>:RepoPath
    --json|-j       "output origin json data"
'
    param:run
    ___x_cmd_gt_param_init_owner_repo
    ___x_cmd_gt_curl post "https://gitee.com/api/v5/repos/${owner_repo}/pages/builds" | ___x_cmd_gt_repo_page____ui_handler Building
}
# EndSection

# Section: UI util
___x_cmd_gt_repo_page____ui_handler(){
    if [ -n "$ENFORCE_JSON" ] || [ -n "$json" ]; then
        ___x_cmd_cmds_cat
        ___x_cmd_gt_http_error
        return
    fi
    (
        case "$1" in
            Getting)
                _inf_msg="$1 repo page information successfully:"
                _err_msg="$1 $owner_repo repo page information failure:"
                ;;
            Building)
                _inf_msg="$1 repo page successfully:"
                _err_msg="$1 $owner_repo repo page failure:"
                ;;
        esac
        local _status=""
        x jo env . _status=.status gt_resp_err=.message gt_resp_err=.error
        if [ -n "$_status" ]; then
            ___x_cmd_ui_tf  true "${_inf_msg}:" "Repo: ${owner_repo}" "Status: $_status"
        else
            ___x_cmd_ui_tf false "${_err_msg}:" "Page_URL: https://gitee.com/${owner_repo}/pages" >&2
            ___x_cmd_gt____handle_resp
            return 1
        fi
    )
}
# EndSection
