summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2019-03-23 13:55:15 +0200
committerLars Wirzenius <liw@liw.fi>2019-03-23 13:55:15 +0200
commit11b6285376be9912ff58651eb88c3f0f8d3cd0c1 (patch)
tree3a37d425ab1edaee326abfd4d6d82b405c647d8b
parent4dd778baeaef3db914b783dcf2cc80bb653d8f13 (diff)
downloadeffitool-11b6285376be9912ff58651eb88c3f0f8d3cd0c1.tar.gz
Refactor: DRY: move listing all members to its own method
-rwxr-xr-xeffitool53
1 files changed, 20 insertions, 33 deletions
diff --git a/effitool b/effitool
index 87b4a96..af504de 100755
--- a/effitool
+++ b/effitool
@@ -347,45 +347,14 @@ class Tool:
server = self.get_chosen_server(args)
token = self.get_admin_token(server)
api = HTTPAPI(server['url'])
- cond = {
- 'cond': [
- {
- 'where': 'meta',
- 'op': '>=',
- 'field': 'id',
- 'pattern': '',
- }
- ]
- }
- body = json.dumps(cond).encode('utf-8')
- headers = {
- 'Content-Type': 'application/json',
- }
- obj = api.get_list(token, '/search', headers=headers, body=body)
- for rid in sorted(obj.get('resources', [])):
+ for rid in self._get_all_member_ids(api, token):
print(rid)
def dump_members(self, args):
server = self.get_chosen_server(args)
token = self.get_admin_token(server)
api = HTTPAPI(server['url'])
- cond = {
- 'cond': [
- {
- 'where': 'meta',
- 'op': '>=',
- 'field': 'id',
- 'pattern': '',
- }
- ]
- }
- body = json.dumps(cond).encode('utf-8')
- headers = {
- 'Content-Type': 'application/json',
- }
- obj = api.get_list(token, '/search', headers=headers, body=body)
- rids = obj.get('resources', [])
-
+ rids = self._get_all_member_ids(api, token)
members = {
rid: self._fetch_member(api, token, rid)
for rid in rids
@@ -398,6 +367,24 @@ class Tool:
}
return api.get_json(token, '/memb', headers=headers)
+ def _get_all_member_ids(self, api, token):
+ cond = {
+ 'where': 'meta',
+ 'op': '>=',
+ 'field': 'id',
+ 'pattern': '',
+ }
+ return self._search_members(api, token, cond)
+
+ def _search_members(self, api, token, cond):
+ cond = {'cond': [cond]}
+ body = json.dumps(cond).encode('utf-8')
+ headers = {
+ 'Content-Type': 'application/json',
+ }
+ obj = api.get_list(token, '/search', headers=headers, body=body)
+ return sorted(obj.get('resources', []))
+
def _format_json(self, obj, output):
return json.dump(obj, output, indent=4, sort_keys=True)