# shellcheck shell=dash

# Section: event data ls
# https://umami.is/docs/api/event-data#get-/api/event-data/events
___x_cmd_umami_event_ls(){
    case "$1" in
        -h|--help)    ___x_cmd help -m umami event ls        "$@" ;;

        --csv)        shift; ___x_cmd_umami_event_ls___csv   "$@" ;;
        --raw)        shift; ___x_cmd_umami_event_ls___raw   "$@" ;;
        --app)        shift; ___x_cmd_umami_event_ls___app   "$@" ;;
        *)            ___x_cmd_umami_event_ls___app          "$@" ;;
    esac
}

___x_cmd_umami_event_ls___raw(){
    local arg=;local key=;
    local _start=; local _end=;
    while [ "$#" -gt 0 ]; do
        case "$1" in
            --startAt)
                key="${1#--}"
                [ -n "$2" ] || M="Provide a $key" N=umami log:ret:1
                arg="${arg}&${key}=${2}"
                _start=1
                shift 2;;
            --endAt)
                key="${1#--}"
                [ -n "$2" ] || M="Provide a $key" N=umami log:ret:1
                arg="${arg}&${key}=${2}"
                _end=1
                shift 2;;
            --event)
                key="${1#--}"
                [ -n "$2" ] || M="Provide a $key" N=umami log:ret:1
                arg="${arg}&${key}=${2}"
                shift 2;;
            *)
                break ;;
        esac
    done
    [ -n "$_start" ] || arg="startAt=$(___x_cmd_umami___date -15)&${arg}"
    [ -n "$_end" ]   || arg="endAt=$(___x_cmd_umami___date)&${arg}"
    [ -n "$arg" ]    && arg="?${arg#&}"

    local _website_id="$1";  [ -n "$_website_id" ] || M='Provide a websiteID'   N=umami log:ret:1
    ___x_cmd_umami___transform_website_id || return

    # v2 API: /websites/:websiteId/event-data/events
    ___x_cmd_umami_api get "/websites/${_website_id}/event-data/events${arg}"
}

___x_cmd_umami_event_ls___csv(){
    ___x_cmd_umami_event_ls___raw "$@" \
        | ___x_cmd jo 2c                           \
            .eventName .propertyName .dataType .total \
        | ___x_cmd csv header --add                \
            eventName propertyName dataType total
}

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