From 11b6285376be9912ff58651eb88c3f0f8d3cd0c1 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 23 Mar 2019 13:55:15 +0200 Subject: Refactor: DRY: move listing all members to its own method --- effitool | 53 ++++++++++++++++++++--------------------------------- 1 file 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) -- cgit v1.2.1