Skip to content

Commit c38abdc

Browse files
authored
Merge pull request #182 from MaRDI4NFDI/adjust_flask_response
adjust response
2 parents d4100b7 + 8deac4a commit c38abdc

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

flask_app/app.py

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,24 +25,31 @@ def import_wikidata():
2525
if not qids:
2626
return jsonify(error="missing qids"), 400
2727
wdi = WikidataImporter()
28-
results, errors = [], []
28+
results = {}
29+
all_ok = True
2930
for q in qids:
3031
try:
3132
imported_q = wdi.import_entities(q)
3233
if not imported_q:
3334
log.info(f"No import for wikidata qid {q}")
35+
status = "not_imported"
36+
ok = False
3437
else:
3538
log.info(f"Import for wikidata qid {q}: {imported_q}")
36-
results.append({"qid": imported_q, "result": imported_q is not None})
39+
status = "success"
40+
ok = True
41+
results[q] = {"qid": imported_q,"status": status,}
42+
if not ok: all_ok = False
3743
except Exception as e:
3844
log.error("importing wikidata failed: %s", e, exc_info=True)
39-
errors.append({"qid": q, "error": str(e)})
45+
results[q] = {"qid": None,"status": "error","error": str(e),}
46+
all_ok = False
47+
4048
return jsonify({
4149
"qids": qids,
4250
"count": len(qids),
4351
"results": results,
44-
"errors": errors,
45-
"imported": len(errors) == 0
52+
"all_imported": all_ok
4653
}), 200
4754

4855

@@ -53,7 +60,8 @@ def import_doi():
5360
if not dois:
5461
return jsonify(error="missing doi"), 400
5562
dois = [x.upper() for x in dois]
56-
results, errors = [], []
63+
results = {}
64+
all_ok = True
5765
arxiv = Importer.create_source('arxiv')
5866
zenodo = Importer.create_source('zenodo')
5967
crossref = Importer.create_source('crossref')
@@ -74,16 +82,16 @@ def import_doi():
7482
log.info("crossref recognized")
7583
result = publication.create()
7684
log.info(f"Imported item {result} for doi {doi}.")
77-
results.append({"doi":doi, "result": result})
85+
results[doi] = {"qid": result,"status": "success"}
7886
except Exception as e:
7987
log.error("importing doi failed: %s", e, exc_info=True)
80-
errors.append({"doi": doi, "error": str(e)})
88+
results[doi] = {"qid": None,"status": "error", "error": str(e)}
89+
all_ok = False
8190
return jsonify({
8291
"dois": dois,
8392
"count": len(dois),
8493
"results": results,
85-
"errors": errors,
86-
"imported": len(errors) == 0
94+
"all_imported": all_ok
8795
}), 200
8896

8997
if __name__ == "__main__":

0 commit comments

Comments
 (0)