diff --git a/fetch_clients_projects.py b/fetch_clients_projects.py new file mode 100644 index 0000000..cf204fb --- /dev/null +++ b/fetch_clients_projects.py @@ -0,0 +1,27 @@ +import os +import json +import urllib.request +from dotenv import load_dotenv + +load_dotenv() + +url = "https://api.harvestapp.com/v2/projects?updated_since=2021-05-01" +headers = { + "User-Agent": "Python Harvest API", + "Authorization": "Bearer " + os.environ.get("HARVEST_ACCESS_TOKEN"), + "Harvest-Account-ID": os.environ.get("HARVEST_ACCOUNT_ID") +} + +request = urllib.request.Request(url=url, headers=headers) +response = urllib.request.urlopen(request, timeout=5) +responseBody = response.read().decode("utf-8") +api_projects = json.loads(responseBody) + +if (len(api_projects["projects"]) == 100): + print("You retrieved exactly 100 projects, the API limit. Harvest probably has more. Adjust this script to get additional pages of results or archive some projects!") + +projects = {} +for project in api_projects["projects"]: + projects[project["name"]] = project["client"]["name"] + +