def on_ext(self, request): if request.method == 'POST': r = {'result': None, 'error': None} method = get_path_info(request.environ) data = request.get_data() if type(data) != str: data = to_unicode(data, 'utf-8') params = json.loads(data) task = self.get_task() try: data = None if self.under_maintenance: status = common.UNDER_MAINTAINANCE elif task.on_ext_request: status = common.RESPONSE self._busy += 1 try: data = task.on_ext_request(task, method, params) finally: self._busy -= 1 else: status = None r['result'] = {'status': status, 'data': data, 'version': task.version} except AbortException as e: traceback.print_exc() r['result'] = {'data': [None, error_message(e)]} r['error'] = error_message(e) except Exception as e: traceback.print_exc() #~ if common.SETTINGS['DEBUGGING']: #~ raise r['result'] = {'data': [None, error_message(e)]} r['error'] = error_message(e) return self.create_post_response(request, r)
def on_ext(self, request): if request.method == 'POST': r = {'result': None, 'error': None} method = get_path_info(request.environ) data = request.get_data() if type(data) != str: data = to_unicode(data, 'utf-8') try: params = json.loads(data) except: params = None if self.task: try: data = None if self.under_maintenance: status = common.UNDER_MAINTAINANCE elif self.task.on_ext_request: status = common.RESPONSE self._busy += 1 try: data = self.task.on_ext_request(self.task, method, params) finally: self._busy -= 1 else: status = None r['result'] = {'status': status, 'data': data, 'modification': self.MODIFICATION} except AbortException as e: traceback.print_exc() r['result'] = {'data': [None, error_message(e)]} r['error'] = error_message(e) except Exception as e: traceback.print_exc() r['result'] = {'data': [None, error_message(e)]} r['error'] = error_message(e) else: r['result'] = {'status': self.state, 'data': None, 'modification': None} return self.create_post_response(request, r)
def on_ext(self, request): if request.method == 'POST': r = {'result': None, 'error': None} method = get_path_info(request.environ) data = request.get_data() if type(data) != str: data = to_unicode(data, 'utf-8') try: params = json.loads(data) except: params = None if self.task: try: data = None if self.under_maintenance: status = common.UNDER_MAINTAINANCE elif self.task.on_ext_request: status = common.RESPONSE self._busy += 1 try: data = self.task.on_ext_request(self.task, method, params) finally: self._busy -= 1 else: status = None r['result'] = {'status': status, 'data': data, 'version': self.task.version} except AbortException as e: traceback.print_exc() r['result'] = {'data': [None, error_message(e)]} r['error'] = error_message(e) except Exception as e: traceback.print_exc() r['result'] = {'data': [None, error_message(e)]} r['error'] = error_message(e) else: r['result'] = {'status': self.state, 'data': None, 'version': None} return self.create_post_response(request, r)
def on_api(self, request): error = '' if request.method == 'POST': r = {'result': None, 'error': None} try: data = request.get_data() if type(data) != str: data = to_unicode(data, 'utf-8') method, task_id, item_id, params, modification, date = json.loads(data) if task_id == 0: task = self.admin else: task = self.task if not task: task = self.get_task() if not task: lang = self.admin.lang result = {'status': None, 'data': {'error': lang['error'], \ 'info': lang['info']}, 'modification': None} result['status'] = self.state if self.state == common.PROJECT_LOADING: result['data']['project_loading'] = lang['project_loading'] elif self.state == common.PROJECT_NO_PROJECT: result['data']['no_project'] = lang['no_project'] elif self.state == common.PROJECT_ERROR: result['data']['project_error'] = lang['project_error'] r ['result'] = result return self.create_post_response(request, r) if not task: result = {'status': common.PROJECT_NO_PROJECT, 'data': None, 'modification': None} else: self.check_build() result = {'status': common.RESPONSE, 'data': None, 'modification': self.MODIFICATION} if task_id and modification and modification != self.MODIFICATION: result['status'] = common.PROJECT_MODIFIED elif self.under_maintenance: result['status'] = common.PROJECT_MAINTAINANCE elif method == 'connect': self.connect(request, task) result['data'] = self.connect(request, task) elif method == 'login': result['data'] = self.login(request, task, params[0]) elif method == 'logout': self.logout(request, task); result['status'] = common.PROJECT_NOT_LOGGED result['data'] = common.PROJECT_NOT_LOGGED else: if not self.check_session(request, task): result['status'] = common.PROJECT_NOT_LOGGED result['data'] = common.PROJECT_NOT_LOGGED else: item = task if task and item_id: item = task.item_by_ID(item_id) self._busy += 1 try: data = self.get_response(item, method, params) finally: self._busy -= 1 result['data'] = data r ['result'] = result except AbortException as e: traceback.print_exc() error = error_message(e) r['result'] = {'data': [None, error]} r['error'] = error except Exception as e: traceback.print_exc() error = error_message(e) if self.DEBUGGING and task_id != 0: raise r['result'] = {'data': [None, error]} r['error'] = error response = self.create_post_response(request, r) request.save_session(response, self, task) return response
def on_api(self, request): error = '' if request.method == 'POST': r = {'result': None, 'error': None} try: data = request.get_data() if type(data) != str: data = to_unicode(data, 'utf-8') method, task_id, item_id, params, date = json.loads(data) if task_id == 0: task = self.admin else: task = self.get_task() result = {'status': common.RESPONSE, 'data': None, 'version': task.version} if not task: result['status'] = common.NO_PROJECT elif self.under_maintenance: result['status'] = common.UNDER_MAINTAINANCE elif method == 'connect': self.connect(request, task) result['data'] = self.connect(request, task) elif method == 'login': result['data'] = self.login(request, task, params[0], params[1]) elif method == 'logout': self.logout(request, task); result['status'] = common.NOT_LOGGED result['data'] = common.NOT_LOGGED else: if not self.check_session(request, task): result['status'] = common.NOT_LOGGED result['data'] = common.NOT_LOGGED else: item = task if task and item_id: item = task.item_by_ID(item_id) self._busy += 1 try: data = None started = datetime.datetime.now() if task.on_before_request: data = task.on_before_request(item, method, params) if not data: data = self.get_response(item, method, params) if task.on_after_request: task.on_after_request(item, method, params, datetime.datetime.now() - started) finally: self._busy -= 1 result['data'] = data r ['result'] = result except AbortException as e: traceback.print_exc() error = error_message(e) r['result'] = {'data': [None, error]} r['error'] = error except Exception as e: traceback.print_exc() error = error_message(e) if common.SETTINGS['DEBUGGING'] and task_id != 0: raise r['result'] = {'data': [None, error]} r['error'] = error response = self.create_post_response(request, r) request.save_session(response, self, task) return response
def on_api(self, request): error = '' if request.method == 'POST': r = {'result': None, 'error': None} try: data = request.get_data() if type(data) != str: data = to_unicode(data, 'utf-8') method, task_id, item_id, params, date = json.loads(data) if task_id == 0: task = self.admin else: task = self.task if not task: task = self.get_task() if not task: lang = self.admin.lang result = {'status': None, 'data': {'error': lang['error'], \ 'info': lang['info']}, 'version': None} result['status'] = self.state if self.state == common.PROJECT_LOADING: result['data']['project_loading'] = lang['project_loading'] elif self.state == common.PROJECT_NO_PROJECT: result['data']['no_project'] = lang['no_project'] elif self.state == common.PROJECT_ERROR: result['data']['project_error'] = lang['project_error'] r ['result'] = result return self.create_post_response(request, r) result = {'status': common.RESPONSE, 'data': None, 'version': task.version} if not task: result['status'] = common.PROJECT_NO_PROJECT elif self.under_maintenance: result['status'] = common.PROJECT_MAINTAINANCE elif method == 'connect': self.connect(request, task) result['data'] = self.connect(request, task) elif method == 'login': result['data'] = self.login(request, task, params[0]) elif method == 'logout': self.logout(request, task); result['status'] = common.PROJECT_NOT_LOGGED result['data'] = common.PROJECT_NOT_LOGGED else: if not self.check_session(request, task): result['status'] = common.PROJECT_NOT_LOGGED result['data'] = common.PROJECT_NOT_LOGGED else: item = task if task and item_id: item = task.item_by_ID(item_id) self._busy += 1 try: data = None started = datetime.datetime.now() if task.on_before_request: data = task.on_before_request(item, method, params) if not data: data = self.get_response(item, method, params) if task.on_after_request: task.on_after_request(item, method, params, datetime.datetime.now() - started) finally: self._busy -= 1 result['data'] = data r ['result'] = result except AbortException as e: traceback.print_exc() error = error_message(e) r['result'] = {'data': [None, error]} r['error'] = error except Exception as e: traceback.print_exc() error = error_message(e) if common.SETTINGS['DEBUGGING'] and task_id != 0: raise r['result'] = {'data': [None, error]} r['error'] = error response = self.create_post_response(request, r) request.save_session(response, self, task) return response