diff options
author | Bryan Newbold <bnewbold@robocracy.org> | 2019-05-30 14:48:16 -0700 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2019-05-30 14:48:16 -0700 |
commit | ab5755117907a5e4f55e3b508c75f4f5220c6333 (patch) | |
tree | 4334e19ed05d492628ef8fe12931f1bde1ccde28 | |
parent | d6ab59e69c3235b5ac4085624987b45c25f577ec (diff) | |
download | fatcat-ab5755117907a5e4f55e3b508c75f4f5220c6333.tar.gz fatcat-ab5755117907a5e4f55e3b508c75f4f5220c6333.zip |
journal_metadata import: allow KBART updates
-rw-r--r-- | python/fatcat_tools/importers/journal_metadata.py | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/python/fatcat_tools/importers/journal_metadata.py b/python/fatcat_tools/importers/journal_metadata.py index 89ad6fc0..d24b4103 100644 --- a/python/fatcat_tools/importers/journal_metadata.py +++ b/python/fatcat_tools/importers/journal_metadata.py @@ -110,16 +110,27 @@ class JournalMetadataImporter(EntityImporter): except fatcat_client.rest.ApiException as err: if err.status != 404: raise err - # doesn't exist, need to update + + if not existing: + # doesn't exist, create it return True - # eventually we'll want to support "updates", but for now just skip if - # entity already exists - if existing: + # for now, only update KBART, and only if there is new content + if not existing.extra: + existing.extra = dict() + if ce.extra.get('kbart') and (existing.extra.get('kbart') != ce.extra['kbart']): + if not existing.extra.get('kbart'): + existing.extra['kbart'] = {} + existing.extra['kbart'].update(ce.extra['kbart']) + self.api.update_container(self.get_editgroup_id(), existing.ident, existing) + self.counts['update'] += 1 + return False + else: self.counts['exists'] += 1 return False - return True + # if we got this far, it's a bug + raise NotImplementedError def insert_batch(self, batch): self.api.create_container_auto_batch(fatcat_client.ContainerAutoBatch( |