This repository has been archived by the owner on Nov 16, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathupdate_pkg_and_res.py
65 lines (46 loc) · 1.98 KB
/
update_pkg_and_res.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
from config import api_key, url_base
import requests
import json
from toolz.dicttoolz import get_in
headers = {'Authorization': api_key, 'content-type': 'application/json; charset=UTF-8'}
def update_all():
def update_res(res):
currentVersion = get_in(['dara_currentVersion'], res, '1')
# for old datasets that will be part of production!
data = json.dumps({'id': res['id'],
'dara_currentVersion': currentVersion,
'dara_DOI_Test': "", 'dara_registered_test': "",
'dara_updated_test': "", 'dara_DOI': "", 'dara_DOI_Test': ""} )
update('resource_patch', data)
print u'updated resource "{}"'.format(res['name'])
def update_pkg(pkg):
currentVersion = pkg['dara_currentVersion'] or '1'
pubdate = pkg['dara_PublicationDate'] or '2000'
data = json.dumps({'id': pkg['id'],
'dara_currentVersion': currentVersion,
'dara_registered': "", 'dara_updated': "", 'dara_PublicationDate':
pubdate, 'dara_DOI_Test': "", 'dara_updated_test': "",
'dara_registered_test': "", 'dara_DOI': "", 'dara_DOI_Test': ""})
update('package_patch', data)
map(update_res, pkg['resources'])
print u'updated pkg and resources of "{}"'.format(pkg['title'])
pkgs = get_all_packages()
a = map(update_pkg, pkgs)
print u'updated {} packages'.format(len(a))
def update(action, data):
req = requests.post(
url(action),
data=data,
headers=headers)
if not req.status_code == 200:
import ipdb; ipdb.set_trace()
def url(action):
return "{}/api/action/{}".format(url_base, action)
def get_all_packages():
params = {'limit': 1000}
req = requests.get(url('current_package_list_with_resources'),
headers=headers, params=params)
assert req.status_code == 200
req_dict = json.loads(req.content)
pkgs = req_dict['result']
return pkgs