mirror of
https://github.com/appwrite/appwrite
synced 2026-05-23 00:49:02 +00:00
Merge remote-tracking branch 'origin/1.5.x' into fix-rescheduling
This commit is contained in:
commit
33c5293811
45 changed files with 122 additions and 33 deletions
1
app/config/specs/open-api3-1.5.x-client.json
Normal file
1
app/config/specs/open-api3-1.5.x-client.json
Normal file
File diff suppressed because one or more lines are too long
1
app/config/specs/open-api3-1.5.x-console.json
Normal file
1
app/config/specs/open-api3-1.5.x-console.json
Normal file
File diff suppressed because one or more lines are too long
1
app/config/specs/open-api3-1.5.x-server.json
Normal file
1
app/config/specs/open-api3-1.5.x-server.json
Normal file
File diff suppressed because one or more lines are too long
1
app/config/specs/swagger2-1.5.x-client.json
Normal file
1
app/config/specs/swagger2-1.5.x-client.json
Normal file
File diff suppressed because one or more lines are too long
1
app/config/specs/swagger2-1.5.x-console.json
Normal file
1
app/config/specs/swagger2-1.5.x-console.json
Normal file
File diff suppressed because one or more lines are too long
1
app/config/specs/swagger2-1.5.x-server.json
Normal file
1
app/config/specs/swagger2-1.5.x-server.json
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
Subproject commit c72ba12e479b0d3d9b3f4e48e01625c12a38fd7f
|
||||
Subproject commit f196bcfb485adfb36324aabf32a3449471319bbd
|
||||
|
|
@ -2700,7 +2700,7 @@ App::delete('/v1/account/sessions/:sessionId')
|
|||
});
|
||||
|
||||
App::patch('/v1/account/sessions/:sessionId')
|
||||
->desc('Update (or renew) a session')
|
||||
->desc('Update (or renew) session')
|
||||
->groups(['api', 'account'])
|
||||
->label('scope', 'account')
|
||||
->label('event', 'users.[userId].sessions.[sessionId].update')
|
||||
|
|
@ -2994,7 +2994,7 @@ App::post('/v1/account/recovery')
|
|||
|
||||
$queueForMails
|
||||
->setRecipient($profile->getAttribute('email', ''))
|
||||
->setName($profile->getAttribute('name'))
|
||||
->setName($profile->getAttribute('name', ''))
|
||||
->setBody($body)
|
||||
->setVariables($emailVariables)
|
||||
->setSubject($subject)
|
||||
|
|
@ -4024,7 +4024,7 @@ App::delete('/v1/account')
|
|||
});
|
||||
|
||||
App::post('/v1/account/targets/push')
|
||||
->desc('Create a push target')
|
||||
->desc('Create push target')
|
||||
->groups(['api', 'account'])
|
||||
->label('scope', 'targets.write')
|
||||
->label('audits.event', 'target.create')
|
||||
|
|
@ -4097,7 +4097,7 @@ App::post('/v1/account/targets/push')
|
|||
});
|
||||
|
||||
App::put('/v1/account/targets/:targetId/push')
|
||||
->desc('Update a push target')
|
||||
->desc('Update push target')
|
||||
->groups(['api', 'account'])
|
||||
->label('scope', 'targets.write')
|
||||
->label('audits.event', 'target.update')
|
||||
|
|
@ -4152,7 +4152,7 @@ App::put('/v1/account/targets/:targetId/push')
|
|||
});
|
||||
|
||||
App::delete('/v1/account/targets/:targetId/push')
|
||||
->desc('Delete a push target')
|
||||
->desc('Delete push target')
|
||||
->groups(['api', 'account'])
|
||||
->label('scope', 'targets.write')
|
||||
->label('audits.event', 'target.delete')
|
||||
|
|
|
|||
|
|
@ -3090,6 +3090,33 @@ App::get('/v1/databases/:databaseId/collections/:collectionId/documents')
|
|||
$processDocument($collection, $document);
|
||||
}
|
||||
|
||||
$select = \array_reduce($queries, function ($result, $query) {
|
||||
return $result || ($query->getMethod() === Query::TYPE_SELECT);
|
||||
}, false);
|
||||
|
||||
// Check if the SELECT query includes $databaseId and $collectionId
|
||||
$hasDatabaseId = false;
|
||||
$hasCollectionId = false;
|
||||
if ($select) {
|
||||
$hasDatabaseId = \array_reduce($queries, function ($result, $query) {
|
||||
return $result || ($query->getMethod() === Query::TYPE_SELECT && \in_array('$databaseId', $query->getValues()));
|
||||
}, false);
|
||||
$hasCollectionId = \array_reduce($queries, function ($result, $query) {
|
||||
return $result || ($query->getMethod() === Query::TYPE_SELECT && \in_array('$collectionId', $query->getValues()));
|
||||
}, false);
|
||||
}
|
||||
|
||||
if ($select) {
|
||||
foreach ($documents as $document) {
|
||||
if (!$hasDatabaseId) {
|
||||
$document->removeAttribute('$databaseId');
|
||||
}
|
||||
if (!$hasCollectionId) {
|
||||
$document->removeAttribute('$collectionId');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$response->dynamic(new Document([
|
||||
'total' => $total,
|
||||
'documents' => $documents,
|
||||
|
|
@ -3635,7 +3662,7 @@ App::delete('/v1/databases/:databaseId/collections/:collectionId/documents/:docu
|
|||
});
|
||||
|
||||
App::get('/v1/databases/usage')
|
||||
->desc('Get usage stats for the database')
|
||||
->desc('Get databases usage stats')
|
||||
->groups(['api', 'database', 'usage'])
|
||||
->label('scope', 'collections.read')
|
||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||
|
|
@ -3713,7 +3740,7 @@ App::get('/v1/databases/usage')
|
|||
});
|
||||
|
||||
App::get('/v1/databases/:databaseId/usage')
|
||||
->desc('Get usage stats for the database')
|
||||
->desc('Get database usage stats')
|
||||
->groups(['api', 'database', 'usage'])
|
||||
->label('scope', 'collections.read')
|
||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||
|
|
@ -3797,7 +3824,7 @@ App::get('/v1/databases/:databaseId/usage')
|
|||
|
||||
App::get('/v1/databases/:databaseId/collections/:collectionId/usage')
|
||||
->alias('/v1/database/:collectionId/usage', ['databaseId' => 'default'])
|
||||
->desc('Get usage stats for a collection')
|
||||
->desc('Get collection usage stats')
|
||||
->groups(['api', 'database', 'usage'])
|
||||
->label('scope', 'collections.read')
|
||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@ App::post('/v1/messaging/providers/sendgrid')
|
|||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN, APP_AUTH_TYPE_KEY])
|
||||
->label('sdk.namespace', 'messaging')
|
||||
->label('sdk.method', 'createSendgridProvider')
|
||||
->label('sdk.description', '/docs/references/messaging/create-sengrid-provider.md')
|
||||
->label('sdk.description', '/docs/references/messaging/create-sendgrid-provider.md')
|
||||
->label('sdk.response.code', Response::STATUS_CODE_CREATED)
|
||||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||
->label('sdk.response.model', Response::MODEL_PROVIDER)
|
||||
|
|
@ -1924,7 +1924,7 @@ App::delete('/v1/messaging/providers/:providerId')
|
|||
});
|
||||
|
||||
App::post('/v1/messaging/topics')
|
||||
->desc('Create a topic')
|
||||
->desc('Create topic')
|
||||
->groups(['api', 'messaging'])
|
||||
->label('audits.event', 'topic.create')
|
||||
->label('audits.resource', 'topic/{response.$id}')
|
||||
|
|
@ -2107,7 +2107,7 @@ App::get('/v1/messaging/topics/:topicId/logs')
|
|||
});
|
||||
|
||||
App::get('/v1/messaging/topics/:topicId')
|
||||
->desc('Get a topic')
|
||||
->desc('Get topic')
|
||||
->groups(['api', 'messaging'])
|
||||
->label('scope', 'topics.read')
|
||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN, APP_AUTH_TYPE_KEY])
|
||||
|
|
@ -2134,7 +2134,7 @@ App::get('/v1/messaging/topics/:topicId')
|
|||
});
|
||||
|
||||
App::patch('/v1/messaging/topics/:topicId')
|
||||
->desc('Update a topic')
|
||||
->desc('Update topic')
|
||||
->groups(['api', 'messaging'])
|
||||
->label('audits.event', 'topic.update')
|
||||
->label('audits.resource', 'topic/{response.$id}')
|
||||
|
|
@ -2178,7 +2178,7 @@ App::patch('/v1/messaging/topics/:topicId')
|
|||
});
|
||||
|
||||
App::delete('/v1/messaging/topics/:topicId')
|
||||
->desc('Delete a topic')
|
||||
->desc('Delete topic')
|
||||
->groups(['api', 'messaging'])
|
||||
->label('audits.event', 'topic.delete')
|
||||
->label('audits.resource', 'topic/{request.$topicId}')
|
||||
|
|
@ -2218,7 +2218,7 @@ App::delete('/v1/messaging/topics/:topicId')
|
|||
});
|
||||
|
||||
App::post('/v1/messaging/topics/:topicId/subscribers')
|
||||
->desc('Create a subscriber')
|
||||
->desc('Create subscriber')
|
||||
->groups(['api', 'messaging'])
|
||||
->label('audits.event', 'subscriber.create')
|
||||
->label('audits.resource', 'subscriber/{response.$id}')
|
||||
|
|
@ -2477,7 +2477,7 @@ App::get('/v1/messaging/subscribers/:subscriberId/logs')
|
|||
});
|
||||
|
||||
App::get('/v1/messaging/topics/:topicId/subscribers/:subscriberId')
|
||||
->desc('Get a subscriber')
|
||||
->desc('Get subscriber')
|
||||
->groups(['api', 'messaging'])
|
||||
->label('scope', 'subscribers.read')
|
||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN, APP_AUTH_TYPE_KEY])
|
||||
|
|
@ -2516,7 +2516,7 @@ App::get('/v1/messaging/topics/:topicId/subscribers/:subscriberId')
|
|||
});
|
||||
|
||||
App::delete('/v1/messaging/topics/:topicId/subscribers/:subscriberId')
|
||||
->desc('Delete a subscriber')
|
||||
->desc('Delete subscriber')
|
||||
->groups(['api', 'messaging'])
|
||||
->label('audits.event', 'subscriber.delete')
|
||||
->label('audits.resource', 'subscriber/{request.$subscriberId}')
|
||||
|
|
@ -2575,7 +2575,7 @@ App::delete('/v1/messaging/topics/:topicId/subscribers/:subscriberId')
|
|||
});
|
||||
|
||||
App::post('/v1/messaging/messages/email')
|
||||
->desc('Create an email')
|
||||
->desc('Create email')
|
||||
->groups(['api', 'messaging'])
|
||||
->label('audits.event', 'message.create')
|
||||
->label('audits.resource', 'message/{response.$id}')
|
||||
|
|
@ -2719,7 +2719,7 @@ App::post('/v1/messaging/messages/email')
|
|||
});
|
||||
|
||||
App::post('/v1/messaging/messages/sms')
|
||||
->desc('Create an SMS')
|
||||
->desc('Create SMS')
|
||||
->groups(['api', 'messaging'])
|
||||
->label('audits.event', 'message.create')
|
||||
->label('audits.resource', 'message/{response.$id}')
|
||||
|
|
@ -2827,7 +2827,7 @@ App::post('/v1/messaging/messages/sms')
|
|||
});
|
||||
|
||||
App::post('/v1/messaging/messages/push')
|
||||
->desc('Create a push notification')
|
||||
->desc('Create push notification')
|
||||
->groups(['api', 'messaging'])
|
||||
->label('audits.event', 'message.create')
|
||||
->label('audits.resource', 'message/{response.$id}')
|
||||
|
|
@ -3190,7 +3190,7 @@ App::get('/v1/messaging/messages/:messageId/targets')
|
|||
});
|
||||
|
||||
App::get('/v1/messaging/messages/:messageId')
|
||||
->desc('Get a message')
|
||||
->desc('Get message')
|
||||
->groups(['api', 'messaging'])
|
||||
->label('scope', 'messages.read')
|
||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN, APP_AUTH_TYPE_KEY])
|
||||
|
|
@ -3214,7 +3214,7 @@ App::get('/v1/messaging/messages/:messageId')
|
|||
});
|
||||
|
||||
App::patch('/v1/messaging/messages/email/:messageId')
|
||||
->desc('Update an email')
|
||||
->desc('Update email')
|
||||
->groups(['api', 'messaging'])
|
||||
->label('audits.event', 'message.update')
|
||||
->label('audits.resource', 'message/{response.$id}')
|
||||
|
|
@ -3377,7 +3377,7 @@ App::patch('/v1/messaging/messages/email/:messageId')
|
|||
});
|
||||
|
||||
App::patch('/v1/messaging/messages/sms/:messageId')
|
||||
->desc('Update an SMS')
|
||||
->desc('Update SMS')
|
||||
->groups(['api', 'messaging'])
|
||||
->label('audits.event', 'message.update')
|
||||
->label('audits.resource', 'message/{response.$id}')
|
||||
|
|
@ -3520,7 +3520,7 @@ App::patch('/v1/messaging/messages/sms/:messageId')
|
|||
});
|
||||
|
||||
App::patch('/v1/messaging/messages/push/:messageId')
|
||||
->desc('Update a push notification')
|
||||
->desc('Update push notification')
|
||||
->groups(['api', 'messaging'])
|
||||
->label('audits.event', 'message.update')
|
||||
->label('audits.resource', 'message/{response.$id}')
|
||||
|
|
@ -3736,7 +3736,7 @@ App::patch('/v1/messaging/messages/push/:messageId')
|
|||
});
|
||||
|
||||
App::delete('/v1/messaging/messages/:messageId')
|
||||
->desc('Delete a message')
|
||||
->desc('Delete message')
|
||||
->groups(['api', 'messaging'])
|
||||
->label('audits.event', 'message.delete')
|
||||
->label('audits.resource', 'message/{request.route.messageId}')
|
||||
|
|
|
|||
|
|
@ -1038,7 +1038,7 @@ App::delete('/v1/migrations/:migrationId')
|
|||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||
->label('sdk.namespace', 'migrations')
|
||||
->label('sdk.method', 'delete')
|
||||
->label('sdk.description', '/docs/references/functions/delete-migration.md')
|
||||
->label('sdk.description', '/docs/references/migrations/delete-migration.md')
|
||||
->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT)
|
||||
->label('sdk.response.model', Response::MODEL_NONE)
|
||||
->param('migrationId', '', new UID(), 'Migration ID.')
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ use Utopia\Validator\Text;
|
|||
use Utopia\Validator\WhiteList;
|
||||
|
||||
App::get('/v1/project/usage')
|
||||
->desc('Get usage stats for a project')
|
||||
->desc('Get project usage stats')
|
||||
->groups(['api', 'usage'])
|
||||
->label('scope', 'projects.read')
|
||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||
|
|
|
|||
|
|
@ -1514,7 +1514,7 @@ App::delete('/v1/storage/buckets/:bucketId/files/:fileId')
|
|||
});
|
||||
|
||||
App::get('/v1/storage/usage')
|
||||
->desc('Get usage stats for storage')
|
||||
->desc('Get storage usage stats')
|
||||
->groups(['api', 'storage'])
|
||||
->label('scope', 'files.read')
|
||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||
|
|
@ -1593,7 +1593,7 @@ App::get('/v1/storage/usage')
|
|||
});
|
||||
|
||||
App::get('/v1/storage/:bucketId/usage')
|
||||
->desc('Get usage stats for storage bucket')
|
||||
->desc('Get bucket usage stats')
|
||||
->groups(['api', 'storage'])
|
||||
->label('scope', 'files.read')
|
||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||
|
|
|
|||
|
|
@ -71,7 +71,14 @@ function createUser(string $hash, mixed $hashOptions, string $userId, ?string $e
|
|||
: ID::custom($userId);
|
||||
|
||||
if ($project->getAttribute('auths', [])['personalDataCheck'] ?? false) {
|
||||
$personalDataValidator = new PersonalData($userId, $email, $name, $phone);
|
||||
$personalDataValidator = new PersonalData(
|
||||
$userId,
|
||||
$email,
|
||||
$name,
|
||||
$phone,
|
||||
strict: false,
|
||||
allowEmpty: true
|
||||
);
|
||||
if (!$personalDataValidator->isValid($plaintextPassword)) {
|
||||
throw new Exception(Exception::USER_PASSWORD_PERSONAL_DATA);
|
||||
}
|
||||
|
|
@ -1968,7 +1975,7 @@ App::delete('/v1/users/identities/:identityId')
|
|||
});
|
||||
|
||||
App::get('/v1/users/usage')
|
||||
->desc('Get usage stats for the users API')
|
||||
->desc('Get users usage stats')
|
||||
->groups(['api', 'users'])
|
||||
->label('scope', 'users.read')
|
||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||
|
|
|
|||
1
docs/references/account/add-authenticator.md
Normal file
1
docs/references/account/add-authenticator.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](/docs/references/cloud/client-web/account#verifyAuthenticator) method.
|
||||
1
docs/references/account/create-2fa-challenge.md
Normal file
1
docs/references/account/create-2fa-challenge.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Initialize an MFA challenge of the specified factor. The factor must be available on the account.
|
||||
1
docs/references/account/delete-mfa.md
Normal file
1
docs/references/account/delete-mfa.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Delete an authenticator for a user by ID.
|
||||
1
docs/references/account/list-factors.md
Normal file
1
docs/references/account/list-factors.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
List the factors available on the account to be used as a MFA challange.
|
||||
1
docs/references/account/update-challenge.md
Normal file
1
docs/references/account/update-challenge.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Complete the MFA challenge by providing the one-time password.
|
||||
1
docs/references/account/update-mfa.md
Normal file
1
docs/references/account/update-mfa.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Enable or disable MFA on an account.
|
||||
1
docs/references/account/verify-authenticator.md
Normal file
1
docs/references/account/verify-authenticator.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Verify an authenticator app after adding it using the [add authenticator](/docs/references/cloud/client-web/account#addAuthenticator) method.
|
||||
1
docs/references/databases/create-attribute-enum.md
Normal file
1
docs/references/databases/create-attribute-enum.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Create an enumeration attribute. The `elements` param acts as a white-list of accepted values for this attribute.
|
||||
1
docs/references/databases/create-datetime-attribute.md
Normal file
1
docs/references/databases/create-datetime-attribute.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Create a date time attribute according to the ISO 8601 standard.
|
||||
2
docs/references/databases/create-index.md
Normal file
2
docs/references/databases/create-index.md
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.
|
||||
Attributes can be `key`, `fulltext`, and `unique`.
|
||||
1
docs/references/databases/delete-attribute.md
Normal file
1
docs/references/databases/delete-attribute.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Deletes an attribute.
|
||||
1
docs/references/databases/delete-index.md
Normal file
1
docs/references/databases/delete-index.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Delete an index.
|
||||
1
docs/references/databases/get-attribute.md
Normal file
1
docs/references/databases/get-attribute.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Get attribute by ID.
|
||||
1
docs/references/databases/get-index.md
Normal file
1
docs/references/databases/get-index.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Get index by ID.
|
||||
1
docs/references/databases/list-attributes.md
Normal file
1
docs/references/databases/list-attributes.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
List attributes in the collection.
|
||||
1
docs/references/databases/list-indexes.md
Normal file
1
docs/references/databases/list-indexes.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
List indexes in the collection.
|
||||
1
docs/references/databases/update-boolean-attribute.md
Normal file
1
docs/references/databases/update-boolean-attribute.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Update a boolean attribute. Changing the `default` value will not update already existing documents.
|
||||
1
docs/references/databases/update-datetime-attribute.md
Normal file
1
docs/references/databases/update-datetime-attribute.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Update a date time attribute. Changing the `default` value will not update already existing documents.
|
||||
1
docs/references/health/get-queue-functions.md
Normal file
1
docs/references/health/get-queue-functions.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Get the number of function executions that are waiting to be processed in the Appwrite internal queue server.
|
||||
1
docs/references/messaging/delete-message.md
Normal file
1
docs/references/messaging/delete-message.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Delete a message. If the message is not a draft or scheduled, but has been sent, this will not recall the message.
|
||||
1
docs/references/users/create-target.md
Normal file
1
docs/references/users/create-target.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Create a messaging target.
|
||||
1
docs/references/users/delete-mfa.md
Normal file
1
docs/references/users/delete-mfa.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Delete an authenticator app.
|
||||
1
docs/references/users/delete-target.md
Normal file
1
docs/references/users/delete-target.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Delete a messaging target.
|
||||
1
docs/references/users/get-user-target.md
Normal file
1
docs/references/users/get-user-target.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Get a user's push notification target by ID.
|
||||
1
docs/references/users/list-factors.md
Normal file
1
docs/references/users/list-factors.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
List the factors available on the account to be used as a MFA challange.
|
||||
1
docs/references/users/list-user-targets.md
Normal file
1
docs/references/users/list-user-targets.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
List the messaging targets that are associated with a user.
|
||||
1
docs/references/users/update-target.md
Normal file
1
docs/references/users/update-target.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Update a messaging target.
|
||||
1
docs/references/users/update-user-mfa.md
Normal file
1
docs/references/users/update-user-mfa.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Enable or disable MFA on a user account.
|
||||
|
|
@ -12,9 +12,10 @@ class PersonalData extends Password
|
|||
protected ?string $email = null,
|
||||
protected ?string $name = null,
|
||||
protected ?string $phone = null,
|
||||
protected bool $strict = false
|
||||
protected bool $strict = false,
|
||||
protected bool $allowEmpty = false,
|
||||
) {
|
||||
parent::__construct();
|
||||
parent::__construct($allowEmpty);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -4532,6 +4532,8 @@ trait DatabasesBase
|
|||
$this->assertEquals(2, count($response['body']['documents']));
|
||||
$this->assertEquals(null, $response['body']['documents'][0]['fullName']);
|
||||
$this->assertArrayNotHasKey("libraries", $response['body']['documents'][0]);
|
||||
$this->assertArrayNotHasKey('$databaseId', $response['body']['documents'][0]);
|
||||
$this->assertArrayNotHasKey('$collectionId', $response['body']['documents'][0]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -4551,6 +4553,8 @@ trait DatabasesBase
|
|||
|
||||
$this->assertEquals(200, $response['headers']['status-code']);
|
||||
$this->assertArrayNotHasKey('libraries', $response['body']['documents'][0]);
|
||||
$this->assertArrayNotHasKey('$databaseId', $response['body']['documents'][0]);
|
||||
$this->assertArrayNotHasKey('$collectionId', $response['body']['documents'][0]);
|
||||
|
||||
$response = $this->client->call(Client::METHOD_GET, '/databases/' . $data['databaseId'] . '/collections/' . $data['personCollection'] . '/documents', array_merge([
|
||||
'content-type' => 'application/json',
|
||||
|
|
@ -4563,6 +4567,8 @@ trait DatabasesBase
|
|||
$document = $response['body']['documents'][0];
|
||||
$this->assertEquals(200, $response['headers']['status-code']);
|
||||
$this->assertArrayHasKey('libraries', $document);
|
||||
$this->assertArrayNotHasKey('$databaseId', $document);
|
||||
$this->assertArrayNotHasKey('$collectionId', $document);
|
||||
|
||||
$response = $this->client->call(Client::METHOD_GET, '/databases/' . $data['databaseId'] . '/collections/' . $data['personCollection'] . '/documents/' . $document['$id'], array_merge([
|
||||
'content-type' => 'application/json',
|
||||
|
|
|
|||
|
|
@ -1731,6 +1731,19 @@ class ProjectsConsoleClientTest extends Scope
|
|||
|
||||
$this->assertEquals(201, $response['headers']['status-code']);
|
||||
|
||||
$response = $this->client->call(Client::METHOD_POST, '/users', array_merge($this->getHeaders(), [
|
||||
'content-type' => 'application/json',
|
||||
'x-appwrite-project' => $id,
|
||||
'x-appwrite-mode' => 'admin',
|
||||
]), [
|
||||
// Empty password
|
||||
'email' => uniqid() . 'user@localhost.test',
|
||||
'name' => 'User',
|
||||
'userId' => ID::unique(),
|
||||
]);
|
||||
|
||||
$this->assertEquals(201, $response['headers']['status-code']);
|
||||
|
||||
$email = uniqid() . 'user@localhost.test';
|
||||
$userId = ID::unique();
|
||||
$response = $this->client->call(Client::METHOD_POST, '/users', array_merge($this->getHeaders(), [
|
||||
|
|
|
|||
Loading…
Reference in a new issue