Skip to content

Commit

Permalink
add default json and error handling (#19)
Browse files Browse the repository at this point in the history
  • Loading branch information
david-wolgemuth committed Sep 22, 2023
1 parent 1ad8906 commit 8619d25
Show file tree
Hide file tree
Showing 36 changed files with 325 additions and 224 deletions.
33 changes: 21 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,18 +51,13 @@ pass `params` to specify filters

_for full list of available filters - see [API docs](https://docs.huvrdata.app)_

will receive a standard python `requests.Response` object

```py
response = client.projects.list(params={
pagination_data = client.projects.list(params={
"asset_search": "my-site/my-asset"
})

# requests.Response object
response.raise_for_status() # confirm successful request

# some responses will contain pagination info {next, previous, count, results}
projects = response.json()["results"]
projects = pagination_data["results"]

# result data will be raw python dicts/lists etc
for project in projects:
Expand All @@ -76,20 +71,34 @@ pass `json` to request when creating/updating data
_for full list of expected json data - see [API docs](https://docs.huvrdata.app)_

```py
response = client.projects.create(json={
project = client.projects.create(json={
"name": "My Project",
"asset": 24, # asset id
"type": 36, # project type id
})

# requests.Response object
response.raise_for_status() # confirm successful request

# result data will be raw python dicts/lists etc
project = response.json()
print(project["id"])
```

### Raw Request Example

if requesting a non-json or "internal" endpoint, can make a raw request.

this will return a standard python `requests.Response` object

```py
response = client.request(
method="GET",
path="/api/.../",
# params={...},
# json={...},
# headers={...},
# data={...},
)
response.content # access raw bytes, or .json(), etc
```

## Contributing / Internals

Docker Required: https://www.docker.com
Expand Down
1 change: 0 additions & 1 deletion codegen/templates.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,5 @@

environment = Environment(loader=FileSystemLoader("templates/"))

api_template = environment.get_template("api.py.jinja")
api_module_template = environment.get_template("api_module.py.jinja")
base_api_module_template = environment.get_template("base_api_module.py.jinja")
2 changes: 1 addition & 1 deletion codegen/templates/api_module.py.jinja
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ class {{ class_name }}ApiModule(BaseApiModule):
"""
{{ endpoint.docstring }}
"""
return self.client.request(
return self.client.request_json(
method="{{ endpoint.method }}",
path=f"{{ endpoint.path }}",{% if endpoint.has_body %}
json=json,{% endif %}{% if endpoint.has_query_params %}
Expand Down
4 changes: 2 additions & 2 deletions huvr_client/api/assessment_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def list(self, params=None, **kwargs):
https://docs.huvrdata.app/reference/api_assessment-types_list
"""
return self.client.request(
return self.client.request_json(
method="get",
path=f"/api/assessment-types/",
params=params,
Expand All @@ -52,7 +52,7 @@ def read(self, id, **kwargs):
https://docs.huvrdata.app/reference/api_assessment-types_read
"""
return self.client.request(
return self.client.request_json(
method="get",
path=f"/api/assessment-types/{id}/",
**kwargs,
Expand Down
6 changes: 3 additions & 3 deletions huvr_client/api/assessments.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ def list(self, params=None, **kwargs):
https://docs.huvrdata.app/reference/api_assessments_list
"""
return self.client.request(
return self.client.request_json(
method="get",
path=f"/api/assessments/",
params=params,
Expand All @@ -70,7 +70,7 @@ def read(self, id, **kwargs):
https://docs.huvrdata.app/reference/api_assessments_read
"""
return self.client.request(
return self.client.request_json(
method="get",
path=f"/api/assessments/{id}/",
**kwargs,
Expand All @@ -84,7 +84,7 @@ def revision(self, id, json=None, **kwargs):
https://docs.huvrdata.app/reference/api_assessments_revision
"""
return self.client.request(
return self.client.request_json(
method="post",
path=f"/api/assessments/{id}/revision/",
json=json,
Expand Down
12 changes: 6 additions & 6 deletions huvr_client/api/asset_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ def list(self, params=None, **kwargs):
https://docs.huvrdata.app/reference/api_asset-types_list
"""
return self.client.request(
return self.client.request_json(
method="get",
path=f"/api/asset-types/",
params=params,
Expand All @@ -56,7 +56,7 @@ def create(self, json=None, **kwargs):
https://docs.huvrdata.app/reference/api_asset-types_create
"""
return self.client.request(
return self.client.request_json(
method="post",
path=f"/api/asset-types/",
json=json,
Expand All @@ -72,7 +72,7 @@ def read(self, id, **kwargs):
https://docs.huvrdata.app/reference/api_asset-types_read
"""
return self.client.request(
return self.client.request_json(
method="get",
path=f"/api/asset-types/{id}/",
**kwargs,
Expand All @@ -88,7 +88,7 @@ def update(self, id, json=None, **kwargs):
https://docs.huvrdata.app/reference/api_asset-types_update
"""
return self.client.request(
return self.client.request_json(
method="put",
path=f"/api/asset-types/{id}/",
json=json,
Expand All @@ -106,7 +106,7 @@ def partial_update(self, id, json=None, **kwargs):
https://docs.huvrdata.app/reference/api_asset-types_partial_update
"""
return self.client.request(
return self.client.request_json(
method="patch",
path=f"/api/asset-types/{id}/",
json=json,
Expand All @@ -119,7 +119,7 @@ def delete(self, id, **kwargs):
https://docs.huvrdata.app/reference/api_asset-types_delete
"""
return self.client.request(
return self.client.request_json(
method="delete",
path=f"/api/asset-types/{id}/",
**kwargs,
Expand Down
18 changes: 9 additions & 9 deletions huvr_client/api/assets.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ def list(self, params=None, **kwargs):
https://docs.huvrdata.app/reference/api_assets_list
"""
return self.client.request(
return self.client.request_json(
method="get",
path=f"/api/assets/",
params=params,
Expand All @@ -84,7 +84,7 @@ def create(self, json=None, **kwargs):
https://docs.huvrdata.app/reference/api_assets_create
"""
return self.client.request(
return self.client.request_json(
method="post",
path=f"/api/assets/",
json=json,
Expand Down Expand Up @@ -137,7 +137,7 @@ def asset_condition_map(self, params=None, **kwargs):
https://docs.huvrdata.app/reference/api_assets_asset_condition_map
"""
return self.client.request(
return self.client.request_json(
method="get",
path=f"/api/assets/asset-condition-map/",
params=params,
Expand Down Expand Up @@ -187,7 +187,7 @@ def filters(self, params=None, **kwargs):
https://docs.huvrdata.app/reference/api_assets_filters
"""
return self.client.request(
return self.client.request_json(
method="get",
path=f"/api/assets/filters/",
params=params,
Expand Down Expand Up @@ -256,7 +256,7 @@ def tree(self, params=None, **kwargs):
https://docs.huvrdata.app/reference/api_assets_tree
"""
return self.client.request(
return self.client.request_json(
method="get",
path=f"/api/assets/tree/",
params=params,
Expand All @@ -272,7 +272,7 @@ def read(self, id, **kwargs):
https://docs.huvrdata.app/reference/api_assets_read
"""
return self.client.request(
return self.client.request_json(
method="get",
path=f"/api/assets/{id}/",
**kwargs,
Expand All @@ -288,7 +288,7 @@ def update(self, id, json=None, **kwargs):
https://docs.huvrdata.app/reference/api_assets_update
"""
return self.client.request(
return self.client.request_json(
method="put",
path=f"/api/assets/{id}/",
json=json,
Expand All @@ -306,7 +306,7 @@ def partial_update(self, id, json=None, **kwargs):
https://docs.huvrdata.app/reference/api_assets_partial_update
"""
return self.client.request(
return self.client.request_json(
method="patch",
path=f"/api/assets/{id}/",
json=json,
Expand All @@ -319,7 +319,7 @@ def delete(self, id, **kwargs):
https://docs.huvrdata.app/reference/api_assets_delete
"""
return self.client.request(
return self.client.request_json(
method="delete",
path=f"/api/assets/{id}/",
**kwargs,
Expand Down
6 changes: 3 additions & 3 deletions huvr_client/api/auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ def obtain_access_token_create(self, json=None, **kwargs):
https://docs.huvrdata.app/reference/api_auth_obtain-access-token_create
"""
return self.client.request(
return self.client.request_json(
method="post",
path=f"/api/auth/obtain-access-token/",
json=json,
Expand All @@ -36,7 +36,7 @@ def session_login_create(self, **kwargs):
https://docs.huvrdata.app/reference/api_auth_session-login_create
"""
return self.client.request(
return self.client.request_json(
method="post",
path=f"/api/auth/session-login/",
**kwargs,
Expand All @@ -48,7 +48,7 @@ def session_logout_create(self, **kwargs):
https://docs.huvrdata.app/reference/api_auth_session-logout_create
"""
return self.client.request(
return self.client.request_json(
method="post",
path=f"/api/auth/session-logout/",
**kwargs,
Expand Down
4 changes: 2 additions & 2 deletions huvr_client/api/checklist_result_lines.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ def list(self, params=None, **kwargs):
https://docs.huvrdata.app/reference/api_checklist-result-lines_list
"""
return self.client.request(
return self.client.request_json(
method="get",
path=f"/api/checklist-result-lines/",
params=params,
Expand All @@ -72,7 +72,7 @@ def read(self, id, **kwargs):
https://docs.huvrdata.app/reference/api_checklist-result-lines_read
"""
return self.client.request(
return self.client.request_json(
method="get",
path=f"/api/checklist-result-lines/{id}/",
**kwargs,
Expand Down
12 changes: 6 additions & 6 deletions huvr_client/api/checklist_tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def list(self, params=None, **kwargs):
https://docs.huvrdata.app/reference/api_checklist-tasks_list
"""
return self.client.request(
return self.client.request_json(
method="get",
path=f"/api/checklist-tasks/",
params=params,
Expand All @@ -60,7 +60,7 @@ def create(self, json=None, **kwargs):
https://docs.huvrdata.app/reference/api_checklist-tasks_create
"""
return self.client.request(
return self.client.request_json(
method="post",
path=f"/api/checklist-tasks/",
json=json,
Expand All @@ -76,7 +76,7 @@ def read(self, id, **kwargs):
https://docs.huvrdata.app/reference/api_checklist-tasks_read
"""
return self.client.request(
return self.client.request_json(
method="get",
path=f"/api/checklist-tasks/{id}/",
**kwargs,
Expand All @@ -93,7 +93,7 @@ def update(self, id, json=None, **kwargs):
https://docs.huvrdata.app/reference/api_checklist-tasks_update
"""
return self.client.request(
return self.client.request_json(
method="put",
path=f"/api/checklist-tasks/{id}/",
json=json,
Expand All @@ -111,7 +111,7 @@ def partial_update(self, id, json=None, **kwargs):
https://docs.huvrdata.app/reference/api_checklist-tasks_partial_update
"""
return self.client.request(
return self.client.request_json(
method="patch",
path=f"/api/checklist-tasks/{id}/",
json=json,
Expand All @@ -124,7 +124,7 @@ def delete(self, id, **kwargs):
https://docs.huvrdata.app/reference/api_checklist-tasks_delete
"""
return self.client.request(
return self.client.request_json(
method="delete",
path=f"/api/checklist-tasks/{id}/",
**kwargs,
Expand Down
Loading

0 comments on commit 8619d25

Please sign in to comment.