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,
|
'sdk' => true,
|
||||||
'docs' => true,
|
'docs' => true,
|
||||||
'docsUrl' => 'https://appwrite.io/docs/server/messaging',
|
'docsUrl' => 'https://appwrite.io/docs/server/messaging',
|
||||||
'tests' => false,
|
'tests' => true,
|
||||||
'optional' => true,
|
'optional' => true,
|
||||||
'icon' => '/images/services/messaging.png',
|
'icon' => '/images/services/messaging.png',
|
||||||
]
|
]
|
||||||
|
|
|
@ -1330,15 +1330,22 @@ App::post('/v1/account/sessions/phone')
|
||||||
$message = $message->setParam('{{token}}', $secret);
|
$message = $message->setParam('{{token}}', $secret);
|
||||||
$message = $message->render();
|
$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([
|
$messageDoc = $dbForProject->createDocument('messages', new Document([
|
||||||
'to' => [$phone],
|
'to' => [$target->getId()],
|
||||||
'data' => [
|
'data' => [
|
||||||
'content' => $message,
|
'content' => $message,
|
||||||
'from' => $from,
|
'from' => $from,
|
||||||
],
|
],
|
||||||
'providerId' => $provider->getId(),
|
'providerId' => $provider->getId(),
|
||||||
'providerInternalId' => $provider->getInternalId(),
|
'providerInternalId' => $provider->getInternalId(),
|
||||||
'deliveryTime' => Datetime::now(),
|
|
||||||
]));
|
]));
|
||||||
|
|
||||||
$messaging
|
$messaging
|
||||||
|
@ -2952,15 +2959,22 @@ App::post('/v1/account/verification/phone')
|
||||||
$message = $message->setParam('{{token}}', $secret);
|
$message = $message->setParam('{{token}}', $secret);
|
||||||
$message = $message->render();
|
$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([
|
$messageDoc = $dbForProject->createDocument('messages', new Document([
|
||||||
'to' => [$user->getAttribute('phone')],
|
'to' => [$target->getId()],
|
||||||
'data' => [
|
'data' => [
|
||||||
'content' => $message,
|
'content' => $message,
|
||||||
'from' => $from,
|
'from' => $from,
|
||||||
],
|
],
|
||||||
'providerId' => $provider->getId(),
|
'providerId' => $provider->getId(),
|
||||||
'providerInternalId' => $provider->getInternalId(),
|
'providerInternalId' => $provider->getInternalId(),
|
||||||
'deliveryTime' => Datetime::now(),
|
|
||||||
]));
|
]));
|
||||||
|
|
||||||
$messaging
|
$messaging
|
||||||
|
|
|
@ -127,7 +127,7 @@ class MessagingV1 extends Worker
|
||||||
}
|
}
|
||||||
|
|
||||||
$targets = $this->dbForProject->find('targets', [Query::equal('$id', $recipientsId)]);
|
$targets = $this->dbForProject->find('targets', [Query::equal('$id', $recipientsId)]);
|
||||||
\array_merge($recipients, $targets);
|
$recipients = \array_merge($recipients, $targets);
|
||||||
|
|
||||||
$identifiers = \array_map(function (Document $recipient) {
|
$identifiers = \array_map(function (Document $recipient) {
|
||||||
return $recipient->getAttribute('identifier');
|
return $recipient->getAttribute('identifier');
|
||||||
|
|
|
@ -123,6 +123,28 @@ class AccountTest extends Scope
|
||||||
public function testCreatePhoneVerification(): array
|
public function testCreatePhoneVerification(): array
|
||||||
{
|
{
|
||||||
$projectId = $this->getProject()['$id'];
|
$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);
|
$query = $this->getQuery(self::$CREATE_PHONE_VERIFICATION);
|
||||||
$graphQLPayload = [
|
$graphQLPayload = [
|
||||||
'query' => $query,
|
'query' => $query,
|
||||||
|
|
|
@ -296,6 +296,8 @@ trait Base
|
||||||
}
|
}
|
||||||
';
|
';
|
||||||
|
|
||||||
|
public static string $CREATE_PROVIDER = 'create_provider';
|
||||||
|
|
||||||
public function getQuery(string $name): string
|
public function getQuery(string $name): string
|
||||||
{
|
{
|
||||||
switch ($name) {
|
switch ($name) {
|
||||||
|
@ -1929,6 +1931,33 @@ trait Base
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}' . PHP_EOL . self::$FRAGMENT_ATTRIBUTES;
|
}' . 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');
|
throw new \InvalidArgumentException('Invalid query type');
|
||||||
|
|
Loading…
Reference in a new issue