usage params in database endpoints
This commit is contained in:
parent
94b7795332
commit
251f14cd69
|
@ -25,7 +25,7 @@ use Utopia\Database\Database;
|
|||
use Utopia\Database\Document;
|
||||
use Utopia\Database\Query;
|
||||
|
||||
$attributesCallback = function ($attribute, $response, $dbForExternal, $database, $audits) {
|
||||
$attributesCallback = function ($attribute, $response, $dbForExternal, $database, $audits, $usage) {
|
||||
/** @var Utopia\Database\Document $document*/
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Utopia\Database\Database $dbForExternal*/
|
||||
|
@ -110,6 +110,8 @@ $attributesCallback = function ($attribute, $response, $dbForExternal, $database
|
|||
->setParam('document', $attribute)
|
||||
;
|
||||
|
||||
$usage->setParam('database.collections.update', 1);
|
||||
|
||||
$audits
|
||||
->setParam('event', 'database.attributes.create')
|
||||
->setParam('resource', 'database/attributes/'.$attribute->getId())
|
||||
|
@ -139,10 +141,12 @@ App::post('/v1/database/collections')
|
|||
->inject('response')
|
||||
->inject('dbForExternal')
|
||||
->inject('audits')
|
||||
->action(function ($collectionId, $name, $read, $write, $response, $dbForExternal, $audits) {
|
||||
->inject('usage')
|
||||
->action(function ($collectionId, $name, $read, $write, $response, $dbForExternal, $audits, $usage) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Utopia\Database\Database $dbForExternal*/
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Stats\Stats $usage */
|
||||
|
||||
$collectionId = $collectionId == 'unique()' ? $dbForExternal->getId() : $collectionId;
|
||||
|
||||
|
@ -164,6 +168,8 @@ App::post('/v1/database/collections')
|
|||
->setParam('data', $collection->getArrayCopy())
|
||||
;
|
||||
|
||||
$usage->setParam('database.collections.create', 1);
|
||||
|
||||
$response->setStatusCode(Response::STATUS_CODE_CREATED);
|
||||
$response->dynamic($collection, Response::MODEL_COLLECTION);
|
||||
});
|
||||
|
@ -186,9 +192,11 @@ App::get('/v1/database/collections')
|
|||
->param('orderType', 'ASC', new WhiteList(['ASC', 'DESC'], true), 'Order result by ASC or DESC order.', true)
|
||||
->inject('response')
|
||||
->inject('dbForExternal')
|
||||
->action(function ($search, $limit, $offset, $after, $orderType, $response, $dbForExternal) {
|
||||
->inject('usage')
|
||||
->action(function ($search, $limit, $offset, $after, $orderType, $response, $dbForExternal, $usage) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Utopia\Database\Database $dbForExternal */
|
||||
/** @var Appwrite\Stats\Stats $usage */
|
||||
|
||||
$queries = ($search) ? [new Query('name', Query::TYPE_SEARCH, [$search])] : [];
|
||||
|
||||
|
@ -200,6 +208,8 @@ App::get('/v1/database/collections')
|
|||
}
|
||||
}
|
||||
|
||||
$usage->setParam('database.collections.read', 1);
|
||||
|
||||
$response->dynamic(new Document([
|
||||
'collections' => $dbForExternal->find(Database::COLLECTIONS, $queries, $limit, $offset, [], [$orderType], $afterCollection ?? null),
|
||||
'sum' => $dbForExternal->count(Database::COLLECTIONS, $queries, APP_LIMIT_COUNT),
|
||||
|
@ -220,9 +230,11 @@ App::get('/v1/database/collections/:collectionId')
|
|||
->param('collectionId', '', new UID(), 'Collection unique ID.')
|
||||
->inject('response')
|
||||
->inject('dbForExternal')
|
||||
->action(function ($collectionId, $response, $dbForExternal) {
|
||||
->inject('usage')
|
||||
->action(function ($collectionId, $response, $dbForExternal, $usage) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Utopia\Database\Database $dbForExternal */
|
||||
/** @var Appwrite\Stats\Stats $usage */
|
||||
|
||||
$collection = $dbForExternal->getCollection($collectionId);
|
||||
|
||||
|
@ -230,6 +242,8 @@ App::get('/v1/database/collections/:collectionId')
|
|||
throw new Exception('Collection not found', 404);
|
||||
}
|
||||
|
||||
$usage->setParam('database.collections.read', 1);
|
||||
|
||||
$response->dynamic($collection, Response::MODEL_COLLECTION);
|
||||
});
|
||||
|
||||
|
@ -252,10 +266,12 @@ App::put('/v1/database/collections/:collectionId')
|
|||
->inject('response')
|
||||
->inject('dbForExternal')
|
||||
->inject('audits')
|
||||
->action(function ($collectionId, $name, $read, $write, $response, $dbForExternal, $audits) {
|
||||
->inject('usage')
|
||||
->action(function ($collectionId, $name, $read, $write, $response, $dbForExternal, $audits, $usage) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Utopia\Database\Database $dbForExternal */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Stats\Stats $usage */
|
||||
|
||||
$collection = $dbForExternal->getCollection($collectionId);
|
||||
|
||||
|
@ -278,6 +294,8 @@ App::put('/v1/database/collections/:collectionId')
|
|||
throw new Exception('Bad structure. '.$exception->getMessage(), 400);
|
||||
}
|
||||
|
||||
$usage->setParam('database.collections.update', 1);
|
||||
|
||||
$audits
|
||||
->setParam('event', 'database.collections.update')
|
||||
->setParam('resource', 'database/collections/'.$collection->getId())
|
||||
|
@ -304,11 +322,13 @@ App::delete('/v1/database/collections/:collectionId')
|
|||
->inject('events')
|
||||
->inject('audits')
|
||||
->inject('deletes')
|
||||
->action(function ($collectionId, $response, $dbForExternal, $events, $audits, $deletes) {
|
||||
->inject('usage')
|
||||
->action(function ($collectionId, $response, $dbForExternal, $events, $audits, $deletes, $usage) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Utopia\Database\Database $dbForExternal */
|
||||
/** @var Appwrite\Event\Event $events */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Stats\Stats $audits */
|
||||
|
||||
$collection = $dbForExternal->getCollection($collectionId);
|
||||
|
||||
|
@ -318,6 +338,8 @@ App::delete('/v1/database/collections/:collectionId')
|
|||
|
||||
$dbForExternal->deleteCollection($collectionId);
|
||||
|
||||
$usage->setParam('database.collections.delete', 1);
|
||||
|
||||
$events
|
||||
->setParam('eventData', $response->output($collection, Response::MODEL_COLLECTION))
|
||||
;
|
||||
|
@ -353,11 +375,13 @@ App::post('/v1/database/collections/:collectionId/attributes/string')
|
|||
->inject('dbForExternal')
|
||||
->inject('database')
|
||||
->inject('audits')
|
||||
->action(function ($collectionId, $attributeId, $size, $required, $default, $array, $response, $dbForExternal, $database, $audits) use ($attributesCallback) {
|
||||
->inject('usage')
|
||||
->action(function ($collectionId, $attributeId, $size, $required, $default, $array, $response, $dbForExternal, $database, $audits, $usage) use ($attributesCallback) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Utopia\Database\Database $dbForExternal*/
|
||||
/** @var Appwrite\Event\Event $database */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Stats\Stats $usage */
|
||||
|
||||
return $attributesCallback(new Document([
|
||||
'$collection' => $collectionId,
|
||||
|
@ -367,7 +391,7 @@ App::post('/v1/database/collections/:collectionId/attributes/string')
|
|||
'required' => $required,
|
||||
'default' => $default,
|
||||
'array' => $array,
|
||||
]), $response, $dbForExternal, $database, $audits);
|
||||
]), $response, $dbForExternal, $database, $audits, $usage);
|
||||
});
|
||||
|
||||
App::post('/v1/database/collections/:collectionId/attributes/email')
|
||||
|
@ -391,11 +415,13 @@ App::post('/v1/database/collections/:collectionId/attributes/email')
|
|||
->inject('dbForExternal')
|
||||
->inject('database')
|
||||
->inject('audits')
|
||||
->action(function ($collectionId, $attributeId, $required, $default, $array, $response, $dbForExternal, $database, $audits) use ($attributesCallback) {
|
||||
->inject('usage')
|
||||
->action(function ($collectionId, $attributeId, $required, $default, $array, $response, $dbForExternal, $database, $audits, $usage) use ($attributesCallback) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Utopia\Database\Database $dbForExternal*/
|
||||
/** @var Appwrite\Event\Event $database */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Stats\Stats $usage */
|
||||
|
||||
return $attributesCallback(new Document([
|
||||
'$collection' => $collectionId,
|
||||
|
@ -406,7 +432,7 @@ App::post('/v1/database/collections/:collectionId/attributes/email')
|
|||
'default' => $default,
|
||||
'array' => $array,
|
||||
'format' => \json_encode(['name'=>'email']),
|
||||
]), $response, $dbForExternal, $database, $audits);
|
||||
]), $response, $dbForExternal, $database, $audits, $usage);
|
||||
});
|
||||
|
||||
App::post('/v1/database/collections/:collectionId/attributes/ip')
|
||||
|
@ -430,11 +456,13 @@ App::post('/v1/database/collections/:collectionId/attributes/ip')
|
|||
->inject('dbForExternal')
|
||||
->inject('database')
|
||||
->inject('audits')
|
||||
->action(function ($collectionId, $attributeId, $required, $default, $array, $response, $dbForExternal, $database, $audits) use ($attributesCallback) {
|
||||
->inject('usage')
|
||||
->action(function ($collectionId, $attributeId, $required, $default, $array, $response, $dbForExternal, $database, $audits, $usage) use ($attributesCallback) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Utopia\Database\Database $dbForExternal*/
|
||||
/** @var Appwrite\Event\Event $database */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Stats\Stats $usage */
|
||||
|
||||
return $attributesCallback(new Document([
|
||||
'$collection' => $collectionId,
|
||||
|
@ -445,7 +473,7 @@ App::post('/v1/database/collections/:collectionId/attributes/ip')
|
|||
'default' => $default,
|
||||
'array' => $array,
|
||||
'format' => \json_encode(['name'=>'ip']),
|
||||
]), $response, $dbForExternal, $database, $audits);
|
||||
]), $response, $dbForExternal, $database, $audits, $usage);
|
||||
});
|
||||
|
||||
App::post('/v1/database/collections/:collectionId/attributes/url')
|
||||
|
@ -470,11 +498,13 @@ App::post('/v1/database/collections/:collectionId/attributes/url')
|
|||
->inject('dbForExternal')
|
||||
->inject('database')
|
||||
->inject('audits')
|
||||
->action(function ($collectionId, $attributeId, $size, $required, $default, $array, $response, $dbForExternal, $database, $audits) use ($attributesCallback) {
|
||||
->inject('usage')
|
||||
->action(function ($collectionId, $attributeId, $size, $required, $default, $array, $response, $dbForExternal, $database, $audits, $usage) use ($attributesCallback) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Utopia\Database\Database $dbForExternal*/
|
||||
/** @var Appwrite\Event\Event $database */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Stats\Stats $usage */
|
||||
|
||||
return $attributesCallback(new Document([
|
||||
'$collection' => $collectionId,
|
||||
|
@ -485,7 +515,7 @@ App::post('/v1/database/collections/:collectionId/attributes/url')
|
|||
'default' => $default,
|
||||
'array' => $array,
|
||||
'format' => \json_encode(['name'=>'url']),
|
||||
]), $response, $dbForExternal, $database, $audits);
|
||||
]), $response, $dbForExternal, $database, $audits, $usage);
|
||||
});
|
||||
|
||||
App::post('/v1/database/collections/:collectionId/attributes/integer')
|
||||
|
@ -511,12 +541,15 @@ App::post('/v1/database/collections/:collectionId/attributes/integer')
|
|||
->inject('dbForExternal')
|
||||
->inject('database')
|
||||
->inject('audits')
|
||||
->action(function ($collectionId, $attributeId, $required, $min, $max, $default, $array, $response, $dbForExternal, $database, $audits) use ($attributesCallback) {
|
||||
->inject('usage')
|
||||
->action(function ($collectionId, $attributeId, $required, $min, $max, $default, $array, $response, $dbForExternal, $database, $audits, $usage) use ($attributesCallback) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Utopia\Database\Database $dbForExternal*/
|
||||
/** @var Appwrite\Event\Event $database */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Stats\Stats $usage */
|
||||
|
||||
|
||||
return $attributesCallback(new Document([
|
||||
'$collection' => $collectionId,
|
||||
'$id' => $attributeId,
|
||||
|
@ -530,7 +563,7 @@ App::post('/v1/database/collections/:collectionId/attributes/integer')
|
|||
'min' => $min,
|
||||
'max' => $max,
|
||||
]),
|
||||
]), $response, $dbForExternal, $database, $audits);
|
||||
]), $response, $dbForExternal, $database, $audits, $usage);
|
||||
});
|
||||
|
||||
App::post('/v1/database/collections/:collectionId/attributes/float')
|
||||
|
@ -556,11 +589,13 @@ App::post('/v1/database/collections/:collectionId/attributes/float')
|
|||
->inject('dbForExternal')
|
||||
->inject('database')
|
||||
->inject('audits')
|
||||
->action(function ($collectionId, $attributeId, $required, $min, $max, $default, $array, $response, $dbForExternal, $database, $audits) use ($attributesCallback) {
|
||||
->inject('usage')
|
||||
->action(function ($collectionId, $attributeId, $required, $min, $max, $default, $array, $response, $dbForExternal, $database, $audits, $usage) use ($attributesCallback) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Utopia\Database\Database $dbForExternal*/
|
||||
/** @var Appwrite\Event\Event $database */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Stats\Stats $usage */
|
||||
|
||||
return $attributesCallback(new Document([
|
||||
'$collection' => $collectionId,
|
||||
|
@ -575,7 +610,7 @@ App::post('/v1/database/collections/:collectionId/attributes/float')
|
|||
'min' => $min,
|
||||
'max' => $max,
|
||||
]),
|
||||
]), $response, $dbForExternal, $database, $audits);
|
||||
]), $response, $dbForExternal, $database, $audits, $usage);
|
||||
});
|
||||
|
||||
App::post('/v1/database/collections/:collectionId/attributes/boolean')
|
||||
|
@ -599,11 +634,13 @@ App::post('/v1/database/collections/:collectionId/attributes/boolean')
|
|||
->inject('dbForExternal')
|
||||
->inject('database')
|
||||
->inject('audits')
|
||||
->action(function ($collectionId, $attributeId, $required, $default, $array, $response, $dbForExternal, $database, $audits) use ($attributesCallback) {
|
||||
->inject('usage')
|
||||
->action(function ($collectionId, $attributeId, $required, $default, $array, $response, $dbForExternal, $database, $audits, $usage) use ($attributesCallback) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Utopia\Database\Database $dbForExternal*/
|
||||
/** @var Appwrite\Event\Event $database */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Stats\Stats $usage */
|
||||
|
||||
return $attributesCallback(new Document([
|
||||
'$collection' => $collectionId,
|
||||
|
@ -613,7 +650,7 @@ App::post('/v1/database/collections/:collectionId/attributes/boolean')
|
|||
'required' => $required,
|
||||
'default' => $default,
|
||||
'array' => $array,
|
||||
]), $response, $dbForExternal, $database, $audits);
|
||||
]), $response, $dbForExternal, $database, $audits, $usage);
|
||||
});
|
||||
|
||||
App::get('/v1/database/collections/:collectionId/attributes')
|
||||
|
@ -630,9 +667,11 @@ App::get('/v1/database/collections/:collectionId/attributes')
|
|||
->param('collectionId', '', new UID(), 'Collection unique ID. You can create a new collection using the Database service [server integration](/docs/server/database#createCollection).')
|
||||
->inject('response')
|
||||
->inject('dbForExternal')
|
||||
->action(function ($collectionId, $response, $dbForExternal) {
|
||||
->inject('usage')
|
||||
->action(function ($collectionId, $response, $dbForExternal, $usage) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Utopia\Database\Database $dbForExternal */
|
||||
/** @var Appwrite\Stats\Stats $usage */
|
||||
|
||||
$collection = $dbForExternal->getCollection($collectionId);
|
||||
|
||||
|
@ -648,6 +687,8 @@ App::get('/v1/database/collections/:collectionId/attributes')
|
|||
])]);
|
||||
}, $attributes);
|
||||
|
||||
$usage->setParam('database.collections.read', 1);
|
||||
|
||||
$response->dynamic(new Document([
|
||||
'sum' => \count($attributes),
|
||||
'attributes' => $attributes
|
||||
|
@ -669,9 +710,11 @@ App::get('/v1/database/collections/:collectionId/attributes/:attributeId')
|
|||
->param('attributeId', '', new Key(), 'Attribute ID.')
|
||||
->inject('response')
|
||||
->inject('dbForExternal')
|
||||
->action(function ($collectionId, $attributeId, $response, $dbForExternal) {
|
||||
->inject('usage')
|
||||
->action(function ($collectionId, $attributeId, $response, $dbForExternal, $usage) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Utopia\Database\Database $dbForExternal */
|
||||
/** @var Appwrite\Stats\Stats $usage */
|
||||
|
||||
$collection = $dbForExternal->getCollection($collectionId);
|
||||
|
||||
|
@ -691,6 +734,8 @@ App::get('/v1/database/collections/:collectionId/attributes/:attributeId')
|
|||
$attribute = new Document([\array_merge($attributes[$attributeIndex], [
|
||||
'collectionId' => $collectionId,
|
||||
])]);
|
||||
|
||||
$usage->setParam('database.collections.read', 1);
|
||||
|
||||
$response->dynamic($attribute, Response::MODEL_ATTRIBUTE);
|
||||
});
|
||||
|
@ -713,12 +758,14 @@ App::delete('/v1/database/collections/:collectionId/attributes/:attributeId')
|
|||
->inject('database')
|
||||
->inject('events')
|
||||
->inject('audits')
|
||||
->action(function ($collectionId, $attributeId, $response, $dbForExternal, $database, $events, $audits) {
|
||||
->inject('usage')
|
||||
->action(function ($collectionId, $attributeId, $response, $dbForExternal, $database, $events, $audits, $usage) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Utopia\Database\Database $dbForExternal */
|
||||
/** @var Appwrite\Event\Event $database */
|
||||
/** @var Appwrite\Event\Event $events */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Stats\Stats $usage */
|
||||
|
||||
$collection = $dbForExternal->getCollection($collectionId);
|
||||
|
||||
|
@ -747,6 +794,8 @@ App::delete('/v1/database/collections/:collectionId/attributes/:attributeId')
|
|||
->setParam('document', $attribute)
|
||||
;
|
||||
|
||||
$usage->setParam('database.collections.update', 1);
|
||||
|
||||
$events
|
||||
->setParam('payload', $response->output($attribute, Response::MODEL_ATTRIBUTE))
|
||||
;
|
||||
|
@ -781,11 +830,13 @@ App::post('/v1/database/collections/:collectionId/indexes')
|
|||
->inject('dbForExternal')
|
||||
->inject('database')
|
||||
->inject('audits')
|
||||
->action(function ($collectionId, $indexId, $type, $attributes, $orders, $response, $dbForExternal, $database, $audits) {
|
||||
->inject('usage')
|
||||
->action(function ($collectionId, $indexId, $type, $attributes, $orders, $response, $dbForExternal, $database, $audits, $usage) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Utopia\Database\Database $dbForExternal */
|
||||
/** @var Appwrite\Event\Event $database */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Stats\Stats $audits */
|
||||
|
||||
$collection = $dbForExternal->getCollection($collectionId);
|
||||
|
||||
|
@ -837,6 +888,8 @@ App::post('/v1/database/collections/:collectionId/indexes')
|
|||
->setParam('document', $index)
|
||||
;
|
||||
|
||||
$usage->setParam('database.collections.update', 1);
|
||||
|
||||
$audits
|
||||
->setParam('event', 'database.indexes.create')
|
||||
->setParam('resource', 'database/indexes/'.$index->getId())
|
||||
|
@ -862,9 +915,11 @@ App::get('/v1/database/collections/:collectionId/indexes')
|
|||
->param('collectionId', '', new UID(), 'Collection unique ID. You can create a new collection using the Database service [server integration](/docs/server/database#createCollection).')
|
||||
->inject('response')
|
||||
->inject('dbForExternal')
|
||||
->action(function ($collectionId, $response, $dbForExternal) {
|
||||
->inject('usage')
|
||||
->action(function ($collectionId, $response, $dbForExternal, $usage) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Utopia\Database\Database $dbForExternal */
|
||||
/** @var Appwrite\Stats\Stats $usage */
|
||||
|
||||
$collection = $dbForExternal->getCollection($collectionId);
|
||||
|
||||
|
@ -880,6 +935,8 @@ App::get('/v1/database/collections/:collectionId/indexes')
|
|||
])]);
|
||||
}, $indexes);
|
||||
|
||||
$usage->setParam('database.collections.read', 1);
|
||||
|
||||
$response->dynamic(new Document([
|
||||
'sum' => \count($indexes),
|
||||
'attributes' => $indexes,
|
||||
|
@ -901,9 +958,11 @@ App::get('/v1/database/collections/:collectionId/indexes/:indexId')
|
|||
->param('indexId', null, new Key(), 'Index ID.')
|
||||
->inject('response')
|
||||
->inject('dbForExternal')
|
||||
->action(function ($collectionId, $indexId, $response, $dbForExternal) {
|
||||
->inject('usage')
|
||||
->action(function ($collectionId, $indexId, $response, $dbForExternal, $usage) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Utopia\Database\Database $dbForExternal */
|
||||
/** @var Appwrite\Stats\Stats $usage */
|
||||
|
||||
$collection = $dbForExternal->getCollection($collectionId);
|
||||
|
||||
|
@ -923,6 +982,8 @@ App::get('/v1/database/collections/:collectionId/indexes/:indexId')
|
|||
$index = new Document([\array_merge($indexes[$indexIndex], [
|
||||
'collectionId' => $collectionId,
|
||||
])]);
|
||||
|
||||
$usage->setParam('database.collections.read', 1);
|
||||
|
||||
$response->dynamic($index, Response::MODEL_INDEX);
|
||||
});
|
||||
|
@ -945,12 +1006,14 @@ App::delete('/v1/database/collections/:collectionId/indexes/:indexId')
|
|||
->inject('database')
|
||||
->inject('events')
|
||||
->inject('audits')
|
||||
->action(function ($collectionId, $indexId, $response, $dbForExternal, $database, $events, $audits) {
|
||||
->inject('usage')
|
||||
->action(function ($collectionId, $indexId, $response, $dbForExternal, $database, $events, $audits, $usage) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Utopia\Database\Database $dbForExternal */
|
||||
/** @var Appwrite\Event\Event $database */
|
||||
/** @var Appwrite\Event\Event $events */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Stats\Stats $usage */
|
||||
|
||||
$collection = $dbForExternal->getCollection($collectionId);
|
||||
|
||||
|
@ -979,6 +1042,8 @@ App::delete('/v1/database/collections/:collectionId/indexes/:indexId')
|
|||
->setParam('document', $index)
|
||||
;
|
||||
|
||||
$usage->setParam('database.collections.update', 1);
|
||||
|
||||
$events
|
||||
->setParam('payload', $response->output($index, Response::MODEL_INDEX))
|
||||
;
|
||||
|
@ -1013,11 +1078,13 @@ App::post('/v1/database/collections/:collectionId/documents')
|
|||
->inject('dbForExternal')
|
||||
->inject('user')
|
||||
->inject('audits')
|
||||
->action(function ($documentId, $collectionId, $data, $read, $write, $response, $dbForExternal, $user, $audits) {
|
||||
->inject('usage')
|
||||
->action(function ($documentId, $collectionId, $data, $read, $write, $response, $dbForExternal, $user, $audits, $usage) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Utopia\Database\Database $dbForExternal */
|
||||
/** @var Utopia\Database\Document $user */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Stats\Stats $usage */
|
||||
|
||||
$data = (\is_string($data)) ? \json_decode($data, true) : $data; // Cast to JSON array
|
||||
|
||||
|
@ -1046,6 +1113,11 @@ App::post('/v1/database/collections/:collectionId/documents')
|
|||
throw new Exception($exception->getMessage(), 400);
|
||||
}
|
||||
|
||||
$usage
|
||||
->setParam('database.documents.create', 1)
|
||||
->setParam('database.collections.' . $collectionId . '.documents.create', 1)
|
||||
;
|
||||
|
||||
$audits
|
||||
->setParam('event', 'database.documents.create')
|
||||
->setParam('resource', 'database/document/'.$document->getId())
|
||||
|
@ -1076,9 +1148,11 @@ App::get('/v1/database/collections/:collectionId/documents')
|
|||
->param('orderTypes', [], new ArrayList(new WhiteList(['DESC', 'ASC'], true)), 'Array of order directions for sorting attribtues. Possible values are DESC for descending order, or ASC for ascending order.', true)
|
||||
->inject('response')
|
||||
->inject('dbForExternal')
|
||||
->action(function ($collectionId, $queries, $limit, $offset, $after, $orderAttributes, $orderTypes, $response, $dbForExternal) {
|
||||
->inject('usage')
|
||||
->action(function ($collectionId, $queries, $limit, $offset, $after, $orderAttributes, $orderTypes, $response, $dbForExternal, $usage) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Utopia\Database\Database $dbForExternal */
|
||||
/** @var Appwrite\Stats\Stats $usage */
|
||||
|
||||
$collection = $dbForExternal->getCollection($collectionId);
|
||||
|
||||
|
@ -1112,6 +1186,11 @@ App::get('/v1/database/collections/:collectionId/documents')
|
|||
|
||||
$documents = $dbForExternal->find($collectionId, $queries, $limit, $offset, $orderAttributes, $orderTypes, $afterDocument ?? null);
|
||||
|
||||
$usage
|
||||
->setParam('database.documents.read', 1)
|
||||
->setParam('database.collections.' . $collectionId . '.documents.read', 1)
|
||||
;
|
||||
|
||||
$response->dynamic(new Document([
|
||||
'sum' => \count($documents),
|
||||
'documents' => $documents,
|
||||
|
@ -1133,7 +1212,8 @@ App::get('/v1/database/collections/:collectionId/documents/:documentId')
|
|||
->param('documentId', null, new UID(), 'Document unique ID.')
|
||||
->inject('response')
|
||||
->inject('dbForExternal')
|
||||
->action(function ($collectionId, $documentId, $response, $dbForExternal) {
|
||||
->inject('usage')
|
||||
->action(function ($collectionId, $documentId, $response, $dbForExternal, $usage) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Utopia\Database\Database $dbForExternal */
|
||||
|
||||
|
@ -1149,6 +1229,11 @@ App::get('/v1/database/collections/:collectionId/documents/:documentId')
|
|||
throw new Exception('No document found', 404);
|
||||
}
|
||||
|
||||
$usage
|
||||
->setParam('database.documents.read', 1)
|
||||
->setParam('database.collections.' . $collectionId . '.documents.read', 1)
|
||||
;
|
||||
|
||||
$response->dynamic($document, Response::MODEL_DOCUMENT);
|
||||
});
|
||||
|
||||
|
@ -1172,10 +1257,12 @@ App::patch('/v1/database/collections/:collectionId/documents/:documentId')
|
|||
->inject('response')
|
||||
->inject('dbForExternal')
|
||||
->inject('audits')
|
||||
->action(function ($collectionId, $documentId, $data, $read, $write, $response, $dbForExternal, $audits) {
|
||||
->inject('usage')
|
||||
->action(function ($collectionId, $documentId, $data, $read, $write, $response, $dbForExternal, $audits, $usage) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Utopia\Database\Database $dbForExternal */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Stats\Stats $usage */
|
||||
|
||||
$collection = $dbForExternal->getCollection($collectionId);
|
||||
|
||||
|
@ -1212,7 +1299,12 @@ App::patch('/v1/database/collections/:collectionId/documents/:documentId')
|
|||
throw new Exception('Unauthorized permissions', 401);
|
||||
} catch (StructureException $exception) {
|
||||
throw new Exception('Bad structure. '.$exception->getMessage(), 400);
|
||||
}
|
||||
}
|
||||
|
||||
$usage
|
||||
->setParam('database.documents.update', 1)
|
||||
->setParam('database.collections.' . $collectionId . '.documents.update', 1)
|
||||
;
|
||||
|
||||
$audits
|
||||
->setParam('event', 'database.documents.update')
|
||||
|
@ -1240,11 +1332,13 @@ App::delete('/v1/database/collections/:collectionId/documents/:documentId')
|
|||
->inject('dbForExternal')
|
||||
->inject('events')
|
||||
->inject('audits')
|
||||
->action(function ($collectionId, $documentId, $response, $dbForExternal, $events, $audits) {
|
||||
->inject('usage')
|
||||
->action(function ($collectionId, $documentId, $response, $dbForExternal, $events, $audits, $usage) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Utopia\Database\Database $dbForExternal */
|
||||
/** @var Appwrite\Event\Event $events */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Stats\Stats $usage */
|
||||
|
||||
$collection = $dbForExternal->getCollection($collectionId);
|
||||
|
||||
|
@ -1260,6 +1354,11 @@ App::delete('/v1/database/collections/:collectionId/documents/:documentId')
|
|||
|
||||
$success = $dbForExternal->deleteDocument($collectionId, $documentId);
|
||||
|
||||
$usage
|
||||
->setParam('database.documents.delete', 1)
|
||||
->setParam('database.collections.' . $collectionId . '.documents.delete', 1)
|
||||
;
|
||||
|
||||
$events
|
||||
->setParam('eventData', $response->output($document, Response::MODEL_DOCUMENT))
|
||||
;
|
||||
|
|
Loading…
Reference in a new issue