Skip to content

Commit fe10efb

Browse files
Allow arguments to be passed to files list request (#557)
* Allow arguments to be passed to files list request * chore: add files.list parameter support to contract/tests --------- Co-authored-by: Connor Tumbleson <[email protected]>
1 parent bb305b0 commit fe10efb

File tree

4 files changed

+22
-5
lines changed

4 files changed

+22
-5
lines changed

src/Contracts/Resources/FilesContract.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@ interface FilesContract
1313
* Returns a list of files that belong to the user's organization.
1414
*
1515
* @see https://platform.openai.com/docs/api-reference/files/list
16+
*
17+
* @param array<string, mixed> $parameters
1618
*/
17-
public function list(): ListResponse;
19+
public function list(array $parameters = []): ListResponse;
1820

1921
/**
2022
* Returns information about a specific file.

src/Resources/Files.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ final class Files implements FilesContract
2121
*
2222
* @see https://platform.openai.com/docs/api-reference/files/list
2323
*/
24-
public function list(): ListResponse
24+
public function list(array $parameters = []): ListResponse
2525
{
26-
$payload = Payload::list('files');
26+
$payload = Payload::list('files', $parameters);
2727

2828
/** @var Response<array{object: string, data: array<int, array{id: string, object: string, created_at: int, bytes: ?int, filename: string, purpose: string, status: string, status_details: array<array-key, mixed>|string|null}>}> $response */
2929
$response = $this->transporter->requestObject($payload);

src/Testing/Resources/FilesTestResource.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ protected function resource(): string
1919
return Files::class;
2020
}
2121

22-
public function list(): ListResponse
22+
public function list(array $parameters = []): ListResponse
2323
{
24-
return $this->record(__FUNCTION__);
24+
return $this->record(__FUNCTION__, func_get_args());
2525
}
2626

2727
public function retrieve(string $file): RetrieveResponse

tests/Testing/Resources/FilesTestResource.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,21 @@
3232
});
3333
});
3434

35+
it('records a file list request with parameters', function () {
36+
$fake = new ClientFake([
37+
ListResponse::fake(),
38+
]);
39+
40+
$fake->files()->list([
41+
'limit' => 1,
42+
]);
43+
44+
$fake->assertSent(Files::class, function ($method, $parameters) {
45+
return $method === 'list' &&
46+
$parameters['limit'] === 1;
47+
});
48+
});
49+
3550
it('records a files download request', function () {
3651
$fake = new ClientFake([
3752
'fake-file-content',

0 commit comments

Comments
 (0)