Skip to content

Commit

Permalink
Merge pull request #9 from pavelprokhorenko/feature/update-graphql-re…
Browse files Browse the repository at this point in the history
…quest

update GraphQLRequest
  • Loading branch information
pavelprokhorenko committed Aug 13, 2022
2 parents eb2431e + 445d0e9 commit f257abb
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 9 deletions.
2 changes: 1 addition & 1 deletion graphql_requests/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"""GraphQL client, high performance, easy to use, sync/async support"""

__version__ = "0.3.0"
__version__ = "0.3.1"

from .client import AsyncClient as AsyncClient
from .client import Client as Client
Expand Down
27 changes: 19 additions & 8 deletions graphql_requests/request.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,32 +15,43 @@ def __init__(self, *, body: str, variables: Dict[str, Any]) -> None:
self._body = body
self._variables = dict_keys_to_camel_case_recursively(variables)

def set_variables(self, variables: Dict[str, Any]) -> None:
def set_variables(self, variables: Dict[str, Any]) -> "GraphQLRequest":
"""
Override variables to send
"""
camel_case_variables = dict_keys_to_camel_case_recursively(variables)
self._variables = camel_case_variables

def extend_variables(self, additional_variables: Dict[str, Any]) -> None:
return GraphQLRequest(body=self._body, variables=camel_case_variables)

def extend_variables(
self, additional_variables: Dict[str, Any]
) -> "GraphQLRequest":
"""
Add new variables to existing ones
"""
camel_case_variables = dict_keys_to_camel_case_recursively(additional_variables)
self._variables.update(camel_case_variables)
camel_case_variables.update(self._variables)

return GraphQLRequest(body=self._body, variables=camel_case_variables)

def set_fragment(self, fragment: str) -> None:
def set_fragment(self, fragment: str) -> "GraphQLRequest":
"""
Add GraphQL fragment to request body
"""
clear_fragment = re.sub(r"[\n\r\s]{2,}", " ", fragment)
self._body = "{} {}".format(self._body, clear_fragment)
new_body = "{} {}".format(self._body, clear_fragment)

def set_scheme_from_file(self, file_path: str, *, encoding: str = "UTF-8") -> None:
return GraphQLRequest(body=new_body, variables=self._variables)

def set_scheme_from_file(
self, file_path: str, *, encoding: str = "UTF-8"
) -> "GraphQLRequest":
"""
Read scheme from file and set it to request body
"""
self._body = read_scheme_from_file(file_path, encoding=encoding)
body = read_scheme_from_file(file_path, encoding=encoding)

return GraphQLRequest(body=body, variables=self._variables)

@property
def body(self) -> str:
Expand Down

0 comments on commit f257abb

Please sign in to comment.