Skip to content

Commit e8cae08

Browse files
committed
Handle case where operationName is not provided
1 parent 81ac5b2 commit e8cae08

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "GraphQLClient"
22
uuid = "09d831e3-9c21-47a9-bfd8-076871817219"
3-
version = "0.7.4"
3+
version = "0.7.5"
44

55
[deps]
66
GraphQLParser = "0ae10fbf-af58-4883-b66b-ff0ac82d20dd"

src/http_execution.jl

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,16 +65,21 @@ julia> query_string = \"\"\"
6565
julia> GraphQLClient.execute(client, query_string, operation_name="getCountries")
6666
```
6767
"""
68+
69+
function CleanDict(pairs::Pair...)
70+
return Dict(p for p in pairs if !isnothing(p[2]))
71+
end
72+
6873
execute(query::AbstractString, output_type::Type{T}=Any; kwargs...) where T = execute(global_graphql_client(), query, output_type; kwargs...)
69-
function execute(client::Client, query::AbstractString, output_type::Type{T}=Any; variables=Dict(), operation_name="", kwargs...) where T
70-
return execute(client, Dict("query" => query, "variables" => variables, "operationName" => operation_name), output_type; kwargs...)
74+
function execute(client::Client, query::AbstractString, output_type::Type{T}=Any; variables=Dict(), operation_name=nothing, kwargs...) where T
75+
return execute(client, CleanDict("query" => query, "variables" => variables, "operationName" => operation_name), output_type; kwargs...)
7176
end
7277
execute(payload::AbstractDict, output_type::Type{T}=Any; kwargs...) where T = execute(global_graphql_client(), payload, output_type; kwargs...)
7378
function execute(client::Client, payload::AbstractDict, output_type::Type{T}=Any; kwargs...) where T
7479
return execute(client.endpoint, payload, client.headers, output_type; kwargs...)
7580
end
76-
function execute(endpoint::AbstractString, query::AbstractString, headers::AbstractDict=Dict(), output_type::Type{T}=Any; variables=Dict(), operation_name="", kwargs...) where T
77-
return execute(endpoint, Dict("query" => query, "variables" => variables, "operationName" => operation_name), headers, output_type; kwargs...)
81+
function execute(endpoint::AbstractString, query::AbstractString, headers::AbstractDict=Dict(), output_type::Type{T}=Any; variables=Dict(), operation_name=nothing, kwargs...) where T
82+
return execute(endpoint, CleanDict("query" => query, "variables" => variables, "operationName" => operation_name), headers, output_type; kwargs...)
7883
end
7984
function execute(endpoint::AbstractString, payload::AbstractDict, headers::AbstractDict=Dict(), output_type::Type{T}=Any; kwargs...) where T
8085
return _execute(endpoint, JSON3.write(payload), headers, output_type; kwargs...)

0 commit comments

Comments
 (0)