From ae85e66e58f09af0161005c2d49f9161f9baf6a7 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sun, 10 Mar 2019 15:18:13 +0200 Subject: Add: /search to effiapi --- effiapi | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) (limited to 'effiapi') diff --git a/effiapi b/effiapi index 5f92901..3e83fc0 100755 --- a/effiapi +++ b/effiapi @@ -114,6 +114,9 @@ class FakeHTTPAPI(HTTPAPI): if url.endswith('/status'): return self._get_status() + if url.endswith('/search'): + return self._get_search(body) + if url.endswith('/res'): return self._get_resource(headers) @@ -124,7 +127,37 @@ class FakeHTTPAPI(HTTPAPI): body = { 'resources': len(self._memb), } - return FakeResponse(200, {}, body=json.dumps(body)) + return FakeResponse(200, {}, json.dumps(body)) + + def _get_search(self, body): + cond = json.loads(body) + logging.debug('_get_search: cond: %r', cond) + matches = [ + rid + for rid in self._memb + if self._matches_cond(rid, cond) + ] + + headers = { + 'Content-Type': 'application/json', + } + result = { + 'resources': matches, + } + return FakeResponse(200, headers, json.dumps(result)) + + def _matches_cond(self, rid, cond): + assert cond == { + 'cond': [ + { + 'where': 'meta', + 'op': '>=', + 'field': 'id', + 'pattern': '', + } + ] + } + return True def _get_resource(self, headers): if headers is None: @@ -340,7 +373,9 @@ class API: return response(404, None, str(e)) def _search(self): + logging.debug('_search callback called') cond = bottle.request.json + logging.debug('_search callback: %r', cond) result = self._muck.search(cond) return response(200, None, result) -- cgit v1.2.1