From 88a5cd83b47a9dfb5a832936095c7b99ce0d8179 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ale=C5=A1=20Smodi=C5=A1?= Date: Tue, 25 Aug 2015 14:20:42 +0200 Subject: Implemented methods to fetch a list of available problems and the problem description. JavaScript no longer parses pythonic problem descriptions, instead they are loaded by server and JSONized. --- server/__init__.py | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) (limited to 'server/__init__.py') diff --git a/server/__init__.py b/server/__init__.py index f2c73b7..9f2469d 100644 --- a/server/__init__.py +++ b/server/__init__.py @@ -3,8 +3,28 @@ import multiprocessing.managers from . import user_session from . import prolog_session +import server.problems -__all__ = ['user_session'] +__all__ = ['user_session', 'prolog_session', 'problems', 'start'] + +class Codeq(object): + _method_to_typeid_ = { + 'get_session_by_id': 'UserSession', + 'get_or_create_session': 'UserSession', + 'authenticate_and_create_session': 'UserSession' + } + + def get_session_by_id(self, sid): + return user_session.get_session_by_id(sid) + + def get_or_create_session(self, uid, username, sid=None): + return user_session.get_or_create_session(uid, username, sid) + + def authenticate_and_create_session(self, username, password): + return user_session.authenticate_and_create_session(username, password) + + def list_problems_in_groups(self, language): + return server.problems.list_problems_in_groups(language) class CodeqManager(multiprocessing.managers.BaseManager): pass @@ -14,9 +34,11 @@ class UserSessionProxy(multiprocessing.managers.BaseProxy): CodeqManager.register('PrologSession') CodeqManager.register('UserSession', proxytype=UserSessionProxy) -CodeqManager.register('get_session_by_id', callable=user_session.get_session_by_id, proxytype=UserSessionProxy) -CodeqManager.register('get_or_create_session', callable=user_session.get_or_create_session, proxytype=UserSessionProxy) -CodeqManager.register('authenticate_and_create_session', callable=user_session.authenticate_and_create_session, proxytype=UserSessionProxy) +#CodeqManager.register('get_session_by_id', callable=user_session.get_session_by_id, proxytype=UserSessionProxy) +#CodeqManager.register('get_or_create_session', callable=user_session.get_or_create_session, proxytype=UserSessionProxy) +#CodeqManager.register('authenticate_and_create_session', callable=user_session.authenticate_and_create_session, proxytype=UserSessionProxy) +#CodeqManager.register('list_problems_in_groups', callable=server.problems.list_problems_in_groups) +CodeqManager.register('Codeq', callable=Codeq, method_to_typeid=Codeq._method_to_typeid_) def start(): m = CodeqManager(address=('localhost', 16231), authkey=b'c0d3q3y') -- cgit v1.2.1