| 87 | |
| 88 | |
| 89 | class RecordingMiddleware(Middleware): |
| 90 | def __init__(self, name: str = "middleware", events: "list[str] | None" = None) -> None: |
| 91 | self.name = name |
| 92 | self.events = events if events is not None else [] |
| 93 | self.requests: list[APIRequest] = [] |
| 94 | self.results: list[Any] = [] |
| 95 | |
| 96 | @override |
| 97 | def handle(self, request: APIRequest, call_next: CallNext) -> Any: |
| 98 | self.requests.append(request) |
| 99 | self.events.append(f"{self.name}:enter") |
| 100 | result = call_next(request) |
| 101 | self.events.append(f"{self.name}:exit") |
| 102 | self.results.append(result) |
| 103 | return result |
| 104 | |
| 105 | @override |
| 106 | async def handle_async(self, request: APIRequest, call_next: AsyncCallNext) -> Any: |
| 107 | self.requests.append(request) |
| 108 | self.events.append(f"{self.name}:enter") |
| 109 | result = await call_next(request) |
| 110 | self.events.append(f"{self.name}:exit") |
| 111 | self.results.append(result) |
| 112 | return result |
| 113 | |
| 114 | |
| 115 | class MutateBody(Middleware): |
no outgoing calls