# shellcheck shell=bash
# https://developer.godaddy.com/doc/endpoint/domains#/v1/available
___x_cmd_gddy_domain_available(){
    local X_help_cmd='x help -m gddy domain available';    help:arg:parse
    param:scope     ___x_cmd_gddy
    param:dsl    '
options:
    #1            "Domain name whose availability is to be checked"                     <>
    --checktype    "Optimize for time"                                                  <>=FAST    = FAST FULL fast full

    --json|-j      "output raw JSON data"
'
    param:run

    gddy:arg:format:raw:json2app:all

    ___x_cmd_gddy_domain_available___"${format}" "$@"
    ___x_cmd_gddy_http_error
}

___x_cmd_gddy_domain_available___app(){
    local data; data="$( ___x_cmd_gddy_domain_available___csv "$@" )" || ourl:data:ret
    ___x_cmd_pipevar    data    x csv static_tab
}


___x_cmd_gddy_domain_available___csv(){
    local data; data="$( ___x_cmd_gddy_domain_available___raw "$@" )" || ourl:data:ret
    ___x_cmd_pipevar    data    ___x_cmd_gddy_domain_available___parse_json2csv
}

___x_cmd_gddy_domain_available___json(){
    local data; data="$( ___x_cmd_gddy_domain_available___raw "$@" )" || ourl:data:ret
    ___x_cmd_pipevar    data
}

___x_cmd_gddy_domain_available___raw(){
    local domain="$1"; shift
    gddy:info "This API is available only for accounts with at least 20 domains; otherwise returns 403 error"
    ___x_cmd_gddy_ourl get "/v1/domains/available?domain=${domain}" --data-urlencode checktype="$checktype"
}

___x_cmd_gddy_domain_available___parse_json2csv(){
    x ja jl2c .domain .available .definitive .period .currency .price  |\
        x csv awk '{if(cval(6) != "")price = substr(cval(6),1 ,length(cval(6))-4)"."substr(cval(6),length(cval(6))-3); print cval(1)","cval(2)","cval(3)","cval(4)","cval(5)","price}' |\
        x csv header --add  Domain Available Definitive Period Currency Price
}


