Skip to content

Commit

Permalink
Merge pull request #74 from huntdesignco/master
Browse files Browse the repository at this point in the history
added support for custom ticket properties
  • Loading branch information
jpetrucciani committed Nov 15, 2019
2 parents a02e829 + 270eab6 commit d663da4
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 6 deletions.
15 changes: 13 additions & 2 deletions hubspot3/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,9 +110,10 @@ def _prepare_request_auth(self, subpath, params, data, opts):
params["hapikey"] = params.get("hapikey") or self.api_key

def _prepare_request(
self, subpath, params, data, opts, doseq=False, query="", retried=False
self, subpath, params, data, opts, doseq=False, query="", retried=False, properties=None
):
params = params or {}
properties = properties or []
self._prepare_request_auth(subpath, params, data, opts)

if opts.get("hub_id") or opts.get("portal_id"):
Expand All @@ -139,6 +140,9 @@ def _prepare_request(
if data and headers["Content-Type"] == "application/json" and not retried:
data = json.dumps(data)

for hs_property in properties:
url += '&properties={}'.format(hs_property)

return url, headers, data

def _create_request(self, conn, method, url, headers, data):
Expand Down Expand Up @@ -221,6 +225,7 @@ def _call_raw(
doseq=False,
query="",
retried=False,
properties=None,
**options
):
opts = self.options.copy()
Expand All @@ -229,7 +234,11 @@ def _call_raw(
debug = opts.get("debug")

url, headers, data = self._prepare_request(
subpath, params, data, opts, doseq=doseq, query=query, retried=retried
subpath, params, data, opts,
doseq=doseq,
query=query,
retried=retried,
properties=properties
)

if debug:
Expand Down Expand Up @@ -343,6 +352,7 @@ def _call(
doseq: bool = False,
query: str = "",
raw: bool = False,
properties: list = None,
**options
):
result = self._call_raw(
Expand All @@ -353,6 +363,7 @@ def _call(
doseq=doseq,
query=query,
retried=False,
properties=properties,
**options
)
return result if raw else self._digest_result(result.body)
17 changes: 14 additions & 3 deletions hubspot3/tickets.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,26 +42,36 @@ def create(
ticket_data.append({"name": "hs_pipeline_stage", "value": stage})
return self._call("objects/tickets", data=ticket_data, method="POST", **options)

def get(self, ticket_id: str, include_deleted: bool = False, **options) -> Dict:
def update(self, ticket_id: str, data: dict, **options) -> Dict:
return self._call(
"objects/tickets/{}".format(ticket_id), method="PUT", data=data, **options
)

def get(
self, ticket_id: str, properties: list = None, include_deleted: bool = False, **options
) -> Dict:
"""
get a ticket by its ticket_id
TODO: add properties support
:see: https://developers.hubspot.com/docs/methods/tickets/get_ticket_by_id
"""
properties = properties or ["subject", "content", "hs_pipeline", "hs_pipeline_stage"]

params = options.pop("params", {})
params.update({"includeDeletes": include_deleted})
options.update({"params": params})

return self._call(
"objects/tickets/{}".format(ticket_id), method="GET", **options
"objects/tickets/{}".format(ticket_id), method="GET", properties=properties, **options
)

def get_all(self, limit: int = -1, **options) -> list:
def get_all(self, properties: list = None, limit: int = -1, **options) -> list:
"""
Get all tickets in hubspot
:see: https://developers.hubspot.com/docs/methods/tickets/get-all-tickets
"""
properties = properties or ["subject", "content", "hs_pipeline", "hs_pipeline_stage"]

finished = False
output = [] # type: list
offset = 0
Expand All @@ -71,6 +81,7 @@ def get_all(self, limit: int = -1, **options) -> list:
"objects/tickets/paged",
method="GET",
params={"offset": offset},
properties=properties,
**options
)
output.extend(batch["objects"])
Expand Down
2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ ignore_missing_imports = True
[flake8]
ignore = N802,N807,W503
max-line-length = 100
max-complexity = 20
max-complexity = 20

0 comments on commit d663da4

Please sign in to comment.