in scripts/bulk-update-status.py [0:0]
def get_projects(records, headers, timestamp, project_list_url, unix_timestamp) -> list:
projects = []
number_of_records = len(records)
with open(f"projects_{timestamp}-{unix_timestamp}.json", "w") as f:
f.write("[") # start the array
for i, record in enumerate(records):
commission_id = record['id']
print(f"{number_of_records - i} commissions to go...")
print(f"Getting projects for commission ID: {commission_id}")
try:
json_content = api_put_request(
project_list_url,
headers,
json.dumps({"match": "W_EXACT", "commissionId": commission_id}),
)
for project in json_content["result"]:
if project['status'] == "Completed" or project['status'] == "Killed":
print(f"Skipping project {project['id']} with status: {project['status']}")
continue
try:
if project['deletable'] == True and project['deep_archive'] == True:
print(f"Skipping project {project['id']} with deletable: {project['deletable']} and deep_archive: {project['deep_archive']}")
with open(f"check_{timestamp}-{unix_timestamp}.json", "a") as f:
f.write(json.dumps(project))
f.write(",")
continue
except KeyError:
with open(f"check_{timestamp}-{unix_timestamp}.json", "a") as f:
f.write(json.dumps(project))
f.write(",")
continue
created_timestamp = parse_timestamp(project['created'])
parsed_timestamp = parse_timestamp(timestamp)
if created_timestamp > parsed_timestamp:
print(f"Skipping project {project['id']} with created date: {project['created']}")
continue
print(f"Adding project with id: {project['id']} to list of projects to update")
projects += [project]
with open(f"projects_{timestamp}-{unix_timestamp}.json", "a") as f:
f.write(json.dumps(project))
f.write(",") # add a comma between records
except requests.exceptions.RequestException as e:
raise Exception(f"An error occurred. {e} Exiting script...")
# remove the trailing comma and end the array
with open(f"projects_{timestamp}-{unix_timestamp}.json", "rb+") as f:
f.seek(-1, os.SEEK_END)
f.truncate()
f.write(b"]")
return projects