From 468ae3d2f4fe7900a79b3320d243c67d09f30a86 Mon Sep 17 00:00:00 2001 From: Benjamin Gaussorgues Date: Thu, 18 Dec 2025 11:15:15 +0100 Subject: [PATCH 1/3] feat: add new response type StreamTraversableResponse Signed-off-by: Benjamin Gaussorgues --- src/ResponseType.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/ResponseType.php b/src/ResponseType.php index da9da47..164a32d 100644 --- a/src/ResponseType.php +++ b/src/ResponseType.php @@ -135,6 +135,14 @@ public static function getAll(): array { null, null, ), + new ResponseType( + 'StreamTraversableResponse', + false, + false, + null, + null, + null, + ), new ResponseType( 'TemplateResponse', false, From f8ec428d9968c76b9f7a166b1623ec1f85f2812c Mon Sep 17 00:00:00 2001 From: Benjamin Gaussorgues Date: Fri, 30 Jan 2026 09:56:19 +0100 Subject: [PATCH 2/3] chore: add StreamTraversableResponse example Signed-off-by: Benjamin Gaussorgues --- .../lib/Controller/OpenMetricsController.php | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 tests/lib/Controller/OpenMetricsController.php diff --git a/tests/lib/Controller/OpenMetricsController.php b/tests/lib/Controller/OpenMetricsController.php new file mode 100644 index 0000000..d3bd92f --- /dev/null +++ b/tests/lib/Controller/OpenMetricsController.php @@ -0,0 +1,30 @@ +, array{}> + * + * 200: Export OK + */ + public function export(): StreamTraversableResponse { + return new StreamTraversableResponse($this->generator()); + } + + private function generator(): \Generator { + yield from []; + } +} From 97c93af6fb8ed196a1640566ba9d8923fd65f3b0 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Fri, 30 Jan 2026 10:13:41 +0100 Subject: [PATCH 3/3] test: Add ApiRoute so it executes Signed-off-by: Joas Schilling --- tests/lib/Controller/OpenMetricsController.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/lib/Controller/OpenMetricsController.php b/tests/lib/Controller/OpenMetricsController.php index d3bd92f..caba1e9 100644 --- a/tests/lib/Controller/OpenMetricsController.php +++ b/tests/lib/Controller/OpenMetricsController.php @@ -10,6 +10,7 @@ namespace OCA\Notifications\Controller; use OCP\AppFramework\Http; +use OCP\AppFramework\Http\Attribute\ApiRoute; use OCP\AppFramework\OCSController; class OpenMetricsController extends OCSController { @@ -20,6 +21,7 @@ class OpenMetricsController extends OCSController { * * 200: Export OK */ + #[ApiRoute(verb: 'GET', url: '/openmetrics')] public function export(): StreamTraversableResponse { return new StreamTraversableResponse($this->generator()); }