Merge branch '0.16.x' of github.com:appwrite/appwrite into feat-file-cache-cleanup
This commit is contained in:
commit
e8a2e30bb5
|
@ -1443,7 +1443,7 @@ App::patch('/v1/account/name')
|
|||
|
||||
$user = $dbForProject->updateDocument('users', $user->getId(), $user
|
||||
->setAttribute('name', $name)
|
||||
->setAttribute('search', implode(' ', [$user->getId(), $name, $user->getAttribute('email')])));
|
||||
->setAttribute('search', implode(' ', [$user->getId(), $name, $user->getAttribute('email', ''), $user->getAttribute('phone', '')])));
|
||||
|
||||
$audits
|
||||
->setResource('user/' . $user->getId())
|
||||
|
@ -1539,7 +1539,7 @@ App::patch('/v1/account/email')
|
|||
->setAttribute('password', $isAnonymousUser ? Auth::passwordHash($password) : $user->getAttribute('password', ''))
|
||||
->setAttribute('email', $email)
|
||||
->setAttribute('emailVerification', false) // After this user needs to confirm mail again
|
||||
->setAttribute('search', implode(' ', [$user->getId(), $user->getAttribute('name'), $user->getAttribute('email')]));
|
||||
->setAttribute('search', implode(' ', [$user->getId(), $user->getAttribute('name', ''), $email, $user->getAttribute('phone', '')]));
|
||||
|
||||
try {
|
||||
$user = $dbForProject->updateDocument('users', $user->getId(), $user);
|
||||
|
@ -1592,7 +1592,7 @@ App::patch('/v1/account/phone')
|
|||
$user
|
||||
->setAttribute('phone', $phone)
|
||||
->setAttribute('phoneVerification', false) // After this user needs to confirm phone number again
|
||||
->setAttribute('search', implode(' ', [$user->getId(), $user->getAttribute('name'), $user->getAttribute('email')]));
|
||||
->setAttribute('search', implode(' ', [$user->getId(), $user->getAttribute('name', ''), $user->getAttribute('email', ''), $phone]));
|
||||
|
||||
try {
|
||||
$user = $dbForProject->updateDocument('users', $user->getId(), $user);
|
||||
|
|
|
@ -882,7 +882,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/attributes/string
|
|||
->label('sdk.namespace', 'databases')
|
||||
->label('sdk.method', 'createStringAttribute')
|
||||
->label('sdk.description', '/docs/references/databases/create-string-attribute.md')
|
||||
->label('sdk.response.code', Response::STATUS_CODE_CREATED)
|
||||
->label('sdk.response.code', Response::STATUS_CODE_ACCEPTED)
|
||||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||
->label('sdk.response.model', Response::MODEL_ATTRIBUTE_STRING)
|
||||
->param('databaseId', '', new UID(), 'Database ID.')
|
||||
|
@ -915,6 +915,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/attributes/string
|
|||
'array' => $array,
|
||||
]), $response, $dbForProject, $database, $audits, $events, $usage);
|
||||
|
||||
$response->setStatusCode(Response::STATUS_CODE_ACCEPTED);
|
||||
$response->dynamic($attribute, Response::MODEL_ATTRIBUTE_STRING);
|
||||
});
|
||||
|
||||
|
@ -928,7 +929,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/attributes/email'
|
|||
->label('sdk.auth', [APP_AUTH_TYPE_KEY])
|
||||
->label('sdk.method', 'createEmailAttribute')
|
||||
->label('sdk.description', '/docs/references/databases/create-email-attribute.md')
|
||||
->label('sdk.response.code', Response::STATUS_CODE_CREATED)
|
||||
->label('sdk.response.code', Response::STATUS_CODE_ACCEPTED)
|
||||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||
->label('sdk.response.model', Response::MODEL_ATTRIBUTE_EMAIL)
|
||||
->param('databaseId', '', new UID(), 'Database ID.')
|
||||
|
@ -955,6 +956,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/attributes/email'
|
|||
'format' => APP_DATABASE_ATTRIBUTE_EMAIL,
|
||||
]), $response, $dbForProject, $database, $audits, $events, $usage);
|
||||
|
||||
$response->setStatusCode(Response::STATUS_CODE_ACCEPTED);
|
||||
$response->dynamic($attribute, Response::MODEL_ATTRIBUTE_EMAIL);
|
||||
});
|
||||
|
||||
|
@ -968,7 +970,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/attributes/enum')
|
|||
->label('sdk.auth', [APP_AUTH_TYPE_KEY])
|
||||
->label('sdk.method', 'createEnumAttribute')
|
||||
->label('sdk.description', '/docs/references/databases/create-attribute-enum.md')
|
||||
->label('sdk.response.code', Response::STATUS_CODE_CREATED)
|
||||
->label('sdk.response.code', Response::STATUS_CODE_ACCEPTED)
|
||||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||
->label('sdk.response.model', Response::MODEL_ATTRIBUTE_ENUM)
|
||||
->param('databaseId', '', new UID(), 'Database ID.')
|
||||
|
@ -1011,6 +1013,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/attributes/enum')
|
|||
'formatOptions' => ['elements' => $elements],
|
||||
]), $response, $dbForProject, $database, $audits, $events, $usage);
|
||||
|
||||
$response->setStatusCode(Response::STATUS_CODE_ACCEPTED);
|
||||
$response->dynamic($attribute, Response::MODEL_ATTRIBUTE_ENUM);
|
||||
});
|
||||
|
||||
|
@ -1024,7 +1027,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/attributes/ip')
|
|||
->label('sdk.auth', [APP_AUTH_TYPE_KEY])
|
||||
->label('sdk.method', 'createIpAttribute')
|
||||
->label('sdk.description', '/docs/references/databases/create-ip-attribute.md')
|
||||
->label('sdk.response.code', Response::STATUS_CODE_CREATED)
|
||||
->label('sdk.response.code', Response::STATUS_CODE_ACCEPTED)
|
||||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||
->label('sdk.response.model', Response::MODEL_ATTRIBUTE_IP)
|
||||
->param('databaseId', '', new UID(), 'Database ID.')
|
||||
|
@ -1051,6 +1054,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/attributes/ip')
|
|||
'format' => APP_DATABASE_ATTRIBUTE_IP,
|
||||
]), $response, $dbForProject, $database, $audits, $events, $usage);
|
||||
|
||||
$response->setStatusCode(Response::STATUS_CODE_ACCEPTED);
|
||||
$response->dynamic($attribute, Response::MODEL_ATTRIBUTE_IP);
|
||||
});
|
||||
|
||||
|
@ -1064,7 +1068,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/attributes/url')
|
|||
->label('sdk.auth', [APP_AUTH_TYPE_KEY])
|
||||
->label('sdk.method', 'createUrlAttribute')
|
||||
->label('sdk.description', '/docs/references/databases/create-url-attribute.md')
|
||||
->label('sdk.response.code', Response::STATUS_CODE_CREATED)
|
||||
->label('sdk.response.code', Response::STATUS_CODE_ACCEPTED)
|
||||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||
->label('sdk.response.model', Response::MODEL_ATTRIBUTE_URL)
|
||||
->param('databaseId', '', new UID(), 'Database ID.')
|
||||
|
@ -1091,6 +1095,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/attributes/url')
|
|||
'format' => APP_DATABASE_ATTRIBUTE_URL,
|
||||
]), $response, $dbForProject, $database, $audits, $events, $usage);
|
||||
|
||||
$response->setStatusCode(Response::STATUS_CODE_ACCEPTED);
|
||||
$response->dynamic($attribute, Response::MODEL_ATTRIBUTE_URL);
|
||||
});
|
||||
|
||||
|
@ -1104,7 +1109,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/attributes/intege
|
|||
->label('sdk.auth', [APP_AUTH_TYPE_KEY])
|
||||
->label('sdk.method', 'createIntegerAttribute')
|
||||
->label('sdk.description', '/docs/references/databases/create-integer-attribute.md')
|
||||
->label('sdk.response.code', Response::STATUS_CODE_CREATED)
|
||||
->label('sdk.response.code', Response::STATUS_CODE_ACCEPTED)
|
||||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||
->label('sdk.response.model', Response::MODEL_ATTRIBUTE_INTEGER)
|
||||
->param('databaseId', '', new UID(), 'Database ID.')
|
||||
|
@ -1160,6 +1165,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/attributes/intege
|
|||
$attribute->setAttribute('max', \intval($formatOptions['max']));
|
||||
}
|
||||
|
||||
$response->setStatusCode(Response::STATUS_CODE_ACCEPTED);
|
||||
$response->dynamic($attribute, Response::MODEL_ATTRIBUTE_INTEGER);
|
||||
});
|
||||
|
||||
|
@ -1173,7 +1179,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/attributes/float'
|
|||
->label('sdk.auth', [APP_AUTH_TYPE_KEY])
|
||||
->label('sdk.method', 'createFloatAttribute')
|
||||
->label('sdk.description', '/docs/references/databases/create-float-attribute.md')
|
||||
->label('sdk.response.code', Response::STATUS_CODE_CREATED)
|
||||
->label('sdk.response.code', Response::STATUS_CODE_ACCEPTED)
|
||||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||
->label('sdk.response.model', Response::MODEL_ATTRIBUTE_FLOAT)
|
||||
->param('databaseId', '', new UID(), 'Database ID.')
|
||||
|
@ -1232,6 +1238,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/attributes/float'
|
|||
$attribute->setAttribute('max', \floatval($formatOptions['max']));
|
||||
}
|
||||
|
||||
$response->setStatusCode(Response::STATUS_CODE_ACCEPTED);
|
||||
$response->dynamic($attribute, Response::MODEL_ATTRIBUTE_FLOAT);
|
||||
});
|
||||
|
||||
|
@ -1245,7 +1252,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/attributes/boolea
|
|||
->label('sdk.auth', [APP_AUTH_TYPE_KEY])
|
||||
->label('sdk.method', 'createBooleanAttribute')
|
||||
->label('sdk.description', '/docs/references/databases/create-boolean-attribute.md')
|
||||
->label('sdk.response.code', Response::STATUS_CODE_CREATED)
|
||||
->label('sdk.response.code', Response::STATUS_CODE_ACCEPTED)
|
||||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||
->label('sdk.response.model', Response::MODEL_ATTRIBUTE_BOOLEAN)
|
||||
->param('databaseId', '', new UID(), 'Database ID.')
|
||||
|
@ -1271,6 +1278,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/attributes/boolea
|
|||
'array' => $array,
|
||||
]), $response, $dbForProject, $database, $audits, $events, $usage);
|
||||
|
||||
$response->setStatusCode(Response::STATUS_CODE_ACCEPTED);
|
||||
$response->dynamic($attribute, Response::MODEL_ATTRIBUTE_BOOLEAN);
|
||||
});
|
||||
|
||||
|
@ -1491,7 +1499,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/indexes')
|
|||
->label('sdk.namespace', 'databases')
|
||||
->label('sdk.method', 'createIndex')
|
||||
->label('sdk.description', '/docs/references/databases/create-index.md')
|
||||
->label('sdk.response.code', Response::STATUS_CODE_CREATED)
|
||||
->label('sdk.response.code', Response::STATUS_CODE_ACCEPTED)
|
||||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||
->label('sdk.response.model', Response::MODEL_INDEX)
|
||||
->param('databaseId', '', new UID(), 'Database ID.')
|
||||
|
@ -1633,7 +1641,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/indexes')
|
|||
->setPayload($index->getArrayCopy())
|
||||
;
|
||||
|
||||
$response->setStatusCode(Response::STATUS_CODE_CREATED);
|
||||
$response->setStatusCode(Response::STATUS_CODE_ACCEPTED);
|
||||
$response->dynamic($index, Response::MODEL_INDEX);
|
||||
});
|
||||
|
||||
|
|
|
@ -453,7 +453,7 @@ App::post('/v1/functions/:functionId/deployments')
|
|||
->label('sdk.description', '/docs/references/functions/create-deployment.md')
|
||||
->label('sdk.packaging', true)
|
||||
->label('sdk.request.type', 'multipart/form-data')
|
||||
->label('sdk.response.code', Response::STATUS_CODE_CREATED)
|
||||
->label('sdk.response.code', Response::STATUS_CODE_ACCEPTED)
|
||||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||
->label('sdk.response.model', Response::MODEL_DEPLOYMENT)
|
||||
->param('functionId', '', new UID(), 'Function ID.')
|
||||
|
@ -622,7 +622,7 @@ App::post('/v1/functions/:functionId/deployments')
|
|||
->setParam('functionId', $function->getId())
|
||||
->setParam('deploymentId', $deployment->getId());
|
||||
|
||||
$response->setStatusCode(Response::STATUS_CODE_CREATED);
|
||||
$response->setStatusCode(Response::STATUS_CODE_ACCEPTED);
|
||||
$response->dynamic($deployment, Response::MODEL_DEPLOYMENT);
|
||||
});
|
||||
|
||||
|
@ -906,7 +906,7 @@ App::post('/v1/functions/:functionId/executions')
|
|||
|
||||
$event->trigger();
|
||||
|
||||
$response->setStatusCode(Response::STATUS_CODE_CREATED);
|
||||
$response->setStatusCode(Response::STATUS_CODE_ACCEPTED);
|
||||
|
||||
return $response->dynamic($execution, Response::MODEL_EXECUTION);
|
||||
}
|
||||
|
|
|
@ -506,7 +506,7 @@ App::patch('/v1/users/:userId/name')
|
|||
|
||||
$user
|
||||
->setAttribute('name', $name)
|
||||
->setAttribute('search', \implode(' ', [$user->getId(), $user->getAttribute('email'), $name]));
|
||||
->setAttribute('search', \implode(' ', [$user->getId(), $user->getAttribute('email', ''), $name, $user->getAttribute('phone', '')]));
|
||||
;
|
||||
|
||||
$user = $dbForProject->updateDocument('users', $user->getId(), $user);
|
||||
|
@ -596,7 +596,7 @@ App::patch('/v1/users/:userId/email')
|
|||
$user
|
||||
->setAttribute('email', $email)
|
||||
->setAttribute('emailVerification', false)
|
||||
->setAttribute('search', \implode(' ', [$user->getId(), $email, $user->getAttribute('name')]))
|
||||
->setAttribute('search', \implode(' ', [$user->getId(), $email, $user->getAttribute('name', ''), $user->getAttribute('phone', '')]))
|
||||
;
|
||||
|
||||
try {
|
||||
|
@ -646,6 +646,7 @@ App::patch('/v1/users/:userId/phone')
|
|||
$user
|
||||
->setAttribute('phone', $number)
|
||||
->setAttribute('phoneVerification', false)
|
||||
->setAttribute('search', implode(' ', [$user->getId(), $user->getAttribute('name', ''), $user->getAttribute('email', ''), $number]));
|
||||
;
|
||||
|
||||
try {
|
||||
|
|
|
@ -123,7 +123,7 @@
|
|||
data-analytics-category="console/navigation"
|
||||
data-analytics-label="Users Link">
|
||||
<i class="icon-users"></i>
|
||||
Users
|
||||
Authentication
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
|
|
|
@ -583,6 +583,11 @@ $logs = $this->getParam('logs', null);
|
|||
<input id="id" type="text" autocomplete="off" placeholder="" data-ls-bind="{{project-collection.$id}}" disabled data-forms-copy class="margin-bottom-no" />
|
||||
</div>
|
||||
|
||||
<label>Database ID</label>
|
||||
<div class="input-copy margin-bottom">
|
||||
<input type="text" autocomplete="off" placeholder="" data-ls-bind="{{router.params.databaseId}}" disabled data-forms-copy class="margin-bottom-no" />
|
||||
</div>
|
||||
|
||||
<ul class="margin-bottom-large text-fade text-size-small">
|
||||
<li class="margin-bottom-small"><i class="icon-angle-circled-right margin-start-tiny margin-end-tiny"></i>
|
||||
<button data-ls-ui-trigger="open-json"
|
||||
|
|
|
@ -348,6 +348,11 @@ $logs = $this->getParam('logs', null);
|
|||
<input type="text" autocomplete="off" placeholder="" data-ls-bind="{{router.params.collection}}" disabled data-forms-copy class="margin-bottom-no" />
|
||||
</div>
|
||||
|
||||
<label>Database ID</label>
|
||||
<div class="input-copy margin-bottom">
|
||||
<input type="text" autocomplete="off" placeholder="" data-ls-bind="{{router.params.databaseId}}" disabled data-forms-copy class="margin-bottom-no" />
|
||||
</div>
|
||||
|
||||
<ul class="margin-bottom-large text-fade text-size-small" data-ls-if="({{project-document.$id}})">
|
||||
<li class="margin-bottom-small"><i class="icon-angle-circled-right margin-start-tiny margin-end-tiny"></i>
|
||||
<button data-ls-ui-trigger="open-json"
|
||||
|
|
|
@ -11,7 +11,7 @@ $smtpEnabled = $this->getParam('smtpEnabled', false);
|
|||
<a data-ls-attrs="href=/console/home?project={{router.params.project}}" class="back text-size-small link-return-animation--start"><i class="icon-left-open"></i> Home</a>
|
||||
<br />
|
||||
|
||||
<span>Users</span>
|
||||
<span>Authentication</span>
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -18,8 +18,8 @@
|
|||
data-scope="console"
|
||||
data-event="submit"
|
||||
data-success="alert,redirect"
|
||||
data-success-param-alert="Password Reset Completed"
|
||||
data-success-param-url="/auth/signin"
|
||||
data-success-param-alert-text="Password Reset Completed"
|
||||
data-success-param-redirect-url="/auth/signin"
|
||||
data-failure="alert"
|
||||
data-failure-param-alert-text="Password Reset Failed"
|
||||
data-failure-param-alert-classname="error">
|
||||
|
|
|
@ -22,11 +22,6 @@ Console::success(APP_NAME . ' deletes worker v1 has started' . "\n");
|
|||
|
||||
class DeletesV1 extends Worker
|
||||
{
|
||||
/**
|
||||
* @var Database
|
||||
*/
|
||||
protected $consoleDB = null;
|
||||
|
||||
public function getName(): string
|
||||
{
|
||||
return "deletes";
|
||||
|
|
|
@ -76,7 +76,7 @@
|
|||
}
|
||||
],
|
||||
"require-dev": {
|
||||
"appwrite/sdk-generator": "0.19.5",
|
||||
"appwrite/sdk-generator": "0.20.0",
|
||||
"phpunit/phpunit": "9.5.20",
|
||||
"squizlabs/php_codesniffer": "^3.6",
|
||||
"swoole/ide-helper": "4.8.9",
|
||||
|
|
22
composer.lock
generated
22
composer.lock
generated
|
@ -4,7 +4,11 @@
|
|||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
<<<<<<< HEAD
|
||||
"content-hash": "7f417dc4a1f0d5ed97b3d6a88aa72adf",
|
||||
=======
|
||||
"content-hash": "0a8ed4fa28bf33ceb7396c35b9e8a155",
|
||||
>>>>>>> f1a3af6fce925ad8a2fbac32a4a99f7fbbfd1609
|
||||
"packages": [
|
||||
{
|
||||
"name": "adhocore/jwt",
|
||||
|
@ -2828,29 +2832,29 @@
|
|||
"packages-dev": [
|
||||
{
|
||||
"name": "appwrite/sdk-generator",
|
||||
"version": "0.19.5",
|
||||
"version": "0.20.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/appwrite/sdk-generator.git",
|
||||
"reference": "04de540cf683e2b08b3192c137dde7f2c37003d9"
|
||||
"reference": "af7dd08848a78a0d38befa3e63083eb0186806f7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/04de540cf683e2b08b3192c137dde7f2c37003d9",
|
||||
"reference": "04de540cf683e2b08b3192c137dde7f2c37003d9",
|
||||
"url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/af7dd08848a78a0d38befa3e63083eb0186806f7",
|
||||
"reference": "af7dd08848a78a0d38befa3e63083eb0186806f7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-curl": "*",
|
||||
"ext-json": "*",
|
||||
"ext-mbstring": "*",
|
||||
"matthiasmullie/minify": "^1.3",
|
||||
"matthiasmullie/minify": "^1.3.68",
|
||||
"php": ">=7.0.0",
|
||||
"twig/twig": "^3.3"
|
||||
"twig/twig": "^3.4.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"brianium/paratest": "^6.4",
|
||||
"phpunit/phpunit": "^9.5.13"
|
||||
"phpunit/phpunit": "^9.5.21"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
|
@ -2872,9 +2876,9 @@
|
|||
"description": "Appwrite PHP library for generating API SDKs for multiple programming languages and platforms",
|
||||
"support": {
|
||||
"issues": "https://github.com/appwrite/sdk-generator/issues",
|
||||
"source": "https://github.com/appwrite/sdk-generator/tree/0.19.5"
|
||||
"source": "https://github.com/appwrite/sdk-generator/tree/0.20.0"
|
||||
},
|
||||
"time": "2022-07-06T11:05:57+00:00"
|
||||
"time": "2022-08-02T10:09:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/instantiator",
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings.
|
||||
You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings. Country codes follow the [ISO 3166-1](http://en.wikipedia.org/wiki/ISO_3166-1) standard.
|
||||
|
||||
When one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
The Locale service allows you to customize your app based on your users' location. Using this service, you can get your users' location, IP address, list of countries and continents names, phone codes, currencies, and more.
|
||||
The Locale service allows you to customize your app based on your users' location. Using this service, you can get your users' location, IP address, list of countries and continents names, phone codes, currencies, and more. Country codes returned follow the [ISO 3166-1](http://en.wikipedia.org/wiki/ISO_3166-1) standard.
|
||||
|
||||
The user service supports multiple locales. This feature allows you to fetch countries and continents information in your app language. To switch locales, all you need to do is pass the 'X-Appwrite-Locale' header or set the 'setLocale' method using any of our available SDKs. [View here the list of available locales](https://github.com/appwrite/appwrite/blob/master/app/config/locale/codes.php).
|
||||
|
|
63
package-lock.json
generated
63
package-lock.json
generated
|
@ -9,8 +9,8 @@
|
|||
"version": "0.1.0",
|
||||
"license": "BSD-3-Clause",
|
||||
"dependencies": {
|
||||
"chart.js": "^3.8.0",
|
||||
"markdown-it": "^12.3.2",
|
||||
"chart.js": "^3.8.2",
|
||||
"markdown-it": "^13.0.1",
|
||||
"pell": "^1.0.6",
|
||||
"prismjs": "^1.28.0",
|
||||
"turndown": "^7.1.1"
|
||||
|
@ -549,9 +549,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/chart.js": {
|
||||
"version": "3.8.0",
|
||||
"resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.8.0.tgz",
|
||||
"integrity": "sha512-cr8xhrXjLIXVLOBZPkBZVF6NDeiVIrPLHcMhnON7UufudL+CNeRrD+wpYanswlm8NpudMdrt3CHoLMQMxJhHRg=="
|
||||
"version": "3.8.2",
|
||||
"resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.8.2.tgz",
|
||||
"integrity": "sha512-7rqSlHWMUKFyBDOJvmFGW2lxULtcwaPLegDjX/Nu5j6QybY+GCiQkEY+6cqHw62S5tcwXMD8Y+H5OBGoR7d+ZQ=="
|
||||
},
|
||||
"node_modules/chokidar": {
|
||||
"version": "2.1.8",
|
||||
|
@ -1067,9 +1067,12 @@
|
|||
}
|
||||
},
|
||||
"node_modules/entities": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz",
|
||||
"integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==",
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
|
||||
"integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
|
||||
"engines": {
|
||||
"node": ">=0.12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/fb55/entities?sponsor=1"
|
||||
}
|
||||
|
@ -2606,9 +2609,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/linkify-it": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz",
|
||||
"integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==",
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz",
|
||||
"integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==",
|
||||
"dependencies": {
|
||||
"uc.micro": "^1.0.1"
|
||||
}
|
||||
|
@ -2862,13 +2865,13 @@
|
|||
}
|
||||
},
|
||||
"node_modules/markdown-it": {
|
||||
"version": "12.3.2",
|
||||
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz",
|
||||
"integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==",
|
||||
"version": "13.0.1",
|
||||
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz",
|
||||
"integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==",
|
||||
"dependencies": {
|
||||
"argparse": "^2.0.1",
|
||||
"entities": "~2.1.0",
|
||||
"linkify-it": "^3.0.1",
|
||||
"entities": "~3.0.1",
|
||||
"linkify-it": "^4.0.1",
|
||||
"mdurl": "^1.0.1",
|
||||
"uc.micro": "^1.0.5"
|
||||
},
|
||||
|
@ -5484,9 +5487,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"chart.js": {
|
||||
"version": "3.8.0",
|
||||
"resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.8.0.tgz",
|
||||
"integrity": "sha512-cr8xhrXjLIXVLOBZPkBZVF6NDeiVIrPLHcMhnON7UufudL+CNeRrD+wpYanswlm8NpudMdrt3CHoLMQMxJhHRg=="
|
||||
"version": "3.8.2",
|
||||
"resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.8.2.tgz",
|
||||
"integrity": "sha512-7rqSlHWMUKFyBDOJvmFGW2lxULtcwaPLegDjX/Nu5j6QybY+GCiQkEY+6cqHw62S5tcwXMD8Y+H5OBGoR7d+ZQ=="
|
||||
},
|
||||
"chokidar": {
|
||||
"version": "2.1.8",
|
||||
|
@ -5924,9 +5927,9 @@
|
|||
}
|
||||
},
|
||||
"entities": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz",
|
||||
"integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w=="
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
|
||||
"integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q=="
|
||||
},
|
||||
"errno": {
|
||||
"version": "0.1.8",
|
||||
|
@ -7178,9 +7181,9 @@
|
|||
}
|
||||
},
|
||||
"linkify-it": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz",
|
||||
"integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==",
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz",
|
||||
"integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==",
|
||||
"requires": {
|
||||
"uc.micro": "^1.0.1"
|
||||
}
|
||||
|
@ -7413,13 +7416,13 @@
|
|||
}
|
||||
},
|
||||
"markdown-it": {
|
||||
"version": "12.3.2",
|
||||
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz",
|
||||
"integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==",
|
||||
"version": "13.0.1",
|
||||
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz",
|
||||
"integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==",
|
||||
"requires": {
|
||||
"argparse": "^2.0.1",
|
||||
"entities": "~2.1.0",
|
||||
"linkify-it": "^3.0.1",
|
||||
"entities": "~3.0.1",
|
||||
"linkify-it": "^4.0.1",
|
||||
"mdurl": "^1.0.1",
|
||||
"uc.micro": "^1.0.5"
|
||||
}
|
||||
|
|
|
@ -17,8 +17,8 @@
|
|||
"gulp-less": "^5.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"chart.js": "^3.8.0",
|
||||
"markdown-it": "^12.3.2",
|
||||
"chart.js": "^3.8.2",
|
||||
"markdown-it": "^13.0.1",
|
||||
"pell": "^1.0.6",
|
||||
"prismjs": "^1.28.0",
|
||||
"turndown": "^7.1.1"
|
||||
|
|
852
public/dist/scripts/app-all.js
vendored
852
public/dist/scripts/app-all.js
vendored
File diff suppressed because one or more lines are too long
841
public/dist/scripts/app-dep.js
vendored
841
public/dist/scripts/app-dep.js
vendored
File diff suppressed because it is too large
Load diff
11
public/dist/scripts/app.js
vendored
11
public/dist/scripts/app.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load diff
|
@ -57,7 +57,7 @@ window.addEventListener("load", async () => {
|
|||
const realtime = window.ls.container.get('realtime');
|
||||
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
|
||||
let current = {};
|
||||
window.ls.container.get('console').subscribe(['project', 'console'], response => {
|
||||
window.ls.container.get('console').client.subscribe(['project', 'console'], response => {
|
||||
if (response.events.includes('stats.connections')) {
|
||||
for (let project in response.payload) {
|
||||
current[project] = response.payload[project] ?? 0;
|
||||
|
|
|
@ -2,16 +2,28 @@
|
|||
"use strict";
|
||||
|
||||
window.ls.container.set('console', function (window) {
|
||||
var sdk = new window.Appwrite();
|
||||
var client = new Appwrite.Client();
|
||||
var endpoint = window.location.origin + '/v1';
|
||||
|
||||
sdk
|
||||
client
|
||||
.setEndpoint(endpoint)
|
||||
.setProject('console')
|
||||
.setLocale(APP_ENV.LOCALE)
|
||||
;
|
||||
|
||||
return sdk;
|
||||
return {
|
||||
client: client,
|
||||
account: new Appwrite.Account(client),
|
||||
avatars: new Appwrite.Avatars(client),
|
||||
databases: new Appwrite.Databases(client),
|
||||
functions: new Appwrite.Functions(client),
|
||||
health: new Appwrite.Health(client),
|
||||
locale: new Appwrite.Locale(client),
|
||||
projects: new Appwrite.Projects(client),
|
||||
storage: new Appwrite.Storage(client),
|
||||
teams: new Appwrite.Teams(client),
|
||||
users: new Appwrite.Users(client)
|
||||
}
|
||||
}, true);
|
||||
|
||||
})(window);
|
|
@ -2,17 +2,28 @@
|
|||
"use strict";
|
||||
|
||||
window.ls.container.set('sdk', function (window, router) {
|
||||
var sdk = new window.Appwrite();
|
||||
var client = new Appwrite.Client();
|
||||
var endpoint = window.location.origin + '/v1';
|
||||
|
||||
sdk
|
||||
client
|
||||
.setEndpoint(endpoint)
|
||||
.setProject(router.params.project || '')
|
||||
.setLocale(APP_ENV.LOCALE)
|
||||
.setMode('admin')
|
||||
;
|
||||
|
||||
return sdk;
|
||||
return {
|
||||
client: client,
|
||||
account: new Appwrite.Account(client),
|
||||
avatars: new Appwrite.Avatars(client),
|
||||
databases: new Appwrite.Databases(client),
|
||||
functions: new Appwrite.Functions(client),
|
||||
health: new Appwrite.Health(client),
|
||||
locale: new Appwrite.Locale(client),
|
||||
storage: new Appwrite.Storage(client),
|
||||
teams: new Appwrite.Teams(client),
|
||||
users: new Appwrite.Users(client)
|
||||
}
|
||||
}, false);
|
||||
|
||||
})(window);
|
|
@ -203,6 +203,12 @@
|
|||
let params = [];
|
||||
let match;
|
||||
|
||||
let indexOfArguments = functionAsString.indexOf('(');
|
||||
|
||||
if (indexOfArguments !== -1) {
|
||||
functionAsString = functionAsString.slice(indexOfArguments, -1);
|
||||
}
|
||||
|
||||
functionAsString = functionAsString.replaceAll('={}', "");
|
||||
functionAsString = functionAsString.replaceAll('=[]', "");
|
||||
functionAsString = functionAsString.replace(REGEX_COMMENTS, "");
|
||||
|
@ -259,7 +265,7 @@
|
|||
let args = getParams(target);
|
||||
|
||||
return target.apply(
|
||||
target,
|
||||
container.get(scope),
|
||||
args.map(function(value) {
|
||||
let result = getValue(value, prefix, data);
|
||||
|
||||
|
|
|
@ -27,8 +27,8 @@ class AttributeEmail extends Attribute
|
|||
->addRule('format', [
|
||||
'type' => self::TYPE_STRING,
|
||||
'description' => 'String format.',
|
||||
'default' => APP_DATABASE_ATTRIBUTE_EMAIL,
|
||||
'example' => APP_DATABASE_ATTRIBUTE_EMAIL,
|
||||
'default' => 'email',
|
||||
'example' => 'email',
|
||||
'array' => false,
|
||||
'require' => true,
|
||||
])
|
||||
|
|
|
@ -35,8 +35,8 @@ class AttributeEnum extends Attribute
|
|||
->addRule('format', [
|
||||
'type' => self::TYPE_STRING,
|
||||
'description' => 'String format.',
|
||||
'default' => APP_DATABASE_ATTRIBUTE_ENUM,
|
||||
'example' => APP_DATABASE_ATTRIBUTE_ENUM,
|
||||
'default' => 'enum',
|
||||
'example' => 'enum',
|
||||
'array' => false,
|
||||
'require' => true,
|
||||
])
|
||||
|
|
|
@ -27,8 +27,8 @@ class AttributeIP extends Attribute
|
|||
->addRule('format', [
|
||||
'type' => self::TYPE_STRING,
|
||||
'description' => 'String format.',
|
||||
'default' => APP_DATABASE_ATTRIBUTE_IP,
|
||||
'example' => APP_DATABASE_ATTRIBUTE_IP,
|
||||
'default' => 'ip',
|
||||
'example' => 'ip',
|
||||
'array' => false,
|
||||
'require' => true,
|
||||
])
|
||||
|
|
|
@ -27,8 +27,8 @@ class AttributeURL extends Attribute
|
|||
->addRule('format', [
|
||||
'type' => self::TYPE_STRING,
|
||||
'description' => 'String format.',
|
||||
'default' => APP_DATABASE_ATTRIBUTE_URL,
|
||||
'example' => APP_DATABASE_ATTRIBUTE_URL,
|
||||
'default' => 'url',
|
||||
'example' => 'url',
|
||||
'array' => false,
|
||||
'required' => true,
|
||||
])
|
||||
|
|
|
@ -68,7 +68,7 @@ class Deployment extends Model
|
|||
'type' => self::TYPE_STRING,
|
||||
'description' => 'The deployment status. Possible values are "processing", "building", "pending", "ready", and "failed".',
|
||||
'default' => '',
|
||||
'example' => 'enabled',
|
||||
'example' => 'ready',
|
||||
])
|
||||
->addRule('buildStdout', [
|
||||
'type' => self::TYPE_STRING,
|
||||
|
|
|
@ -165,23 +165,23 @@ trait DatabasesBase
|
|||
'array' => true,
|
||||
]);
|
||||
|
||||
$this->assertEquals($title['headers']['status-code'], 201);
|
||||
$this->assertEquals($title['headers']['status-code'], 202);
|
||||
$this->assertEquals($title['body']['key'], 'title');
|
||||
$this->assertEquals($title['body']['type'], 'string');
|
||||
$this->assertEquals($title['body']['size'], 256);
|
||||
$this->assertEquals($title['body']['required'], true);
|
||||
|
||||
$this->assertEquals($releaseYear['headers']['status-code'], 201);
|
||||
$this->assertEquals($releaseYear['headers']['status-code'], 202);
|
||||
$this->assertEquals($releaseYear['body']['key'], 'releaseYear');
|
||||
$this->assertEquals($releaseYear['body']['type'], 'integer');
|
||||
$this->assertEquals($releaseYear['body']['required'], true);
|
||||
|
||||
$this->assertEquals($duration['headers']['status-code'], 201);
|
||||
$this->assertEquals($duration['headers']['status-code'], 202);
|
||||
$this->assertEquals($duration['body']['key'], 'duration');
|
||||
$this->assertEquals($duration['body']['type'], 'integer');
|
||||
$this->assertEquals($duration['body']['required'], false);
|
||||
|
||||
$this->assertEquals($actors['headers']['status-code'], 201);
|
||||
$this->assertEquals($actors['headers']['status-code'], 202);
|
||||
$this->assertEquals($actors['body']['key'], 'actors');
|
||||
$this->assertEquals($actors['body']['type'], 'string');
|
||||
$this->assertEquals($actors['body']['size'], 256);
|
||||
|
@ -318,7 +318,7 @@ trait DatabasesBase
|
|||
'default' => true,
|
||||
]);
|
||||
|
||||
$this->assertEquals(201, $string['headers']['status-code']);
|
||||
$this->assertEquals(202, $string['headers']['status-code']);
|
||||
$this->assertEquals('string', $string['body']['key']);
|
||||
$this->assertEquals('string', $string['body']['type']);
|
||||
$this->assertEquals(false, $string['body']['required']);
|
||||
|
@ -326,7 +326,7 @@ trait DatabasesBase
|
|||
$this->assertEquals(16, $string['body']['size']);
|
||||
$this->assertEquals('default', $string['body']['default']);
|
||||
|
||||
$this->assertEquals(201, $email['headers']['status-code']);
|
||||
$this->assertEquals(202, $email['headers']['status-code']);
|
||||
$this->assertEquals('email', $email['body']['key']);
|
||||
$this->assertEquals('string', $email['body']['type']);
|
||||
$this->assertEquals(false, $email['body']['required']);
|
||||
|
@ -334,7 +334,7 @@ trait DatabasesBase
|
|||
$this->assertEquals('email', $email['body']['format']);
|
||||
$this->assertEquals('default@example.com', $email['body']['default']);
|
||||
|
||||
$this->assertEquals(201, $enum['headers']['status-code']);
|
||||
$this->assertEquals(202, $enum['headers']['status-code']);
|
||||
$this->assertEquals('enum', $enum['body']['key']);
|
||||
$this->assertEquals('string', $enum['body']['type']);
|
||||
$this->assertEquals(false, $enum['body']['required']);
|
||||
|
@ -344,7 +344,7 @@ trait DatabasesBase
|
|||
$this->assertIsArray($enum['body']['elements']);
|
||||
$this->assertEquals(['yes', 'no', 'maybe'], $enum['body']['elements']);
|
||||
|
||||
$this->assertEquals(201, $ip['headers']['status-code']);
|
||||
$this->assertEquals(202, $ip['headers']['status-code']);
|
||||
$this->assertEquals('ip', $ip['body']['key']);
|
||||
$this->assertEquals('string', $ip['body']['type']);
|
||||
$this->assertEquals(false, $ip['body']['required']);
|
||||
|
@ -352,7 +352,7 @@ trait DatabasesBase
|
|||
$this->assertEquals('ip', $ip['body']['format']);
|
||||
$this->assertEquals('192.0.2.0', $ip['body']['default']);
|
||||
|
||||
$this->assertEquals(201, $url['headers']['status-code']);
|
||||
$this->assertEquals(202, $url['headers']['status-code']);
|
||||
$this->assertEquals('url', $url['body']['key']);
|
||||
$this->assertEquals('string', $url['body']['type']);
|
||||
$this->assertEquals(false, $url['body']['required']);
|
||||
|
@ -360,7 +360,7 @@ trait DatabasesBase
|
|||
$this->assertEquals('url', $url['body']['format']);
|
||||
$this->assertEquals('http://example.com', $url['body']['default']);
|
||||
|
||||
$this->assertEquals(201, $integer['headers']['status-code']);
|
||||
$this->assertEquals(202, $integer['headers']['status-code']);
|
||||
$this->assertEquals('integer', $integer['body']['key']);
|
||||
$this->assertEquals('integer', $integer['body']['type']);
|
||||
$this->assertEquals(false, $integer['body']['required']);
|
||||
|
@ -369,7 +369,7 @@ trait DatabasesBase
|
|||
$this->assertEquals(5, $integer['body']['max']);
|
||||
$this->assertEquals(3, $integer['body']['default']);
|
||||
|
||||
$this->assertEquals(201, $float['headers']['status-code']);
|
||||
$this->assertEquals(202, $float['headers']['status-code']);
|
||||
$this->assertEquals('float', $float['body']['key']);
|
||||
$this->assertEquals('double', $float['body']['type']);
|
||||
$this->assertEquals(false, $float['body']['required']);
|
||||
|
@ -378,7 +378,7 @@ trait DatabasesBase
|
|||
$this->assertEquals(5.5, $float['body']['max']);
|
||||
$this->assertEquals(3.5, $float['body']['default']);
|
||||
|
||||
$this->assertEquals(201, $boolean['headers']['status-code']);
|
||||
$this->assertEquals(202, $boolean['headers']['status-code']);
|
||||
$this->assertEquals('boolean', $boolean['body']['key']);
|
||||
$this->assertEquals('boolean', $boolean['body']['type']);
|
||||
$this->assertEquals(false, $boolean['body']['required']);
|
||||
|
@ -705,7 +705,7 @@ trait DatabasesBase
|
|||
'attributes' => ['title'],
|
||||
]);
|
||||
|
||||
$this->assertEquals(201, $titleIndex['headers']['status-code']);
|
||||
$this->assertEquals(202, $titleIndex['headers']['status-code']);
|
||||
$this->assertEquals('titleIndex', $titleIndex['body']['key']);
|
||||
$this->assertEquals('fulltext', $titleIndex['body']['type']);
|
||||
$this->assertCount(1, $titleIndex['body']['attributes']);
|
||||
|
@ -721,7 +721,7 @@ trait DatabasesBase
|
|||
'attributes' => ['releaseYear'],
|
||||
]);
|
||||
|
||||
$this->assertEquals(201, $releaseYearIndex['headers']['status-code']);
|
||||
$this->assertEquals(202, $releaseYearIndex['headers']['status-code']);
|
||||
$this->assertEquals('releaseYear', $releaseYearIndex['body']['key']);
|
||||
$this->assertEquals('key', $releaseYearIndex['body']['type']);
|
||||
$this->assertCount(1, $releaseYearIndex['body']['attributes']);
|
||||
|
@ -737,7 +737,7 @@ trait DatabasesBase
|
|||
'attributes' => ['releaseYear', '$createdAt', '$updatedAt'],
|
||||
]);
|
||||
|
||||
$this->assertEquals(201, $releaseWithDate['headers']['status-code']);
|
||||
$this->assertEquals(202, $releaseWithDate['headers']['status-code']);
|
||||
$this->assertEquals('releaseYearDated', $releaseWithDate['body']['key']);
|
||||
$this->assertEquals('key', $releaseWithDate['body']['type']);
|
||||
$this->assertCount(3, $releaseWithDate['body']['attributes']);
|
||||
|
@ -1689,15 +1689,15 @@ trait DatabasesBase
|
|||
'default' => 'NORTH'
|
||||
]);
|
||||
|
||||
$this->assertEquals(201, $email['headers']['status-code']);
|
||||
$this->assertEquals(201, $ip['headers']['status-code']);
|
||||
$this->assertEquals(201, $url['headers']['status-code']);
|
||||
$this->assertEquals(201, $range['headers']['status-code']);
|
||||
$this->assertEquals(201, $floatRange['headers']['status-code']);
|
||||
$this->assertEquals(201, $probability['headers']['status-code']);
|
||||
$this->assertEquals(201, $upperBound['headers']['status-code']);
|
||||
$this->assertEquals(201, $lowerBound['headers']['status-code']);
|
||||
$this->assertEquals(201, $enum['headers']['status-code']);
|
||||
$this->assertEquals(202, $email['headers']['status-code']);
|
||||
$this->assertEquals(202, $ip['headers']['status-code']);
|
||||
$this->assertEquals(202, $url['headers']['status-code']);
|
||||
$this->assertEquals(202, $range['headers']['status-code']);
|
||||
$this->assertEquals(202, $floatRange['headers']['status-code']);
|
||||
$this->assertEquals(202, $probability['headers']['status-code']);
|
||||
$this->assertEquals(202, $upperBound['headers']['status-code']);
|
||||
$this->assertEquals(202, $lowerBound['headers']['status-code']);
|
||||
$this->assertEquals(202, $enum['headers']['status-code']);
|
||||
$this->assertEquals(400, $invalidRange['headers']['status-code']);
|
||||
$this->assertEquals(400, $defaultArray['headers']['status-code']);
|
||||
$this->assertEquals(400, $defaultRequired['headers']['status-code']);
|
||||
|
@ -2144,7 +2144,7 @@ trait DatabasesBase
|
|||
'required' => true,
|
||||
]);
|
||||
|
||||
$this->assertEquals(201, $attribute['headers']['status-code'], 201);
|
||||
$this->assertEquals(202, $attribute['headers']['status-code'], 202);
|
||||
$this->assertEquals('attribute', $attribute['body']['key']);
|
||||
|
||||
// wait for db to add attribute
|
||||
|
@ -2160,7 +2160,7 @@ trait DatabasesBase
|
|||
'attributes' => [$attribute['body']['key']],
|
||||
]);
|
||||
|
||||
$this->assertEquals(201, $index['headers']['status-code']);
|
||||
$this->assertEquals(202, $index['headers']['status-code']);
|
||||
$this->assertEquals('key_attribute', $index['body']['key']);
|
||||
|
||||
// wait for db to add attribute
|
||||
|
@ -2292,7 +2292,7 @@ trait DatabasesBase
|
|||
'attributes' => ['title'],
|
||||
]);
|
||||
|
||||
$this->assertEquals($uniqueIndex['headers']['status-code'], 201);
|
||||
$this->assertEquals($uniqueIndex['headers']['status-code'], 202);
|
||||
|
||||
sleep(2);
|
||||
|
||||
|
@ -2464,7 +2464,7 @@ trait DatabasesBase
|
|||
'required' => true,
|
||||
]);
|
||||
|
||||
$this->assertEquals($title['headers']['status-code'], 201);
|
||||
$this->assertEquals($title['headers']['status-code'], 202);
|
||||
|
||||
// wait for database worker to create attributes
|
||||
sleep(2);
|
||||
|
|
|
@ -63,7 +63,7 @@ class DatabasesCustomClientTest extends Scope
|
|||
'size' => 255,
|
||||
'required' => true,
|
||||
]);
|
||||
$this->assertEquals(201, $response['headers']['status-code']);
|
||||
$this->assertEquals(202, $response['headers']['status-code']);
|
||||
|
||||
// Wait for database worker to finish creating attributes
|
||||
sleep(2);
|
||||
|
|
|
@ -618,8 +618,8 @@ class DatabasesCustomServerTest extends Scope
|
|||
'required' => true,
|
||||
]);
|
||||
|
||||
$this->assertEquals(201, $attribute1['headers']['status-code']);
|
||||
$this->assertEquals(201, $attribute2['headers']['status-code']);
|
||||
$this->assertEquals(202, $attribute1['headers']['status-code']);
|
||||
$this->assertEquals(202, $attribute2['headers']['status-code']);
|
||||
$this->assertEquals('attribute1', $attribute1['body']['key']);
|
||||
$this->assertEquals('attribute2', $attribute2['body']['key']);
|
||||
|
||||
|
@ -646,8 +646,8 @@ class DatabasesCustomServerTest extends Scope
|
|||
'attributes' => ['attribute2'],
|
||||
]);
|
||||
|
||||
$this->assertEquals(201, $index1['headers']['status-code']);
|
||||
$this->assertEquals(201, $index2['headers']['status-code']);
|
||||
$this->assertEquals(202, $index1['headers']['status-code']);
|
||||
$this->assertEquals(202, $index2['headers']['status-code']);
|
||||
$this->assertEquals('index1', $index1['body']['key']);
|
||||
$this->assertEquals('index2', $index2['body']['key']);
|
||||
|
||||
|
@ -742,8 +742,8 @@ class DatabasesCustomServerTest extends Scope
|
|||
'required' => true,
|
||||
]);
|
||||
|
||||
$this->assertEquals(201, $attribute1['headers']['status-code']);
|
||||
$this->assertEquals(201, $attribute2['headers']['status-code']);
|
||||
$this->assertEquals(202, $attribute1['headers']['status-code']);
|
||||
$this->assertEquals(202, $attribute2['headers']['status-code']);
|
||||
$this->assertEquals('attribute1', $attribute1['body']['key']);
|
||||
$this->assertEquals('attribute2', $attribute2['body']['key']);
|
||||
|
||||
|
@ -770,8 +770,8 @@ class DatabasesCustomServerTest extends Scope
|
|||
'attributes' => ['attribute2'],
|
||||
]);
|
||||
|
||||
$this->assertEquals(201, $index1['headers']['status-code']);
|
||||
$this->assertEquals(201, $index2['headers']['status-code']);
|
||||
$this->assertEquals(202, $index1['headers']['status-code']);
|
||||
$this->assertEquals(202, $index2['headers']['status-code']);
|
||||
$this->assertEquals('index1', $index1['body']['key']);
|
||||
$this->assertEquals('index2', $index2['body']['key']);
|
||||
|
||||
|
@ -980,7 +980,7 @@ class DatabasesCustomServerTest extends Scope
|
|||
'required' => true,
|
||||
]);
|
||||
|
||||
$this->assertEquals($attribute['headers']['status-code'], 201);
|
||||
$this->assertEquals($attribute['headers']['status-code'], 202);
|
||||
}
|
||||
|
||||
sleep(5);
|
||||
|
@ -1043,7 +1043,7 @@ class DatabasesCustomServerTest extends Scope
|
|||
'required' => true,
|
||||
]);
|
||||
|
||||
$this->assertEquals($attribute['headers']['status-code'], 201);
|
||||
$this->assertEquals($attribute['headers']['status-code'], 202);
|
||||
}
|
||||
|
||||
sleep(20);
|
||||
|
@ -1080,7 +1080,7 @@ class DatabasesCustomServerTest extends Scope
|
|||
'attributes' => ["attribute{$i}"],
|
||||
]);
|
||||
|
||||
$this->assertEquals(201, $index['headers']['status-code']);
|
||||
$this->assertEquals(202, $index['headers']['status-code']);
|
||||
$this->assertEquals("key_attribute{$i}", $index['body']['key']);
|
||||
}
|
||||
|
||||
|
|
|
@ -77,7 +77,7 @@ class DatabasesPermissionsMemberTest extends Scope
|
|||
'size' => 256,
|
||||
'required' => true,
|
||||
]);
|
||||
$this->assertEquals(201, $response['headers']['status-code']);
|
||||
$this->assertEquals(202, $response['headers']['status-code']);
|
||||
|
||||
$private = $this->client->call(Client::METHOD_POST, '/databases/' . $databaseId . '/collections', $this->getServerHeader(), [
|
||||
'collectionId' => 'unique()',
|
||||
|
@ -95,7 +95,7 @@ class DatabasesPermissionsMemberTest extends Scope
|
|||
'size' => 256,
|
||||
'required' => true,
|
||||
]);
|
||||
$this->assertEquals(201, $response['headers']['status-code']);
|
||||
$this->assertEquals(202, $response['headers']['status-code']);
|
||||
|
||||
sleep(2);
|
||||
|
||||
|
|
|
@ -89,7 +89,7 @@ class FunctionsCustomClientTest extends Scope
|
|||
|
||||
$deploymentId = $deployment['body']['$id'] ?? '';
|
||||
|
||||
$this->assertEquals(201, $deployment['headers']['status-code']);
|
||||
$this->assertEquals(202, $deployment['headers']['status-code']);
|
||||
|
||||
// Wait for deployment to be built.
|
||||
sleep(10);
|
||||
|
@ -118,7 +118,7 @@ class FunctionsCustomClientTest extends Scope
|
|||
'async' => true,
|
||||
]);
|
||||
|
||||
$this->assertEquals(201, $execution['headers']['status-code']);
|
||||
$this->assertEquals(202, $execution['headers']['status-code']);
|
||||
|
||||
// Cleanup : Delete function
|
||||
$response = $this->client->call(Client::METHOD_DELETE, '/functions/' . $function['body']['$id'], [
|
||||
|
@ -179,7 +179,7 @@ class FunctionsCustomClientTest extends Scope
|
|||
// Wait for deployment to be built.
|
||||
sleep(5);
|
||||
|
||||
$this->assertEquals(201, $deployment['headers']['status-code']);
|
||||
$this->assertEquals(202, $deployment['headers']['status-code']);
|
||||
|
||||
$function = $this->client->call(Client::METHOD_PATCH, '/functions/' . $functionId . '/deployments/' . $deploymentId, [
|
||||
'content-type' => 'application/json',
|
||||
|
@ -196,7 +196,7 @@ class FunctionsCustomClientTest extends Scope
|
|||
'data' => 'foobar',
|
||||
]);
|
||||
|
||||
$this->assertEquals(201, $execution['headers']['status-code']);
|
||||
$this->assertEquals(202, $execution['headers']['status-code']);
|
||||
|
||||
$executionId = $execution['body']['$id'] ?? '';
|
||||
|
||||
|
@ -271,7 +271,7 @@ class FunctionsCustomClientTest extends Scope
|
|||
'data' => 'foobar',
|
||||
]);
|
||||
|
||||
$this->assertEquals(201, $execution['headers']['status-code']);
|
||||
$this->assertEquals(202, $execution['headers']['status-code']);
|
||||
|
||||
sleep(10);
|
||||
|
||||
|
@ -361,7 +361,7 @@ class FunctionsCustomClientTest extends Scope
|
|||
|
||||
$deploymentId = $deployment['body']['$id'] ?? '';
|
||||
|
||||
$this->assertEquals(201, $deployment['headers']['status-code']);
|
||||
$this->assertEquals(202, $deployment['headers']['status-code']);
|
||||
|
||||
// Wait for deployment to be built.
|
||||
sleep(10);
|
||||
|
|
|
@ -292,7 +292,7 @@ class FunctionsCustomServerTest extends Scope
|
|||
|
||||
$deploymentId = $deployment['body']['$id'] ?? '';
|
||||
|
||||
$this->assertEquals(201, $deployment['headers']['status-code']);
|
||||
$this->assertEquals(202, $deployment['headers']['status-code']);
|
||||
$this->assertNotEmpty($deployment['body']['$id']);
|
||||
$this->assertIsInt($deployment['body']['$createdAt']);
|
||||
$this->assertEquals('index.php', $deployment['body']['entrypoint']);
|
||||
|
@ -341,7 +341,7 @@ class FunctionsCustomServerTest extends Scope
|
|||
}
|
||||
@fclose($handle);
|
||||
|
||||
$this->assertEquals(201, $largeTag['headers']['status-code']);
|
||||
$this->assertEquals(202, $largeTag['headers']['status-code']);
|
||||
$this->assertNotEmpty($largeTag['body']['$id']);
|
||||
$this->assertIsInt($largeTag['body']['$createdAt']);
|
||||
$this->assertEquals('index.php', $largeTag['body']['entrypoint']);
|
||||
|
@ -484,7 +484,7 @@ class FunctionsCustomServerTest extends Scope
|
|||
|
||||
$executionId = $execution['body']['$id'] ?? '';
|
||||
|
||||
$this->assertEquals(201, $execution['headers']['status-code']);
|
||||
$this->assertEquals(202, $execution['headers']['status-code']);
|
||||
$this->assertNotEmpty($execution['body']['$id']);
|
||||
$this->assertNotEmpty($execution['body']['functionId']);
|
||||
$this->assertIsInt($execution['body']['$createdAt']);
|
||||
|
@ -733,7 +733,7 @@ class FunctionsCustomServerTest extends Scope
|
|||
'activate' => true,
|
||||
]);
|
||||
|
||||
$this->assertEquals(201, $deployment['headers']['status-code']);
|
||||
$this->assertEquals(202, $deployment['headers']['status-code']);
|
||||
|
||||
// Allow build step to run
|
||||
sleep(20);
|
||||
|
@ -747,7 +747,7 @@ class FunctionsCustomServerTest extends Scope
|
|||
|
||||
$executionId = $execution['body']['$id'] ?? '';
|
||||
|
||||
$this->assertEquals(201, $execution['headers']['status-code']);
|
||||
$this->assertEquals(202, $execution['headers']['status-code']);
|
||||
|
||||
sleep(10);
|
||||
|
||||
|
@ -818,7 +818,7 @@ class FunctionsCustomServerTest extends Scope
|
|||
]);
|
||||
|
||||
$deploymentId = $deployment['body']['$id'] ?? '';
|
||||
$this->assertEquals(201, $deployment['headers']['status-code']);
|
||||
$this->assertEquals(202, $deployment['headers']['status-code']);
|
||||
|
||||
// Allow build step to run
|
||||
sleep(10);
|
||||
|
@ -839,7 +839,7 @@ class FunctionsCustomServerTest extends Scope
|
|||
|
||||
$executionId = $execution['body']['$id'] ?? '';
|
||||
|
||||
$this->assertEquals(201, $execution['headers']['status-code']);
|
||||
$this->assertEquals(202, $execution['headers']['status-code']);
|
||||
|
||||
$executionId = $execution['body']['$id'] ?? '';
|
||||
|
||||
|
@ -930,7 +930,7 @@ class FunctionsCustomServerTest extends Scope
|
|||
]);
|
||||
|
||||
$deploymentId = $deployment['body']['$id'] ?? '';
|
||||
$this->assertEquals(201, $deployment['headers']['status-code']);
|
||||
$this->assertEquals(202, $deployment['headers']['status-code']);
|
||||
|
||||
// Allow build step to run
|
||||
sleep(10);
|
||||
|
@ -944,7 +944,7 @@ class FunctionsCustomServerTest extends Scope
|
|||
|
||||
$executionId = $execution['body']['$id'] ?? '';
|
||||
|
||||
$this->assertEquals(201, $execution['headers']['status-code']);
|
||||
$this->assertEquals(202, $execution['headers']['status-code']);
|
||||
|
||||
$executionId = $execution['body']['$id'] ?? '';
|
||||
|
||||
|
@ -1035,7 +1035,7 @@ class FunctionsCustomServerTest extends Scope
|
|||
]);
|
||||
|
||||
$deploymentId = $deployment['body']['$id'] ?? '';
|
||||
$this->assertEquals(201, $deployment['headers']['status-code']);
|
||||
$this->assertEquals(202, $deployment['headers']['status-code']);
|
||||
|
||||
// Allow build step to run
|
||||
sleep(30);
|
||||
|
@ -1049,7 +1049,7 @@ class FunctionsCustomServerTest extends Scope
|
|||
|
||||
$executionId = $execution['body']['$id'] ?? '';
|
||||
|
||||
$this->assertEquals(201, $execution['headers']['status-code']);
|
||||
$this->assertEquals(202, $execution['headers']['status-code']);
|
||||
|
||||
$executionId = $execution['body']['$id'] ?? '';
|
||||
|
||||
|
@ -1140,7 +1140,7 @@ class FunctionsCustomServerTest extends Scope
|
|||
]);
|
||||
|
||||
$deploymentId = $deployment['body']['$id'] ?? '';
|
||||
$this->assertEquals(201, $deployment['headers']['status-code']);
|
||||
$this->assertEquals(202, $deployment['headers']['status-code']);
|
||||
|
||||
// Allow build step to run
|
||||
sleep(40);
|
||||
|
@ -1154,7 +1154,7 @@ class FunctionsCustomServerTest extends Scope
|
|||
|
||||
$executionId = $execution['body']['$id'] ?? '';
|
||||
|
||||
$this->assertEquals(201, $execution['headers']['status-code']);
|
||||
$this->assertEquals(202, $execution['headers']['status-code']);
|
||||
|
||||
$executionId = $execution['body']['$id'] ?? '';
|
||||
|
||||
|
@ -1245,7 +1245,7 @@ class FunctionsCustomServerTest extends Scope
|
|||
]);
|
||||
|
||||
$deploymentId = $deployment['body']['$id'] ?? '';
|
||||
$this->assertEquals(201, $deployment['headers']['status-code']);
|
||||
$this->assertEquals(202, $deployment['headers']['status-code']);
|
||||
|
||||
// Allow build step to run
|
||||
sleep(30);
|
||||
|
@ -1259,7 +1259,7 @@ class FunctionsCustomServerTest extends Scope
|
|||
|
||||
$executionId = $execution['body']['$id'] ?? '';
|
||||
|
||||
$this->assertEquals(201, $execution['headers']['status-code']);
|
||||
$this->assertEquals(202, $execution['headers']['status-code']);
|
||||
|
||||
$executionId = $execution['body']['$id'] ?? '';
|
||||
|
||||
|
@ -1350,7 +1350,7 @@ class FunctionsCustomServerTest extends Scope
|
|||
// ]);
|
||||
|
||||
// $deploymentId = $deployment['body']['$id'] ?? '';
|
||||
// $this->assertEquals(201, $deployment['headers']['status-code']);
|
||||
// $this->assertEquals(202, $deployment['headers']['status-code']);
|
||||
|
||||
// // Allow (slow) build step to run
|
||||
// sleep(300);
|
||||
|
@ -1364,7 +1364,7 @@ class FunctionsCustomServerTest extends Scope
|
|||
|
||||
// $executionId = $execution['body']['$id'] ?? '';
|
||||
|
||||
// $this->assertEquals(201, $execution['headers']['status-code']);
|
||||
// $this->assertEquals(202, $execution['headers']['status-code']);
|
||||
|
||||
// $executionId = $execution['body']['$id'] ?? '';
|
||||
|
||||
|
|
|
@ -177,7 +177,7 @@ class RealtimeConsoleClientTest extends Scope
|
|||
|
||||
$attributeKey = $name['body']['key'];
|
||||
|
||||
$this->assertEquals($name['headers']['status-code'], 201);
|
||||
$this->assertEquals($name['headers']['status-code'], 202);
|
||||
$this->assertEquals($name['body']['key'], 'name');
|
||||
$this->assertEquals($name['body']['type'], 'string');
|
||||
$this->assertEquals($name['body']['size'], 256);
|
||||
|
@ -266,7 +266,7 @@ class RealtimeConsoleClientTest extends Scope
|
|||
],
|
||||
]);
|
||||
|
||||
$this->assertEquals($index['headers']['status-code'], 201);
|
||||
$this->assertEquals($index['headers']['status-code'], 202);
|
||||
$indexKey = $index['body']['key'];
|
||||
|
||||
$response = json_decode($client->receive(), true);
|
||||
|
|
|
@ -661,7 +661,7 @@ class RealtimeCustomClientTest extends Scope
|
|||
'required' => true,
|
||||
]);
|
||||
|
||||
$this->assertEquals($name['headers']['status-code'], 201);
|
||||
$this->assertEquals($name['headers']['status-code'], 202);
|
||||
$this->assertEquals($name['body']['key'], 'name');
|
||||
$this->assertEquals($name['body']['type'], 'string');
|
||||
$this->assertEquals($name['body']['size'], 256);
|
||||
|
@ -871,7 +871,7 @@ class RealtimeCustomClientTest extends Scope
|
|||
'required' => true,
|
||||
]);
|
||||
|
||||
$this->assertEquals($name['headers']['status-code'], 201);
|
||||
$this->assertEquals($name['headers']['status-code'], 202);
|
||||
$this->assertEquals($name['body']['key'], 'name');
|
||||
$this->assertEquals($name['body']['type'], 'string');
|
||||
$this->assertEquals($name['body']['size'], 256);
|
||||
|
@ -1222,7 +1222,7 @@ class RealtimeCustomClientTest extends Scope
|
|||
|
||||
$deploymentId = $deployment['body']['$id'] ?? '';
|
||||
|
||||
$this->assertEquals($deployment['headers']['status-code'], 201);
|
||||
$this->assertEquals($deployment['headers']['status-code'], 202);
|
||||
$this->assertNotEmpty($deployment['body']['$id']);
|
||||
|
||||
// Wait for deployment to be built.
|
||||
|
@ -1242,7 +1242,7 @@ class RealtimeCustomClientTest extends Scope
|
|||
'x-appwrite-project' => $this->getProject()['$id']
|
||||
], $this->getHeaders()), []);
|
||||
|
||||
$this->assertEquals($execution['headers']['status-code'], 201);
|
||||
$this->assertEquals($execution['headers']['status-code'], 202);
|
||||
$this->assertNotEmpty($execution['body']['$id']);
|
||||
|
||||
$response = json_decode($client->receive(), true);
|
||||
|
|
|
@ -115,11 +115,11 @@ trait WebhooksBase
|
|||
|
||||
$attributeId = $extra['body']['key'];
|
||||
|
||||
$this->assertEquals($firstName['headers']['status-code'], 201);
|
||||
$this->assertEquals($firstName['headers']['status-code'], 202);
|
||||
$this->assertEquals($firstName['body']['key'], 'firstName');
|
||||
$this->assertEquals($lastName['headers']['status-code'], 201);
|
||||
$this->assertEquals($lastName['headers']['status-code'], 202);
|
||||
$this->assertEquals($lastName['body']['key'], 'lastName');
|
||||
$this->assertEquals($extra['headers']['status-code'], 201);
|
||||
$this->assertEquals($extra['headers']['status-code'], 202);
|
||||
$this->assertEquals($extra['body']['key'], 'extra');
|
||||
|
||||
// wait for database worker to kick in
|
||||
|
|
|
@ -82,7 +82,7 @@ class WebhooksCustomServerTest extends Scope
|
|||
]);
|
||||
|
||||
$indexKey = $index['body']['key'];
|
||||
$this->assertEquals($index['headers']['status-code'], 201);
|
||||
$this->assertEquals($index['headers']['status-code'], 202);
|
||||
$this->assertEquals($index['body']['key'], 'fullname');
|
||||
|
||||
// wait for database worker to create index
|
||||
|
@ -505,7 +505,7 @@ class WebhooksCustomServerTest extends Scope
|
|||
$id = $data['functionId'] ?? '';
|
||||
$deploymentId = $deployment['body']['$id'] ?? '';
|
||||
|
||||
$this->assertEquals($deployment['headers']['status-code'], 201);
|
||||
$this->assertEquals($deployment['headers']['status-code'], 202);
|
||||
$this->assertNotEmpty($deployment['body']['$id']);
|
||||
|
||||
$webhook = $this->getLastRequest();
|
||||
|
@ -595,7 +595,7 @@ class WebhooksCustomServerTest extends Scope
|
|||
|
||||
$executionId = $execution['body']['$id'] ?? '';
|
||||
|
||||
$this->assertEquals($execution['headers']['status-code'], 201);
|
||||
$this->assertEquals($execution['headers']['status-code'], 202);
|
||||
$this->assertNotEmpty($execution['body']['$id']);
|
||||
|
||||
$webhook = $this->getLastRequest();
|
||||
|
|
Loading…
Reference in a new issue