diff options
Diffstat (limited to 'wsgi_server.py')
-rw-r--r-- | wsgi_server.py | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/wsgi_server.py b/wsgi_server.py index df3c303..2597403 100644 --- a/wsgi_server.py +++ b/wsgi_server.py @@ -145,29 +145,45 @@ class Query(CodeqService): class Hint(CodeqService): def process(self, js, session): + language = js.get('language') problem_id = js.get('problem_id') program = js.get('program') + if problem_id is None: - return {'code': 1, 'message': 'Problem ID not given'} + return {'code': 1, 'message': 'No problem ID specified'} if program is None: return {'code': 2, 'message': 'No program specified'} - prolog = session.get_prolog() - hints = prolog.hint(session.get_uid(), problem_id, program) + if language == 'prolog': + lang_session = session.get_prolog() + elif language == 'python': + lang_session = session.get_python() + else: + return {'code': 3, 'message': 'Unknown language specified'} + + hints = lang_session.hint(session.get_uid(), problem_id, program) return {'code': 0, 'message': 'ok', 'hints': hints} class Test(CodeqService): def process(self, js, session): + language = js.get('language') problem_id = js.get('problem_id') program = js.get('program') + if problem_id is None: - return {'code': 1, 'message': 'Problem ID not given'} + return {'code': 1, 'message': 'No problem ID specified'} if program is None: return {'code': 2, 'message': 'No program specified'} - prolog = session.get_prolog() - messages = prolog.test(session.get_uid(), problem_id, program) - return {'code': 0, 'message': 'ok', 'hints': messages} + if language == 'prolog': + lang_session = session.get_prolog() + elif language == 'python': + lang_session = session.get_python() + else: + return {'code': 3, 'message': 'Unknown language specified'} + + hints = lang_session.test(session.get_uid(), problem_id, program) + return {'code': 0, 'message': 'ok', 'hints': hints} class GetProblem(CodeqService): def process(self, js, session): |