Skip to content

Commit

Permalink
Merge pull request #5459 from czcorpus/status_trigger_fix
Browse files Browse the repository at this point in the history
Improve URL path error processing
  • Loading branch information
tomachalek authored Dec 12, 2022
2 parents b20460d + c2f97d5 commit 2fd7168
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 11 deletions.
24 changes: 13 additions & 11 deletions lib/controller/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -477,8 +477,8 @@ def _run_message_action(
tpl_path, method_ans = self.process_action('message_xml', req_args)
action_metadata.update(self._get_method_metadata('message_xml'))
elif action_metadata['return_type'] == 'plain':
tpl_path, method_ans = self.process_action('message_json', req_args)
action_metadata.update(self._get_method_metadata('message_json'))
tpl_path, method_ans = self.process_action('message_plain', req_args)
action_metadata.update(self._get_method_metadata('message_plain'))
else:
tpl_path, method_ans = self.process_action('message', req_args)
action_metadata.update(self._get_method_metadata('message'))
Expand Down Expand Up @@ -514,18 +514,20 @@ def run(self, path: Optional[List[str]] = None) -> Tuple[str, List[Tuple[str, st
self._proc_time = time.time()
path = path if path is not None else self._import_req_path()
path_elms = [x for x in path if x]
if len(path_elms) > 1:
raise NotFoundException('Unknown path')
methodname = path_elms[0]
err: Optional[Tuple[Exception, Optional[str]]] = None
action_metadata: Dict[str, Any] = self._get_method_metadata(methodname)
action_metadata: Dict[str, Any] = dict(return_type='plain')
tmpl: Optional[str]
result: Optional[Dict[str, Any]]
if not action_metadata:
def null(): pass
action_metadata = {}
action_metadata.update(exposed()(null).__dict__)
err: Optional[Tuple[Exception, Optional[str]]] = None
methodname = 'message'
try:
if len(path_elms) > 1:
raise NotFoundException('Unknown path')
methodname = path_elms[0]
action_metadata = self._get_method_metadata(methodname)
if not action_metadata:
def null(): pass
action_metadata = {}
action_metadata.update(exposed()(null).__dict__)
self.init_session()
if self.is_action(methodname, action_metadata):
req_args = self.pre_dispatch(methodname, action_metadata)
Expand Down
4 changes: 4 additions & 0 deletions lib/controller/kontext.py
Original file line number Diff line number Diff line change
Expand Up @@ -1215,6 +1215,10 @@ def message(self, *args, **kwargs):
def message_json(self, *args, **kwargs):
return self.message(*args, **kwargs)

@exposed(accept_kwargs=True, func_arg_mapped=True, skip_corpus_init=True, return_type='plain')
def message_plain(self, *args, **kwargs):
return "\n".join(msg for _, msg in self._system_messages)

@exposed(accept_kwargs=True, func_arg_mapped=True, skip_corpus_init=True, return_type='xml')
def message_xml(self, *args, **kwargs):
return self.message(*args, **kwargs)
Expand Down

0 comments on commit 2fd7168

Please sign in to comment.