# Author:       Li Junhao   l@x-cmd.com     # xrc
# shellcheck    shell=sh    disable=SC2039,SC3043
___x_cmd_http_graphql() {
    local op="$1"; shift
    case "$op" in
        query)
            local url="${1:?Provide URL}"
            local body="query { ${2:?Provide GRAPHQL} }"
            shift 2
            ___x_cmd_http_graphql execute "$url" "$body" "$@"
            ;;
        query-json)
            local url="${1:?Provide URL}"
            local body
            body="{ \"query\": $(jo quote "{ ${2:?Provide GRAPHQL} }")"
            shift 2
            ___x_cmd_http_graphql execute-json "$url" "$body" "$@"
            ;;
        execute)
            http header put content-type application/graphql
            ___x_cmd_http_post "$@"   # TODO:
            ;;
        execute-json)
            http header put content-type application/json
            ___x_cmd_http_post "$@"   # TODO:
            ;;
        *)
            ___x_cmd_http_graphql execute "$op" "$@"
            ;;
    esac
}
