Skip to content

Commit

Permalink
Added asset details and filters for work orders
Browse files Browse the repository at this point in the history
  • Loading branch information
JMaynor committed Sep 9, 2024
1 parent cfbca94 commit 847a304
Show file tree
Hide file tree
Showing 3 changed files with 92 additions and 19 deletions.
42 changes: 42 additions & 0 deletions ezoff/assets.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,46 @@
from ezoff.auth import Decorators


@Decorators.check_env_vars
def get_asset_details(asset_id: int):
"""
Gets asset details
https://ezo.io/ezofficeinventory/developers/#api-asset-details
"""

url = os.environ["EZO_BASE_URL"] + "assets/" + str(asset_id) + ".api"

try:
response = requests.get(
url,
headers={"Authorization": "Bearer " + os.environ["EZO_TOKEN"]},
data={
"include_custom_fields": "true",
"show_document_urls": "true",
"show_image_urls": "true",
"show_services_details": "true",
},
timeout=10,
)
except Exception as e:
print("Error, could not get asset details from EZOfficeInventory: ", e)
raise Exception(
"Error, could not get asset details from EZOfficeInventory: " + str(e)
)

if response.status_code != 200:
print(
f"Error {response.status_code}, could not get asset details from EZOfficeInventory: ",
response.content,
)
raise Exception(
f"Error {response.status_code}, could not get asset details from EZOfficeInventory: "
+ str(response.content)
)

return response.json()


@Decorators.check_env_vars
def get_all_assets() -> list[dict]:
"""
Expand Down Expand Up @@ -110,6 +150,7 @@ def get_filtered_assets(filter: dict) -> list[dict]:
"include_custom_fields": "true",
"show_document_urls": "true",
"show_image_urls": "true",
"show_services_details": "true",
},
timeout=10,
)
Expand Down Expand Up @@ -180,6 +221,7 @@ def search_for_asset(search_term: str) -> list[dict]:
"show_document_urls": "true",
"show_image_urls": "true",
"show_document_details": "true",
"show_services_details": "true",
}

try:
Expand Down
44 changes: 38 additions & 6 deletions ezoff/workorders.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,34 +3,66 @@
"""

import os
from typing import Literal
from typing import Literal, Optional

import requests

from ezoff.auth import Decorators


@Decorators.check_env_vars
def get_work_orders(
filter: Literal["complete", "in_progress", "review_pending", "open"]
) -> dict:
def get_work_orders(filter: Optional[dict]) -> dict:
"""
Get filtered work orders (complete, in_progress, review_pending, or open)
Get filtered work orders.
Note: This endpoint is weird. It supports many more filters than the
documentation advertises. There is a corresponding filter for each
of the filter options in the EZOffice web interface.
https://ezo.io/ezofficeinventory/developers/#api-get-filtered-task
"""

if filter is not None:
# Remove any keys that are not valid
valid_keys = [
"filters[assigned_to]",
"filters[created_by]",
"filters[supervisor]",
"filters[reviewer]",
"filters[created_on]",
"filters[state]",
"filters[item]",
"filters[priority]",
"filters[task_type]",
"filters[due_date]",
"filters[expected_start_date]",
"filters[repetition_start_date]",
"filters[repetition_start_date]",
"filters[repetition_end_date]",
# "filters[preventive]", # Seems to cause 500 errors when used?
"filters[on_repeat]",
"filters[task_location]",
# "filters[review_pending_on_me]", # Don't know if actually useful when API is calling and not user
"filters[scheduled]",
]

filter = {k: v for k, v in filter.items() if k in valid_keys}
filter["filter"] = "filter" # Required when using filters

url = os.environ["EZO_BASE_URL"] + "tasks.api"

page = 1
all_work_orders = {}

while True:
params = {"page": page}
if filter is not None:
params.update(filter)

try:
response = requests.get(
url,
headers={"Authorization": "Bearer " + os.environ["EZO_TOKEN"]},
params={"page": page, "filter": filter},
params=params,
timeout=10,
)
except Exception as e:
Expand Down
25 changes: 12 additions & 13 deletions tests/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,16 @@

from ezoff import *

res = ezoff.retire_asset(
14753,
{
"fixed_asset[retire_reason_id]": 250829,
"fixed_asset[retired_on]": "08/30/2024",
"fixed_asset[salvage_value]": 100.00,
},
)

pprint(res)

# res = ezoff.retire_asset(
# 14753,
# {
# "fixed_asset[retire_reason_id]": 250829,
# "fixed_asset[retired_on]": "08/30/2024",
# "fixed_asset[salvage_value]": 100.00,
# },
# )

# res = ezoff.reactivate_asset(14753, {"fixed_asset[location_id]": 7})

res = ezoff.get_work_orders({"filters[created_on]": "09/06/2024"})
pass

res = ezoff.reactivate_asset(14753, {"fixed_asset[location_id]": 7})

0 comments on commit 847a304

Please sign in to comment.