@@ -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
8997if __name__ == "__main__" :
0 commit comments