diff options
author | Lars Wirzenius <liw@liw.fi> | 2019-03-23 13:55:15 +0200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2019-03-23 13:55:15 +0200 |
commit | 11b6285376be9912ff58651eb88c3f0f8d3cd0c1 (patch) | |
tree | 3a37d425ab1edaee326abfd4d6d82b405c647d8b | |
parent | 4dd778baeaef3db914b783dcf2cc80bb653d8f13 (diff) | |
download | effitool-11b6285376be9912ff58651eb88c3f0f8d3cd0c1.tar.gz |
Refactor: DRY: move listing all members to its own method
-rwxr-xr-x | effitool | 53 |
1 files changed, 20 insertions, 33 deletions
@@ -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) |