# shellcheck shell=dash

# Section: lastupdate
# GET /last-updates
___x_cmd_dbnomics_lastupdate(){
    local op="--app"
    while [ "$#" -gt 0 ]; do
        case "$1" in
            --app|--raw|--json|--csv|--tsv)
                op="$1"; shift ;;
            -h|--help)
                ___x_cmd help -m dbnomics lastupdate "$@"; return ;;
            *) break ;;
        esac
    done
    case "$op" in
        --app)        ___x_cmd_dbnomics_lastupdate___app   "$@" ;;
        --raw)        ___x_cmd_dbnomics_lastupdate___raw   "$@" ;;
        --json)       ___x_cmd_dbnomics_lastupdate___json  "$@" ;;
        --csv)        ___x_cmd_dbnomics_lastupdate___csv   "$@" ;;
        --tsv)        ___x_cmd_dbnomics_lastupdate___tsv   "$@" ;;
    esac
}

___x_cmd_dbnomics_lastupdate___raw(){
    local arg=""
    while [ "$#" -gt 0 ]; do
        case "$1" in
            --app|--raw|--json|--csv|--tsv) shift ;;
            --datasets-limit)   arg="${arg:+${arg}&}datasets.limit=$2";  shift 2 ;;
            --datasets-offset)  arg="${arg:+${arg}&}datasets.offset=$2"; shift 2 ;;
            --providers-limit)  arg="${arg:+${arg}&}providers.limit=$2"; shift 2 ;;
            --providers-offset) arg="${arg:+${arg}&}providers.offset=$2"; shift 2 ;;
            *)                  break ;;
        esac
    done
    [ -n "$arg" ] && arg="?${arg}"
    ___x_cmd_dbnomics_api get "/last-updates${arg}"
}

___x_cmd_dbnomics_lastupdate___json(){
    ___x_cmd_dbnomics_lastupdate___raw "$@" | jq .
}

___x_cmd_dbnomics_lastupdate___csv(){
    ___x_cmd_dbnomics_lastupdate___raw "$@" \
        | ___x_cmd_dbnomics___json2csv datasets.docs .code .name .provider_code .provider_name .nb_series .indexed_at \
        | ___x_cmd csv header --add code name provider_code provider_name nb_series indexed_at
}

___x_cmd_dbnomics_lastupdate___tsv(){
    printf "code\tname\tprovider_code\tprovider_name\tnb_series\tindexed_at\n"
    ___x_cmd_dbnomics_lastupdate___raw "$@" \
        | ___x_cmd_dbnomics___json2tsv datasets.docs .code .name .provider_code .provider_name .nb_series .indexed_at
}

___x_cmd_dbnomics_lastupdate___app(){
    if ___x_cmd_is_stdout2tty && ___x_cmd_runmode_allow_manual ; then
        ___x_cmd_dbnomics_lastupdate___csv "$@" | ___x_cmd csv app
    else
        ___x_cmd_dbnomics_lastupdate___tsv "$@"
    fi
}
# EndSection
