def matches(self, req: BoltRequest, resp: BoltResponse) -> bool:
     return self.func(**build_required_kwargs(
         logger=self.logger,
         required_arg_names=self.arg_names,
         request=req,
         response=resp,
     ))
Esempio n. 2
0
 def test_build(self):
     required_args = [
         "logger",
         "client",
         "req",
         "resp",
         "context",
         "body",
         "payload",
         "ack",
         "say",
         "respond",
         "next",
     ]
     arg_params: dict = build_required_kwargs(
         logger=logging.getLogger(__name__),
         required_arg_names=required_args,
         request=BoltRequest(body="", headers={}),
         response=BoltResponse(status=200),
         next_func=next,
     )
     args = Args(**arg_params)
     assert args.logger is not None
     assert args.request is not None
     assert args.response is not None
     assert args.client is not None
Esempio n. 3
0
 def request_wired_func_wrapper() -> None:
     try:
         func(**build_required_kwargs(
             logger=logger,
             required_arg_names=arg_names,
             request=request,
             response=None,
         ))
     except Exception as e:
         logger.error(f"Failed to run an internal function ({e})")
Esempio n. 4
0
 def run_ack_function(
     self,
     *,
     request: BoltRequest,
     response: BoltResponse,
 ) -> BoltResponse:
     return self.func(**build_required_kwargs(
         logger=self.logger,
         required_arg_names=self.arg_names,
         request=request,
         response=response,
     ))
Esempio n. 5
0
 def run_ack_function(
     self,
     *,
     request: BoltRequest,
     response: BoltResponse,
 ) -> Optional[BoltResponse]:
     return self.ack_function(**build_required_kwargs(
         logger=self.logger,
         required_arg_names=self.arg_names,
         request=request,
         response=response,
         this_func=self.ack_function,
     ))
Esempio n. 6
0
 def process(
     self,
     *,
     req: BoltRequest,
     resp: BoltResponse,
     next: Callable[[], BoltResponse],
 ) -> BoltResponse:
     return self.func(**build_required_kwargs(
         logger=self.logger,
         required_arg_names=self.arg_names,
         request=req,
         response=resp,
         next_func=next,
     ))
Esempio n. 7
0
 def test_all_values_from_context(self):
     req = BoltRequest(body="", headers={})
     req.context["foo"] = "FOO"
     req.context["bar"] = 123
     required_args = ["foo", "bar", "ack"]
     arg_params: dict = build_required_kwargs(
         logger=logging.getLogger(__name__),
         required_arg_names=required_args,
         request=req,
         response=BoltResponse(status=200),
         next_func=next,
     )
     assert arg_params["foo"] == "FOO"
     assert arg_params["bar"] == 123
     assert arg_params["ack"] is not None
Esempio n. 8
0
 def __init__(self, ack: Ack, event: dict, client: WebClient,
              context: BoltContext, logger: logging.Logger, payload: dict,
              request: BoltRequest, response: BoltResponse):
     self.herald = herald
     text = get_bot_mention_text(context.get('bot_user_id'),
                                 payload.get('text'))
     keyword, sep, payload_text = text.partition(" ")
     payload['text'] = payload_text
     if hasattr(self, keyword):
         event_handler = getattr(self, keyword)
         arg_names = inspect.getfullargspec(event_handler).args
         event_handler(**build_required_kwargs(
             logger=logger,
             request=request,
             response=response,
             required_arg_names=arg_names,
             this_func=event_handler,
         ))
Esempio n. 9
0
File: jibot.py Progetto: Joi/jibot3
 def __init__(self, ack: Ack, context: BoltContext, logger: logging.Logger,
              payload: dict, request: BoltRequest, respond: Respond,
              response: BoltResponse):
     self.herald = herald
     keyword, sep, payload_text = payload.get('text').partition(" ")
     payload['text'] = payload_text
     if keyword:
         if hasattr(self, keyword):
             event_handler = getattr(self, keyword)
             arg_names = inspect.getfullargspec(event_handler).args
             event_handler(**build_required_kwargs(
                 logger=logger,
                 request=request,
                 response=response,
                 required_arg_names=arg_names,
                 this_func=event_handler,
             ))
     else:
         ack()
         respond(self.__doc__)