Compare commits

...
2 Commits
Author SHA1 Message Date
cas 7dbc4ae55c Fix potential import error 2023-03-06 10:58:46 -08:00
cas 401572996d Add catching for the error that can happen if an object type does not exist 2023-03-06 10:58:26 -08:00
+13 -2
View File
@@ -23,6 +23,7 @@ import MySQLdb as mysql
from collections import defaultdict from collections import defaultdict
from typing import Any, Dict, List from typing import Any, Dict, List
import civicrmapi4
from civicrmapi4.civicrmapi4 import APIv4 from civicrmapi4.civicrmapi4 import APIv4
import phpserialize import phpserialize
@@ -222,6 +223,16 @@ def parse_arguments() -> argparse.Namespace:
return parser.parse_args() return parser.parse_args()
def wrap_api_get(api, obj, args=None):
if args is None:
args = []
try:
return api.get(obj, args)
except civicrmapi4.civicrmapi4.CallFailed:
logging.error("Could not fetch {}".format(obj))
return []
def main() -> int: def main() -> int:
args = parse_arguments() args = parse_arguments()
@@ -261,14 +272,14 @@ def main() -> int:
for table in DUMP_TRIVIAL: for table in DUMP_TRIVIAL:
output = args.output / (table + ".json") output = args.output / (table + ".json")
data = api.get(table) data = wrap_api_get(api, table)
if data: if data:
print("dumping", table) print("dumping", table)
with output.open("w") as of: with output.open("w") as of:
of.write(json.dumps(data)) of.write(json.dumps(data))
# dump org contacts # dump org contacts
output = args.output / ("Contact.json") output = args.output / ("Contact.json")
data = api.get("Contact", where=[["contact_sub_type", "CONTAINS", "Political_Party"]]) data = wrap_api_get(api, "Contact", where=[["contact_sub_type", "CONTAINS", "Political_Party"]])
if data: if data:
print("dumping parties") print("dumping parties")
with output.open("w") as of: with output.open("w") as of: