mirror of
https://github.com/appwrite/appwrite
synced 2026-05-23 00:49:02 +00:00
Merge pull request #10516 from appwrite/fix-internal-removal
Don't remove required attributes
This commit is contained in:
commit
df276692e8
3 changed files with 12 additions and 49 deletions
|
|
@ -158,43 +158,6 @@ class XList extends Action
|
|||
->addMetric(METRIC_DATABASES_OPERATIONS_READS, max($operations, 1))
|
||||
->addMetric(str_replace('{databaseInternalId}', $database->getSequence(), METRIC_DATABASE_ID_OPERATIONS_READS), $operations);
|
||||
|
||||
// Check if the SELECT query includes the removable attributes
|
||||
$hasWildcard = false;
|
||||
$hasSelectQueries = !empty($selectQueries);
|
||||
$requestedAttributes = [];
|
||||
|
||||
if ($hasSelectQueries) {
|
||||
foreach ($selectQueries as $query) {
|
||||
if ($query->getMethod() !== Query::TYPE_SELECT) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$values = $query->getValues();
|
||||
if (\in_array('*', $values, true)) {
|
||||
$hasWildcard = true;
|
||||
break;
|
||||
}
|
||||
|
||||
// Check which removable attributes are explicitly requested
|
||||
foreach ($this->removableAttributes['*'] as $attribute) {
|
||||
if (\in_array($attribute, $values, true)) {
|
||||
$requestedAttributes[$attribute] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$hasWildcard) {
|
||||
foreach ($documents as $document) {
|
||||
// Remove attributes that are not explicitly requested
|
||||
foreach ($this->removableAttributes['*'] as $attribute) {
|
||||
if (!isset($requestedAttributes[$attribute])) {
|
||||
$document->removeAttribute($attribute);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$response->dynamic(new Document([
|
||||
'total' => $total,
|
||||
// rows or documents
|
||||
|
|
|
|||
|
|
@ -5270,8 +5270,8 @@ trait DatabasesBase
|
|||
$this->assertEquals(2, count($response['body']['documents']));
|
||||
$this->assertEquals(null, $response['body']['documents'][0]['fullName']);
|
||||
$this->assertArrayNotHasKey("libraries", $response['body']['documents'][0]);
|
||||
$this->assertArrayNotHasKey('$databaseId', $response['body']['documents'][0]);
|
||||
$this->assertArrayNotHasKey('$collectionId', $response['body']['documents'][0]);
|
||||
$this->assertArrayHasKey('$databaseId', $response['body']['documents'][0]);
|
||||
$this->assertArrayHasKey('$collectionId', $response['body']['documents'][0]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -5291,8 +5291,8 @@ trait DatabasesBase
|
|||
|
||||
$this->assertEquals(200, $response['headers']['status-code']);
|
||||
$this->assertArrayNotHasKey('libraries', $response['body']['documents'][0]);
|
||||
$this->assertArrayNotHasKey('$databaseId', $response['body']['documents'][0]);
|
||||
$this->assertArrayNotHasKey('$collectionId', $response['body']['documents'][0]);
|
||||
$this->assertArrayHasKey('$databaseId', $response['body']['documents'][0]);
|
||||
$this->assertArrayHasKey('$collectionId', $response['body']['documents'][0]);
|
||||
|
||||
$response = $this->client->call(Client::METHOD_GET, '/databases/' . $data['databaseId'] . '/collections/' . $data['personCollection'] . '/documents', array_merge([
|
||||
'content-type' => 'application/json',
|
||||
|
|
@ -5305,8 +5305,8 @@ trait DatabasesBase
|
|||
$document = $response['body']['documents'][0];
|
||||
$this->assertEquals(200, $response['headers']['status-code']);
|
||||
$this->assertArrayHasKey('libraries', $document);
|
||||
$this->assertArrayNotHasKey('$databaseId', $document);
|
||||
$this->assertArrayNotHasKey('$collectionId', $document);
|
||||
$this->assertArrayHasKey('$databaseId', $document);
|
||||
$this->assertArrayHasKey('$collectionId', $document);
|
||||
|
||||
$response = $this->client->call(Client::METHOD_GET, '/databases/' . $data['databaseId'] . '/collections/' . $data['personCollection'] . '/documents/' . $document['$id'], array_merge([
|
||||
'content-type' => 'application/json',
|
||||
|
|
|
|||
|
|
@ -5197,8 +5197,8 @@ trait DatabasesBase
|
|||
$this->assertEquals(2, count($response['body']['rows']));
|
||||
$this->assertEquals(null, $response['body']['rows'][0]['fullName']);
|
||||
$this->assertArrayNotHasKey("libraries", $response['body']['rows'][0]);
|
||||
$this->assertArrayNotHasKey('$databaseId', $response['body']['rows'][0]);
|
||||
$this->assertArrayNotHasKey('$tableId', $response['body']['rows'][0]);
|
||||
$this->assertArrayHasKey('$databaseId', $response['body']['rows'][0]);
|
||||
$this->assertArrayHasKey('$tableId', $response['body']['rows'][0]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -5218,8 +5218,8 @@ trait DatabasesBase
|
|||
|
||||
$this->assertEquals(200, $response['headers']['status-code']);
|
||||
$this->assertArrayNotHasKey('libraries', $response['body']['rows'][0]);
|
||||
$this->assertArrayNotHasKey('$databaseId', $response['body']['rows'][0]);
|
||||
$this->assertArrayNotHasKey('$tableId', $response['body']['rows'][0]);
|
||||
$this->assertArrayHasKey('$databaseId', $response['body']['rows'][0]);
|
||||
$this->assertArrayHasKey('$tableId', $response['body']['rows'][0]);
|
||||
|
||||
$response = $this->client->call(Client::METHOD_GET, '/tablesdb/' . $data['databaseId'] . '/tables/' . $data['personCollection'] . '/rows', array_merge([
|
||||
'content-type' => 'application/json',
|
||||
|
|
@ -5232,8 +5232,8 @@ trait DatabasesBase
|
|||
$row = $response['body']['rows'][0];
|
||||
$this->assertEquals(200, $response['headers']['status-code']);
|
||||
$this->assertArrayHasKey('libraries', $row);
|
||||
$this->assertArrayNotHasKey('$databaseId', $row);
|
||||
$this->assertArrayNotHasKey('$tableId', $row);
|
||||
$this->assertArrayHasKey('$databaseId', $row);
|
||||
$this->assertArrayHasKey('$tableId', $row);
|
||||
|
||||
$response = $this->client->call(Client::METHOD_GET, '/tablesdb/' . $data['databaseId'] . '/tables/' . $data['personCollection'] . '/rows/' . $row['$id'], array_merge([
|
||||
'content-type' => 'application/json',
|
||||
|
|
|
|||
Loading…
Reference in a new issue