Merge branch 'feat-mailgun-provider' of https://github.com/appwrite/appwrite into feat-topics-controller
This commit is contained in:
commit
87011af914
5 changed files with 71 additions and 6 deletions
|
@ -260,7 +260,7 @@ return [
|
|||
'sdk' => true,
|
||||
'docs' => true,
|
||||
'docsUrl' => 'https://appwrite.io/docs/server/messaging',
|
||||
'tests' => false,
|
||||
'tests' => true,
|
||||
'optional' => true,
|
||||
'icon' => '/images/services/messaging.png',
|
||||
]
|
||||
|
|
|
@ -1330,15 +1330,22 @@ App::post('/v1/account/sessions/phone')
|
|||
$message = $message->setParam('{{token}}', $secret);
|
||||
$message = $message->render();
|
||||
|
||||
$target = $dbForProject->createDocument('targets', new Document([
|
||||
'userId' => $user->getId(),
|
||||
'userInternalId' => $user->getInternalId(),
|
||||
'providerId' => $provider->getId(),
|
||||
'providerInternalId' => $provider->getInternalId(),
|
||||
'identifier' => $phone,
|
||||
]));
|
||||
|
||||
$messageDoc = $dbForProject->createDocument('messages', new Document([
|
||||
'to' => [$phone],
|
||||
'to' => [$target->getId()],
|
||||
'data' => [
|
||||
'content' => $message,
|
||||
'from' => $from,
|
||||
],
|
||||
'providerId' => $provider->getId(),
|
||||
'providerInternalId' => $provider->getInternalId(),
|
||||
'deliveryTime' => Datetime::now(),
|
||||
]));
|
||||
|
||||
$messaging
|
||||
|
@ -2952,15 +2959,22 @@ App::post('/v1/account/verification/phone')
|
|||
$message = $message->setParam('{{token}}', $secret);
|
||||
$message = $message->render();
|
||||
|
||||
$target = $dbForProject->createDocument('targets', new Document([
|
||||
'userId' => $user->getId(),
|
||||
'userInternalId' => $user->getInternalId(),
|
||||
'providerId' => $provider->getId(),
|
||||
'providerInternalId' => $provider->getInternalId(),
|
||||
'identifier' => $user->getAttribute('phone'),
|
||||
]));
|
||||
|
||||
$messageDoc = $dbForProject->createDocument('messages', new Document([
|
||||
'to' => [$user->getAttribute('phone')],
|
||||
'to' => [$target->getId()],
|
||||
'data' => [
|
||||
'content' => $message,
|
||||
'from' => $from,
|
||||
],
|
||||
'providerId' => $provider->getId(),
|
||||
'providerInternalId' => $provider->getInternalId(),
|
||||
'deliveryTime' => Datetime::now(),
|
||||
]));
|
||||
|
||||
$messaging
|
||||
|
|
|
@ -127,7 +127,7 @@ class MessagingV1 extends Worker
|
|||
}
|
||||
|
||||
$targets = $this->dbForProject->find('targets', [Query::equal('$id', $recipientsId)]);
|
||||
\array_merge($recipients, $targets);
|
||||
$recipients = \array_merge($recipients, $targets);
|
||||
|
||||
$identifiers = \array_map(function (Document $recipient) {
|
||||
return $recipient->getAttribute('identifier');
|
||||
|
|
|
@ -123,6 +123,28 @@ class AccountTest extends Scope
|
|||
public function testCreatePhoneVerification(): array
|
||||
{
|
||||
$projectId = $this->getProject()['$id'];
|
||||
$query = $this->getQuery(self::$CREATE_PROVIDER);
|
||||
$graphQLPayload = [
|
||||
'query' => $query,
|
||||
'variables' => [
|
||||
'providerId' => 'unique()',
|
||||
'name' => 'Mock',
|
||||
'provider' => 'mock',
|
||||
'type' => 'sms',
|
||||
'credentials' => [
|
||||
'username' => 'username',
|
||||
'password' => 'password',
|
||||
],
|
||||
'default' => true,
|
||||
],
|
||||
];
|
||||
|
||||
$this->client->call(Client::METHOD_POST, '/graphql', [
|
||||
'content-type' => 'application/json',
|
||||
'x-appwrite-project' => $projectId,
|
||||
'x-appwrite-key' => $this->getProject()['apiKey'],
|
||||
], $graphQLPayload);
|
||||
|
||||
$query = $this->getQuery(self::$CREATE_PHONE_VERIFICATION);
|
||||
$graphQLPayload = [
|
||||
'query' => $query,
|
||||
|
|
|
@ -296,6 +296,8 @@ trait Base
|
|||
}
|
||||
';
|
||||
|
||||
public static string $CREATE_PROVIDER = 'create_provider';
|
||||
|
||||
public function getQuery(string $name): string
|
||||
{
|
||||
switch ($name) {
|
||||
|
@ -1929,6 +1931,33 @@ trait Base
|
|||
}
|
||||
}
|
||||
}' . PHP_EOL . self::$FRAGMENT_ATTRIBUTES;
|
||||
case self::$CREATE_PROVIDER:
|
||||
return 'mutation CreateGeneralProvider(
|
||||
$providerId: String!,
|
||||
$provider: String!,
|
||||
$name: String!,
|
||||
$type: String!,
|
||||
$default: Boolean,
|
||||
$enabled: Boolean,
|
||||
$credentials: Json!
|
||||
) {
|
||||
messagingCreateGeneralProvider(
|
||||
providerId: $providerId,
|
||||
provider: $provider,
|
||||
name: $name,
|
||||
type: $type,
|
||||
default: $default,
|
||||
enabled: $enabled,
|
||||
credentials: $credentials
|
||||
) {
|
||||
_id
|
||||
name
|
||||
provider
|
||||
type
|
||||
default
|
||||
enabled
|
||||
}
|
||||
}';
|
||||
}
|
||||
|
||||
throw new \InvalidArgumentException('Invalid query type');
|
||||
|
|
Loading…
Reference in a new issue