def run(self, config: Config, event: dict) -> dict: """イベントデータから対応するハンドラーを呼び出し、レスポンスを返却 :param Config config: コンフィグ :param dict event: イベントデータ :return dict: レスポンスの連想配列 :raise Error: Error系の例外発生時にメッセージを整形して再出力 """ try: request = self.__build_request(event) Bootstrap(config, request) router = Router(config.get('routes.path')) receiver = router.dispatch(request.url) handler = receiver.instantiate(config, request) return handler().to_dict() except Error as e: raise Exception(f'[{e.code}] {e.__class__.__name__}: {e.message}')
def test_dispatch(self): router = Router('tests/unit/routing/fixtures/router/routes.yml') handler = router.dispatch('/test/Router').instantiate() self.assertEqual('success', handler())