mirror of
https://github.com/appwrite/appwrite.git
synced 2026-05-26 13:51:13 +00:00
Merge branch '1.8.x' into feat-mongodb
This commit is contained in:
@@ -185,6 +185,14 @@ class Client
|
||||
$responseHeaders = [];
|
||||
$cookies = [];
|
||||
|
||||
if (isset($params['queries'])) {
|
||||
foreach ($params['queries'] as $value) {
|
||||
if (!is_string($value)) {
|
||||
throw new Exception('Queries must be converted to strings');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$query = match ($headers['content-type']) {
|
||||
'application/json' => json_encode($params),
|
||||
'multipart/form-data' => $this->flatten($params),
|
||||
|
||||
@@ -2508,22 +2508,36 @@ trait DatabasesBase
|
||||
$this->assertEquals($document['title'], $response['body']['title']);
|
||||
$this->assertEquals($document['releaseYear'], $response['body']['releaseYear']);
|
||||
$this->assertArrayNotHasKey('birthDay', $response['body']);
|
||||
|
||||
$sequence = $response['body']['$sequence'];
|
||||
|
||||
// Query by sequence
|
||||
// Query by sequence on get single document route
|
||||
$response = $this->client->call(Client::METHOD_GET, '/databases/' . $databaseId . '/collections/' . $document['$collectionId'] . '/documents/' . $document['$id'], array_merge([
|
||||
'content-type' => 'application/json',
|
||||
'x-appwrite-project' => $this->getProject()['$id'],
|
||||
], $this->getHeaders()), [
|
||||
'queries' => [
|
||||
Query::equal('$sequence', [$sequence])
|
||||
Query::equal('$sequence', [$sequence])->toString()
|
||||
],
|
||||
]);
|
||||
|
||||
$this->assertEquals(400, $response['headers']['status-code']);
|
||||
$this->assertEquals('Invalid query method: equal', $response['body']['message']);
|
||||
|
||||
// Query by sequence
|
||||
$response = $this->client->call(Client::METHOD_GET, '/databases/' . $databaseId . '/collections/' . $document['$collectionId'] . '/documents', array_merge([
|
||||
'content-type' => 'application/json',
|
||||
'x-appwrite-project' => $this->getProject()['$id'],
|
||||
], $this->getHeaders()), [
|
||||
'queries' => [
|
||||
Query::equal('$sequence', [$sequence.''])->toString()
|
||||
],
|
||||
]);
|
||||
|
||||
$this->assertEquals(200, $response['headers']['status-code']);
|
||||
$this->assertEquals($document['title'], $response['body']['title']);
|
||||
$this->assertEquals($document['releaseYear'], $response['body']['releaseYear']);
|
||||
$this->assertTrue(array_key_exists('$sequence', $response['body']));
|
||||
$this->assertEquals($document['title'], $response['body']['documents'][0]['title']);
|
||||
$this->assertEquals($document['releaseYear'], $response['body']['documents'][0]['releaseYear']);
|
||||
$this->assertTrue(array_key_exists('$sequence', $response['body']['documents'][0]));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -2430,6 +2430,36 @@ trait DatabasesBase
|
||||
$this->assertEquals($row['title'], $response['body']['title']);
|
||||
$this->assertEquals($row['releaseYear'], $response['body']['releaseYear']);
|
||||
$this->assertArrayNotHasKey('birthDay', $response['body']);
|
||||
|
||||
$sequence = $response['body']['$sequence'];
|
||||
|
||||
// Query by sequence on get single row route
|
||||
$response = $this->client->call(Client::METHOD_GET, '/tablesdb/' . $databaseId . '/tables/' . $row['$tableId'] . '/rows/' . $row['$id'], array_merge([
|
||||
'content-type' => 'application/json',
|
||||
'x-appwrite-project' => $this->getProject()['$id'],
|
||||
], $this->getHeaders()), [
|
||||
'queries' => [
|
||||
Query::equal('$sequence', [$sequence])->toString()
|
||||
],
|
||||
]);
|
||||
|
||||
$this->assertEquals(400, $response['headers']['status-code']);
|
||||
$this->assertEquals('Invalid query method: equal', $response['body']['message']);
|
||||
|
||||
// Query by sequence
|
||||
$response = $this->client->call(Client::METHOD_GET, '/tablesdb/' . $databaseId . '/tables/' . $row['$tableId'] . '/rows', array_merge([
|
||||
'content-type' => 'application/json',
|
||||
'x-appwrite-project' => $this->getProject()['$id'],
|
||||
], $this->getHeaders()), [
|
||||
'queries' => [
|
||||
Query::equal('$sequence', [$sequence.''])->toString()
|
||||
],
|
||||
]);
|
||||
|
||||
$this->assertEquals(200, $response['headers']['status-code']);
|
||||
$this->assertEquals($row['title'], $response['body']['rows'][0]['title']);
|
||||
$this->assertEquals($row['releaseYear'], $response['body']['rows'][0]['releaseYear']);
|
||||
$this->assertTrue(array_key_exists('$sequence', $response['body']['rows'][0]));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -546,7 +546,7 @@ class ProxyCustomServerTest extends Scope
|
||||
|
||||
$rules = $this->listRules([
|
||||
'search' => $rule1Domain,
|
||||
'queries' => [ Query::orderDesc('$createdAt') ]
|
||||
'queries' => [ Query::orderDesc('$createdAt')->toString() ]
|
||||
]);
|
||||
|
||||
$this->assertEquals(200, $rules['headers']['status-code']);
|
||||
@@ -555,7 +555,7 @@ class ProxyCustomServerTest extends Scope
|
||||
|
||||
$rules = $this->listRules([
|
||||
'search' => $rule2Domain,
|
||||
'queries' => [ Query::orderDesc('$createdAt') ]
|
||||
'queries' => [ Query::orderDesc('$createdAt')->toString() ]
|
||||
]);
|
||||
$this->assertEquals(200, $rules['headers']['status-code']);
|
||||
$ruleIds = \array_column($rules['body']['rules'], '$id');
|
||||
@@ -563,7 +563,7 @@ class ProxyCustomServerTest extends Scope
|
||||
|
||||
$rules = $this->listRules([
|
||||
'search' => $rule1Id,
|
||||
'queries' => [ Query::orderDesc('$createdAt') ]
|
||||
'queries' => [ Query::orderDesc('$createdAt')->toString() ]
|
||||
]);
|
||||
$this->assertEquals(200, $rules['headers']['status-code']);
|
||||
$ruleDomains = \array_column($rules['body']['rules'], 'domain');
|
||||
@@ -571,7 +571,7 @@ class ProxyCustomServerTest extends Scope
|
||||
|
||||
$rules = $this->listRules([
|
||||
'search' => $rule2Id,
|
||||
'queries' => [ Query::orderDesc('$createdAt') ]
|
||||
'queries' => [ Query::orderDesc('$createdAt')->toString() ]
|
||||
]);
|
||||
$this->assertEquals(200, $rules['headers']['status-code']);
|
||||
$ruleDomains = \array_column($rules['body']['rules'], 'domain');
|
||||
|
||||
@@ -155,7 +155,7 @@ class SitesCustomServerTest extends Scope
|
||||
'x-appwrite-project' => $this->getProject()['$id'],
|
||||
], $this->getHeaders()), [
|
||||
'queries' => [
|
||||
Query::equal('deploymentResourceId', [$siteId])
|
||||
Query::equal('deploymentResourceId', [$siteId])->toString()
|
||||
]
|
||||
]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user