1
0
Fork 0
mirror of synced 2024-07-06 07:00:56 +12:00

Merge branch 'feat-mailgun-provider' of https://github.com/appwrite/appwrite into feat-topics-controller

This commit is contained in:
Prateek Banga 2023-09-20 23:00:48 +05:30
commit 87011af914
5 changed files with 71 additions and 6 deletions

View file

@ -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',
]

View file

@ -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

View file

@ -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');

View file

@ -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,

View file

@ -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');