| 166 | """Request object exposed to plugin Web API handlers.""" |
| 167 | |
| 168 | def __init__( |
| 169 | self, |
| 170 | request_: Any, |
| 171 | *, |
| 172 | path_params: dict[str, Any] | None = None, |
| 173 | plugin_name: str | None = None, |
| 174 | username: str | None = None, |
| 175 | ) -> None: |
| 176 | self._request: Any = request_ |
| 177 | self.method: str = request_.method |
| 178 | self.path: str = request_.url.path |
| 179 | self.headers: Headers = request_.headers |
| 180 | self.cookies: dict[str, str] = request_.cookies |
| 181 | self.content_type: str | None = request_.headers.get("content-type") |
| 182 | self.client_host: str | None = request_.client.host if request_.client else None |
| 183 | self.path_params: dict[str, Any] = path_params or {} |
| 184 | self.plugin_name: str | None = plugin_name |
| 185 | self.username: str | None = username |
| 186 | self.query: PluginMultiDict[str] = PluginMultiDict[str]( |
| 187 | list(request_.query_params.multi_items()) |
| 188 | ) |
| 189 | self._form_cache: PluginMultiDict[str] | None = None |
| 190 | self._files_cache: PluginMultiDict[PluginUploadFile] | None = None |
| 191 | |
| 192 | async def body(self) -> bytes: |
| 193 | """Read the raw request body. |