From b7883de47e05d0b52ea4e04440f4894a0a9032a1 Mon Sep 17 00:00:00 2001 From: "bozo.kopic" Date: Sun, 19 Dec 2021 02:38:15 +0100 Subject: server error messages improvement --- src_py/opcut/server.py | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) (limited to 'src_py') diff --git a/src_py/opcut/server.py b/src_py/opcut/server.py index 6f9755f..92a4186 100644 --- a/src_py/opcut/server.py +++ b/src_py/opcut/server.py @@ -54,21 +54,35 @@ class Server(aio.Resource): raise aiohttp.web.HTTPFound('/index.html') async def _calculate_handler(self, request): - data = await request.json() - common.json_schema_repo.validate( - 'opcut://opcut.yaml#/definitions/params', data) + try: + data = await request.json() + common.json_schema_repo.validate( + 'opcut://opcut.yaml#/definitions/params', data) + + except Exception: + return aiohttp.web.Response(status=400, + text="Invalid request") method = common.Method(request.query['method']) params = common.params_from_json(data) - result = await self._executor(opcut.csp.calculate, params, method) + try: + result = await self._executor(opcut.csp.calculate, params, method) + return aiohttp.web.json_response(common.result_to_json(result)) - return aiohttp.web.json_response(common.result_to_json(result)) + except common.UnresolvableError: + return aiohttp.web.Response(status=400, + text='Result is not solvable') async def _generate_output_handler(self, request): - data = await request.json() - common.json_schema_repo.validate( - 'opcut://opcut.yaml#/definitions/result', data) + try: + data = await request.json() + common.json_schema_repo.validate( + 'opcut://opcut.yaml#/definitions/result', data) + + except Exception: + return aiohttp.web.Response(status=400, + text="Invalid request") output_type = common.OutputType(request.query['output_type']) panel = request.query.get('panel') -- cgit v1.2.3-70-g09d2