mirror of
https://github.com/appwrite/appwrite.git
synced 2026-05-26 13:51:13 +00:00
update composer dependencies and remove obsolete log classes
This commit is contained in:
+1
-1
@@ -61,7 +61,7 @@
|
|||||||
"utopia-php/compression": "0.1.*",
|
"utopia-php/compression": "0.1.*",
|
||||||
"utopia-php/config": "1.*",
|
"utopia-php/config": "1.*",
|
||||||
"utopia-php/console": "0.1.*",
|
"utopia-php/console": "0.1.*",
|
||||||
"utopia-php/database": "5.*",
|
"utopia-php/database": "dev-datetime-exception as 5.21.0",
|
||||||
"utopia-php/detector": "0.2.*",
|
"utopia-php/detector": "0.2.*",
|
||||||
"utopia-php/domains": "1.*",
|
"utopia-php/domains": "1.*",
|
||||||
"utopia-php/emails": "0.6.*",
|
"utopia-php/emails": "0.6.*",
|
||||||
|
|||||||
Generated
+18
-9
@@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "4fb974e9843f6104e40396e7cad4a833",
|
"content-hash": "cf3f6bf217746bbfb9d5a5a8c3295eef",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "adhocore/jwt",
|
"name": "adhocore/jwt",
|
||||||
@@ -3850,16 +3850,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "utopia-php/database",
|
"name": "utopia-php/database",
|
||||||
"version": "5.3.19",
|
"version": "dev-datetime-exception",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/utopia-php/database.git",
|
"url": "https://github.com/utopia-php/database.git",
|
||||||
"reference": "72ee1614c37e37c7fdd9d4dc87f1f7cdfa1ca691"
|
"reference": "615a530e6434e74742b6b12dabee5993ba8575fd"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/utopia-php/database/zipball/72ee1614c37e37c7fdd9d4dc87f1f7cdfa1ca691",
|
"url": "https://api.github.com/repos/utopia-php/database/zipball/615a530e6434e74742b6b12dabee5993ba8575fd",
|
||||||
"reference": "72ee1614c37e37c7fdd9d4dc87f1f7cdfa1ca691",
|
"reference": "615a530e6434e74742b6b12dabee5993ba8575fd",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -3903,9 +3903,9 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/utopia-php/database/issues",
|
"issues": "https://github.com/utopia-php/database/issues",
|
||||||
"source": "https://github.com/utopia-php/database/tree/5.3.19"
|
"source": "https://github.com/utopia-php/database/tree/datetime-exception"
|
||||||
},
|
},
|
||||||
"time": "2026-03-31T15:52:08+00:00"
|
"time": "2026-04-10T11:10:59+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "utopia-php/detector",
|
"name": "utopia-php/detector",
|
||||||
@@ -8426,9 +8426,18 @@
|
|||||||
"time": "2024-11-07T12:36:22+00:00"
|
"time": "2024-11-07T12:36:22+00:00"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"aliases": [],
|
"aliases": [
|
||||||
|
{
|
||||||
|
"package": "utopia-php/database",
|
||||||
|
"version": "dev-datetime-exception",
|
||||||
|
"alias": "5.21.0",
|
||||||
|
"alias_normalized": "5.21.0.0"
|
||||||
|
}
|
||||||
|
],
|
||||||
"minimum-stability": "dev",
|
"minimum-stability": "dev",
|
||||||
"stability-flags": {},
|
"stability-flags": {
|
||||||
|
"utopia-php/database": 20
|
||||||
|
},
|
||||||
"prefer-stable": true,
|
"prefer-stable": true,
|
||||||
"prefer-lowest": false,
|
"prefer-lowest": false,
|
||||||
"platform": {
|
"platform": {
|
||||||
|
|||||||
-59
@@ -1,59 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Appwrite\Platform\Modules\Databases\Http\DocumentsDB\Collections\Documents\Logs;
|
|
||||||
|
|
||||||
use Appwrite\Platform\Modules\Databases\Http\Databases\Collections\Documents\Logs\XList as DocumentLogXList;
|
|
||||||
use Appwrite\SDK\AuthType;
|
|
||||||
use Appwrite\SDK\ContentType;
|
|
||||||
use Appwrite\SDK\Method;
|
|
||||||
use Appwrite\SDK\Response as SDKResponse;
|
|
||||||
use Utopia\Database\Validator\Queries;
|
|
||||||
use Utopia\Database\Validator\Query\Limit;
|
|
||||||
use Utopia\Database\Validator\Query\Offset;
|
|
||||||
use Utopia\Database\Validator\UID;
|
|
||||||
use Utopia\Http\Adapter\Swoole\Response as SwooleResponse;
|
|
||||||
|
|
||||||
class XList extends DocumentLogXList
|
|
||||||
{
|
|
||||||
public static function getName(): string
|
|
||||||
{
|
|
||||||
return 'listDocumentsDBDocumentLogs';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this
|
|
||||||
->setHttpMethod(self::HTTP_REQUEST_METHOD_GET)
|
|
||||||
->setHttpPath('/v1/documentsdb/:databaseId/collections/:collectionId/documents/:documentId/logs')
|
|
||||||
->desc('List document logs')
|
|
||||||
->groups(['api', 'database'])
|
|
||||||
->label('scope', 'documents.read')
|
|
||||||
->label('resourceType', RESOURCE_TYPE_DATABASES)
|
|
||||||
->label('sdk', new Method(
|
|
||||||
namespace: 'documentsDB',
|
|
||||||
group: 'logs',
|
|
||||||
name: 'listDocumentLogs',
|
|
||||||
description: '/docs/references/documentsdb/get-document-logs.md',
|
|
||||||
auth: [AuthType::ADMIN],
|
|
||||||
responses: [
|
|
||||||
new SDKResponse(
|
|
||||||
code: SwooleResponse::STATUS_CODE_OK,
|
|
||||||
model: $this->getResponseModel(),
|
|
||||||
)
|
|
||||||
],
|
|
||||||
contentType: ContentType::JSON,
|
|
||||||
))
|
|
||||||
->param('databaseId', '', new UID(), 'Database ID.')
|
|
||||||
->param('collectionId', '', new UID(), 'Collection ID.')
|
|
||||||
->param('documentId', '', new UID(), 'Document ID.')
|
|
||||||
->param('queries', [], new Queries([new Limit(), new Offset()]), 'Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Only supported methods are limit and offset', true)
|
|
||||||
->inject('response')
|
|
||||||
->inject('dbForProject')
|
|
||||||
->inject('getDatabasesDB')
|
|
||||||
->inject('locale')
|
|
||||||
->inject('geodb')
|
|
||||||
->inject('authorization')
|
|
||||||
->inject('audit')
|
|
||||||
->callback($this->action(...));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,58 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Appwrite\Platform\Modules\Databases\Http\DocumentsDB\Collections\Logs;
|
|
||||||
|
|
||||||
use Appwrite\Platform\Modules\Databases\Http\Databases\Collections\Logs\XList as CollectionLogXList;
|
|
||||||
use Appwrite\SDK\AuthType;
|
|
||||||
use Appwrite\SDK\ContentType;
|
|
||||||
use Appwrite\SDK\Method;
|
|
||||||
use Appwrite\SDK\Response as SDKResponse;
|
|
||||||
use Utopia\Database\Database;
|
|
||||||
use Utopia\Database\Validator\Queries;
|
|
||||||
use Utopia\Database\Validator\Query\Limit;
|
|
||||||
use Utopia\Database\Validator\Query\Offset;
|
|
||||||
use Utopia\Database\Validator\UID;
|
|
||||||
use Utopia\Http\Adapter\Swoole\Response as SwooleResponse;
|
|
||||||
|
|
||||||
class XList extends CollectionLogXList
|
|
||||||
{
|
|
||||||
public static function getName(): string
|
|
||||||
{
|
|
||||||
return 'listDocumentsDBCollectionLogs';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this
|
|
||||||
->setHttpMethod(self::HTTP_REQUEST_METHOD_GET)
|
|
||||||
->setHttpPath('/v1/documentsdb/:databaseId/collections/:collectionId/logs')
|
|
||||||
->desc('List collection logs')
|
|
||||||
->groups(['api', 'database'])
|
|
||||||
->label('scope', 'collections.read')
|
|
||||||
->label('resourceType', RESOURCE_TYPE_DATABASES)
|
|
||||||
->label('sdk', new Method(
|
|
||||||
namespace: 'documentsDB',
|
|
||||||
group: $this->getSdkGroup(),
|
|
||||||
name: 'listCollectionLogs',
|
|
||||||
description: '/docs/references/documentsdb/get-collection-logs.md',
|
|
||||||
auth: [AuthType::ADMIN],
|
|
||||||
responses: [
|
|
||||||
new SDKResponse(
|
|
||||||
code: SwooleResponse::STATUS_CODE_OK,
|
|
||||||
model: $this->getResponseModel(),
|
|
||||||
)
|
|
||||||
],
|
|
||||||
contentType: ContentType::JSON
|
|
||||||
))
|
|
||||||
->param('databaseId', '', fn (Database $dbForProject) => new UID($dbForProject->getAdapter()->getMaxUIDLength()), 'Database ID.', false, ['dbForProject'])
|
|
||||||
->param('collectionId', '', fn (Database $dbForProject) => new UID($dbForProject->getAdapter()->getMaxUIDLength()), 'Collection ID.', false, ['dbForProject'])
|
|
||||||
->param('queries', [], new Queries([new Limit(), new Offset()]), 'Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Only supported methods are limit and offset', true)
|
|
||||||
->inject('response')
|
|
||||||
->inject('dbForProject')
|
|
||||||
->inject('locale')
|
|
||||||
->inject('geodb')
|
|
||||||
->inject('authorization')
|
|
||||||
->inject('audit')
|
|
||||||
->callback($this->action(...));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-59
@@ -1,59 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Appwrite\Platform\Modules\Databases\Http\VectorsDB\Collections\Documents\Logs;
|
|
||||||
|
|
||||||
use Appwrite\Platform\Modules\Databases\Http\Databases\Collections\Documents\Logs\XList as DocumentLogXList;
|
|
||||||
use Appwrite\SDK\AuthType;
|
|
||||||
use Appwrite\SDK\ContentType;
|
|
||||||
use Appwrite\SDK\Method;
|
|
||||||
use Appwrite\SDK\Response as SDKResponse;
|
|
||||||
use Utopia\Database\Validator\Queries;
|
|
||||||
use Utopia\Database\Validator\Query\Limit;
|
|
||||||
use Utopia\Database\Validator\Query\Offset;
|
|
||||||
use Utopia\Database\Validator\UID;
|
|
||||||
use Utopia\Http\Adapter\Swoole\Response as SwooleResponse;
|
|
||||||
|
|
||||||
class XList extends DocumentLogXList
|
|
||||||
{
|
|
||||||
public static function getName(): string
|
|
||||||
{
|
|
||||||
return 'listVectorsDBDocumentLogs';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this
|
|
||||||
->setHttpMethod(self::HTTP_REQUEST_METHOD_GET)
|
|
||||||
->setHttpPath('/v1/vectorsdb/:databaseId/collections/:collectionId/documents/:documentId/logs')
|
|
||||||
->desc('List document logs')
|
|
||||||
->groups(['api', 'database'])
|
|
||||||
->label('scope', 'documents.read')
|
|
||||||
->label('resourceType', RESOURCE_TYPE_DATABASES)
|
|
||||||
->label('sdk', new Method(
|
|
||||||
namespace: 'vectorsDB',
|
|
||||||
group: 'logs',
|
|
||||||
name: 'listDocumentLogs',
|
|
||||||
description: '/docs/references/vectorsdb/get-document-logs.md',
|
|
||||||
auth: [AuthType::ADMIN],
|
|
||||||
responses: [
|
|
||||||
new SDKResponse(
|
|
||||||
code: SwooleResponse::STATUS_CODE_OK,
|
|
||||||
model: $this->getResponseModel(),
|
|
||||||
)
|
|
||||||
],
|
|
||||||
contentType: ContentType::JSON,
|
|
||||||
))
|
|
||||||
->param('databaseId', '', new UID(), 'Database ID.')
|
|
||||||
->param('collectionId', '', new UID(), 'Collection ID.')
|
|
||||||
->param('documentId', '', new UID(), 'Document ID.')
|
|
||||||
->param('queries', [], new Queries([new Limit(), new Offset()]), 'Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Only supported methods are limit and offset', true)
|
|
||||||
->inject('response')
|
|
||||||
->inject('dbForProject')
|
|
||||||
->inject('getDatabasesDB')
|
|
||||||
->inject('locale')
|
|
||||||
->inject('geodb')
|
|
||||||
->inject('authorization')
|
|
||||||
->inject('audit')
|
|
||||||
->callback($this->action(...));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Appwrite\Platform\Modules\Databases\Http\VectorsDB\Collections\Logs;
|
|
||||||
|
|
||||||
use Appwrite\Platform\Modules\Databases\Http\Databases\Collections\Logs\XList as CollectionLogXList;
|
|
||||||
use Appwrite\SDK\AuthType;
|
|
||||||
use Appwrite\SDK\ContentType;
|
|
||||||
use Appwrite\SDK\Method;
|
|
||||||
use Appwrite\SDK\Response as SDKResponse;
|
|
||||||
use Utopia\Database\Validator\Queries;
|
|
||||||
use Utopia\Database\Validator\Query\Limit;
|
|
||||||
use Utopia\Database\Validator\Query\Offset;
|
|
||||||
use Utopia\Database\Validator\UID;
|
|
||||||
use Utopia\Http\Adapter\Swoole\Response as SwooleResponse;
|
|
||||||
|
|
||||||
class XList extends CollectionLogXList
|
|
||||||
{
|
|
||||||
public static function getName(): string
|
|
||||||
{
|
|
||||||
return 'listVectorsDBCollectionLogs';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this
|
|
||||||
->setHttpMethod(self::HTTP_REQUEST_METHOD_GET)
|
|
||||||
->setHttpPath('/v1/vectorsdb/:databaseId/collections/:collectionId/logs')
|
|
||||||
->desc('List collection logs')
|
|
||||||
->groups(['api', 'database'])
|
|
||||||
->label('scope', 'collections.read')
|
|
||||||
->label('resourceType', RESOURCE_TYPE_DATABASES)
|
|
||||||
->label('sdk', new Method(
|
|
||||||
namespace: 'vectorsDB',
|
|
||||||
group: $this->getSdkGroup(),
|
|
||||||
name: 'listCollectionLogs',
|
|
||||||
description: '/docs/references/vectorsdb/get-collection-logs.md',
|
|
||||||
auth: [AuthType::ADMIN],
|
|
||||||
responses: [
|
|
||||||
new SDKResponse(
|
|
||||||
code: SwooleResponse::STATUS_CODE_OK,
|
|
||||||
model: $this->getResponseModel(),
|
|
||||||
)
|
|
||||||
],
|
|
||||||
contentType: ContentType::JSON
|
|
||||||
))
|
|
||||||
->param('databaseId', '', new UID(), 'Database ID.')
|
|
||||||
->param('collectionId', '', new UID(), 'Collection ID.')
|
|
||||||
->param('queries', [], new Queries([new Limit(), new Offset()]), 'Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Only supported methods are limit and offset', true)
|
|
||||||
->inject('response')
|
|
||||||
->inject('dbForProject')
|
|
||||||
->inject('locale')
|
|
||||||
->inject('geodb')
|
|
||||||
->inject('authorization')
|
|
||||||
->inject('audit')
|
|
||||||
->callback($this->action(...));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -11618,4 +11618,83 @@ trait DatabasesBase
|
|||||||
$this->assertEquals('draft', $refetched['body']['status']);
|
$this->assertEquals('draft', $refetched['body']['status']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* API keys may set $createdAt / $updatedAt; invalid strings must return 400, not 500.
|
||||||
|
* Assertions are HTTP status codes only (no error body matching).
|
||||||
|
*/
|
||||||
|
public function testInvalidDate(): void
|
||||||
|
{
|
||||||
|
$data = $this->setupAttributes();
|
||||||
|
$databaseId = $data['databaseId'];
|
||||||
|
$invalidDatetime = '1dfs:12:55+sdf:00';
|
||||||
|
$validUpdatedAt = '2024-01-01T00:00:00Z';
|
||||||
|
|
||||||
|
$apiKeyHeaders = [
|
||||||
|
'content-type' => 'application/json',
|
||||||
|
'x-appwrite-project' => $this->getProject()['$id'],
|
||||||
|
'x-appwrite-key' => $this->getProject()['apiKey'],
|
||||||
|
];
|
||||||
|
|
||||||
|
$documentPayload = [
|
||||||
|
'title' => 'Captain America',
|
||||||
|
'releaseYear' => 1944,
|
||||||
|
'actors' => [
|
||||||
|
'Chris Evans',
|
||||||
|
'Samuel Jackson',
|
||||||
|
],
|
||||||
|
];
|
||||||
|
$permissions = [
|
||||||
|
Permission::read(Role::user($this->getUser()['$id'])),
|
||||||
|
Permission::update(Role::user($this->getUser()['$id'])),
|
||||||
|
Permission::delete(Role::user($this->getUser()['$id'])),
|
||||||
|
];
|
||||||
|
|
||||||
|
$invalidCreate = $this->client->call(Client::METHOD_POST, $this->getRecordUrl($databaseId, $data['moviesId']), $apiKeyHeaders, [
|
||||||
|
$this->getRecordIdParam() => ID::unique(),
|
||||||
|
'data' => \array_merge($documentPayload, ['$updatedAt' => $invalidDatetime]),
|
||||||
|
'permissions' => $permissions,
|
||||||
|
]);
|
||||||
|
$this->assertEquals(400, $invalidCreate['headers']['status-code']);
|
||||||
|
|
||||||
|
$document = $this->client->call(Client::METHOD_POST, $this->getRecordUrl($databaseId, $data['moviesId']), $apiKeyHeaders, [
|
||||||
|
$this->getRecordIdParam() => ID::unique(),
|
||||||
|
'data' => $documentPayload,
|
||||||
|
'permissions' => $permissions,
|
||||||
|
]);
|
||||||
|
$this->assertEquals(201, $document['headers']['status-code']);
|
||||||
|
$documentId = $document['body']['$id'];
|
||||||
|
$this->assertNotEmpty($documentId);
|
||||||
|
|
||||||
|
$invalidPatch = $this->client->call(
|
||||||
|
Client::METHOD_PATCH,
|
||||||
|
$this->getRecordUrl($databaseId, $data['moviesId'], $documentId),
|
||||||
|
$apiKeyHeaders,
|
||||||
|
[
|
||||||
|
'data' => [
|
||||||
|
'$updatedAt' => $invalidDatetime,
|
||||||
|
],
|
||||||
|
]
|
||||||
|
);
|
||||||
|
$this->assertEquals(400, $invalidPatch['headers']['status-code']);
|
||||||
|
|
||||||
|
$updated = $this->client->call(
|
||||||
|
Client::METHOD_PATCH,
|
||||||
|
$this->getRecordUrl($databaseId, $data['moviesId'], $documentId),
|
||||||
|
$apiKeyHeaders,
|
||||||
|
[
|
||||||
|
'data' => [
|
||||||
|
'$updatedAt' => $validUpdatedAt,
|
||||||
|
],
|
||||||
|
]
|
||||||
|
);
|
||||||
|
$this->assertEquals(200, $updated['headers']['status-code']);
|
||||||
|
|
||||||
|
$refetched = $this->client->call(
|
||||||
|
Client::METHOD_GET,
|
||||||
|
$this->getRecordUrl($databaseId, $data['moviesId'], $documentId),
|
||||||
|
$apiKeyHeaders
|
||||||
|
);
|
||||||
|
$this->assertEquals(200, $refetched['headers']['status-code']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user