diff options
Diffstat (limited to 'fatcat/api_client.py')
-rw-r--r-- | fatcat/api_client.py | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/fatcat/api_client.py b/fatcat/api_client.py index 12c70407..181c3ca7 100644 --- a/fatcat/api_client.py +++ b/fatcat/api_client.py @@ -9,11 +9,9 @@ class FatCatApiClient: self.host_url = host_url self.session = requests.Session() - def get(self, path): return self.session.get(self.host_url + path) - def post(self, path, data=None, headers=None): hdrs = {"content-type": "application/json"} if headers: @@ -22,22 +20,27 @@ class FatCatApiClient: # data = json.dumps(data, indent=None).encode('utf-8') return self.session.post(self.host_url + path, json=data, headers=hdrs) - def import_crossref_file(self, json_file): + eg = self.new_edit_group() with open(json_file, 'r') as file: for line in file: obj = json.loads(line) - self.import_crossref_dict(obj) - + self.import_crossref_dict(obj, editgroup=eg) + self.accept_editgroup(eg) def new_edit_group(self): - rv = self.post('/v0/editgroup') + rv = self.post('/v0/editgroup', data=dict( + editor=1)) assert rv.status_code == 200 editgroup_id = rv.json()['id'] return editgroup_id + def accept_editgroup(self, eg): + rv = self.post('/v0/editgroup/{}/accept'.format(eg)) + assert rv.status_code == 200 + return rv - def import_crossref_dict(self, meta): + def import_crossref_dict(self, meta, editgroup=None): # creators creators = [] @@ -71,7 +74,7 @@ class FatCatApiClient: # work and release title = meta['title'][0] rv = self.post('/v0/work', - data=dict(title=title)) #work_type="book" + data=dict(title=title, editgroup=editgroup)) #work_type="book" assert rv.status_code == 200 work_id = rv.json()['id'] @@ -88,6 +91,7 @@ class FatCatApiClient: issue=meta.get('issue', None), volume=meta.get('volume', None), pages=meta.get('page', None), + editgroup=editgroup, extra=dict(crossref={ 'links': meta.get('link', []), 'subject': meta['subject'], @@ -96,7 +100,6 @@ class FatCatApiClient: assert rv.status_code == 200 release_id = rv.json()['id'] - def health(self): rv = self.get("/health") assert rv.status_code == 200 |