From 1193ee26f6d9eb769a17748b24d550bf9b2abcaa Mon Sep 17 00:00:00 2001 From: Christopher Pitt Date: Mon, 14 Apr 2025 02:43:58 +0200 Subject: [PATCH 1/2] Allow arguments to be passed to files list request --- src/Resources/Files.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Resources/Files.php b/src/Resources/Files.php index 6f5490e1..d8cef99c 100644 --- a/src/Resources/Files.php +++ b/src/Resources/Files.php @@ -20,10 +20,12 @@ final class Files implements FilesContract * Returns a list of files that belong to the user's organization. * * @see https://platform.openai.com/docs/api-reference/files/list + * + * @param array $parameters */ - public function list(): ListResponse + public function list(array $parameters = []): ListResponse { - $payload = Payload::list('files'); + $payload = Payload::list('files', parameters: $parameters); /** @var Response|string|null}>}> $response */ $response = $this->transporter->requestObject($payload); From 8ec4b1eddb23ec0fe8bf54ac2643c771b59b6b33 Mon Sep 17 00:00:00 2001 From: Connor Tumbleson Date: Mon, 14 Apr 2025 06:11:40 -0400 Subject: [PATCH 2/2] chore: add files.list parameter support to contract/tests --- src/Contracts/Resources/FilesContract.php | 4 +++- src/Resources/Files.php | 4 +--- src/Testing/Resources/FilesTestResource.php | 4 ++-- tests/Testing/Resources/FilesTestResource.php | 15 +++++++++++++++ 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/Contracts/Resources/FilesContract.php b/src/Contracts/Resources/FilesContract.php index cf748a77..3aedb8e9 100644 --- a/src/Contracts/Resources/FilesContract.php +++ b/src/Contracts/Resources/FilesContract.php @@ -13,8 +13,10 @@ interface FilesContract * Returns a list of files that belong to the user's organization. * * @see https://platform.openai.com/docs/api-reference/files/list + * + * @param array $parameters */ - public function list(): ListResponse; + public function list(array $parameters = []): ListResponse; /** * Returns information about a specific file. diff --git a/src/Resources/Files.php b/src/Resources/Files.php index d8cef99c..1c25cdfd 100644 --- a/src/Resources/Files.php +++ b/src/Resources/Files.php @@ -20,12 +20,10 @@ final class Files implements FilesContract * Returns a list of files that belong to the user's organization. * * @see https://platform.openai.com/docs/api-reference/files/list - * - * @param array $parameters */ public function list(array $parameters = []): ListResponse { - $payload = Payload::list('files', parameters: $parameters); + $payload = Payload::list('files', $parameters); /** @var Response|string|null}>}> $response */ $response = $this->transporter->requestObject($payload); diff --git a/src/Testing/Resources/FilesTestResource.php b/src/Testing/Resources/FilesTestResource.php index cd911392..1bcd1b4a 100644 --- a/src/Testing/Resources/FilesTestResource.php +++ b/src/Testing/Resources/FilesTestResource.php @@ -19,9 +19,9 @@ protected function resource(): string return Files::class; } - public function list(): ListResponse + public function list(array $parameters = []): ListResponse { - return $this->record(__FUNCTION__); + return $this->record(__FUNCTION__, func_get_args()); } public function retrieve(string $file): RetrieveResponse diff --git a/tests/Testing/Resources/FilesTestResource.php b/tests/Testing/Resources/FilesTestResource.php index 7259fa01..1590fec2 100644 --- a/tests/Testing/Resources/FilesTestResource.php +++ b/tests/Testing/Resources/FilesTestResource.php @@ -32,6 +32,21 @@ }); }); +it('records a file list request with parameters', function () { + $fake = new ClientFake([ + ListResponse::fake(), + ]); + + $fake->files()->list([ + 'limit' => 1, + ]); + + $fake->assertSent(Files::class, function ($method, $parameters) { + return $method === 'list' && + $parameters['limit'] === 1; + }); +}); + it('records a files download request', function () { $fake = new ClientFake([ 'fake-file-content',