From e1a2b0cd8bb9f46ff0c3bb5981f2b96d4a11d91a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Melan=C3=A7on?= Date: Wed, 2 Jun 2021 11:27:53 -0400 Subject: [PATCH] Commit working version of fetching Harvest projects from their API ... not saving it anywhere, yet. --- fetch_clients_projects.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 fetch_clients_projects.py 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"] + +