def get_projects()

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