Merge branch 'master' into fix-rename-databases
This commit is contained in:
commit
8b0b5f4026
|
@ -68,7 +68,7 @@ return [
|
||||||
'default' => 'localhost',
|
'default' => 'localhost',
|
||||||
'required' => true,
|
'required' => true,
|
||||||
'question' => 'Enter a DNS A record hostname to serve as a CNAME for your custom domains.' . PHP_EOL . 'You can use the same value as used for the Appwrite hostname.',
|
'question' => 'Enter a DNS A record hostname to serve as a CNAME for your custom domains.' . PHP_EOL . 'You can use the same value as used for the Appwrite hostname.',
|
||||||
'filter' => ''
|
'filter' => 'domainTarget'
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'name' => '_APP_CONSOLE_WHITELIST_ROOT',
|
'name' => '_APP_CONSOLE_WHITELIST_ROOT',
|
||||||
|
|
|
@ -806,7 +806,8 @@ App::post('/v1/functions/:functionId/executions')
|
||||||
->inject('dbForProject')
|
->inject('dbForProject')
|
||||||
->inject('user')
|
->inject('user')
|
||||||
->inject('events')
|
->inject('events')
|
||||||
->action(function (string $functionId, string $data, bool $async, Response $response, Document $project, Database $dbForProject, Document $user, Event $events) {
|
->inject('usage')
|
||||||
|
->action(function (string $functionId, string $data, bool $async, Response $response, Document $project, Database $dbForProject, Document $user, Event $events, Stats $usage) {
|
||||||
|
|
||||||
$function = Authorization::skip(fn () => $dbForProject->getDocument('functions', $functionId));
|
$function = Authorization::skip(fn () => $dbForProject->getDocument('functions', $functionId));
|
||||||
|
|
||||||
|
@ -958,6 +959,12 @@ App::post('/v1/functions/:functionId/executions')
|
||||||
|
|
||||||
Authorization::skip(fn () => $dbForProject->updateDocument('executions', $executionId, $execution));
|
Authorization::skip(fn () => $dbForProject->updateDocument('executions', $executionId, $execution));
|
||||||
|
|
||||||
|
$usage
|
||||||
|
->setParam('functionId', $function->getId())
|
||||||
|
->setParam('functionExecution', 1)
|
||||||
|
->setParam('functionStatus', $execution->getAttribute('status', ''))
|
||||||
|
->setParam('functionExecutionTime', $execution->getAttribute('time') * 1000); // ms
|
||||||
|
|
||||||
$response
|
$response
|
||||||
->setStatusCode(Response::STATUS_CODE_CREATED)
|
->setStatusCode(Response::STATUS_CODE_CREATED)
|
||||||
->dynamic($execution, Response::MODEL_EXECUTION);
|
->dynamic($execution, Response::MODEL_EXECUTION);
|
||||||
|
|
|
@ -28,6 +28,7 @@ use Appwrite\Auth\Phone\Telesign;
|
||||||
use Appwrite\Auth\Phone\TextMagic;
|
use Appwrite\Auth\Phone\TextMagic;
|
||||||
use Appwrite\Auth\Phone\Twilio;
|
use Appwrite\Auth\Phone\Twilio;
|
||||||
use Appwrite\Auth\Phone\Msg91;
|
use Appwrite\Auth\Phone\Msg91;
|
||||||
|
use Appwrite\Auth\Phone\Vonage;
|
||||||
use Appwrite\DSN\DSN;
|
use Appwrite\DSN\DSN;
|
||||||
use Appwrite\Event\Audit;
|
use Appwrite\Event\Audit;
|
||||||
use Appwrite\Event\Database as EventDatabase;
|
use Appwrite\Event\Database as EventDatabase;
|
||||||
|
@ -992,6 +993,7 @@ App::setResource('phone', function () {
|
||||||
'text-magic' => new TextMagic($user, $secret),
|
'text-magic' => new TextMagic($user, $secret),
|
||||||
'telesign' => new Telesign($user, $secret),
|
'telesign' => new Telesign($user, $secret),
|
||||||
'msg91' => new Msg91($user, $secret),
|
'msg91' => new Msg91($user, $secret),
|
||||||
|
'vonage' => new Vonage($user, $secret),
|
||||||
default => null
|
default => null
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
|
@ -173,6 +173,16 @@ $cli
|
||||||
if (empty($input[$var['name']])) {
|
if (empty($input[$var['name']])) {
|
||||||
$input[$var['name']] = $var['default'];
|
$input[$var['name']] = $var['default'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($var['filter'] === 'domainTarget') {
|
||||||
|
if ($input[$var['name']] !== 'localhost') {
|
||||||
|
Console::warning("\nIf you haven't already done so, set the following record for {$input[$var['name']]} on your DNS provider:\n");
|
||||||
|
$mask = "%-15.15s %-10.10s %-30.30s\n";
|
||||||
|
printf($mask, "Type", "Name", "Value");
|
||||||
|
printf($mask, "A or AAAA", "@", "<YOUR PUBLIC IP>");
|
||||||
|
Console::warning("\nUse 'AAAA' if you're using an IPv6 address and 'A' if you're using an IPv4 address.\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$templateForCompose = new View(__DIR__ . '/../views/install/compose.phtml');
|
$templateForCompose = new View(__DIR__ . '/../views/install/compose.phtml');
|
||||||
|
|
|
@ -6,6 +6,7 @@ use Appwrite\Auth\Phone\Telesign;
|
||||||
use Appwrite\Auth\Phone\TextMagic;
|
use Appwrite\Auth\Phone\TextMagic;
|
||||||
use Appwrite\Auth\Phone\Twilio;
|
use Appwrite\Auth\Phone\Twilio;
|
||||||
use Appwrite\Auth\Phone\Msg91;
|
use Appwrite\Auth\Phone\Msg91;
|
||||||
|
use Appwrite\Auth\Phone\Vonage;
|
||||||
use Appwrite\DSN\DSN;
|
use Appwrite\DSN\DSN;
|
||||||
use Appwrite\Resque\Worker;
|
use Appwrite\Resque\Worker;
|
||||||
use Utopia\App;
|
use Utopia\App;
|
||||||
|
@ -38,6 +39,7 @@ class MessagingV1 extends Worker
|
||||||
'text-magic' => new TextMagic($user, $secret),
|
'text-magic' => new TextMagic($user, $secret),
|
||||||
'telesign' => new Telesign($user, $secret),
|
'telesign' => new Telesign($user, $secret),
|
||||||
'msg91' => new Msg91($user, $secret),
|
'msg91' => new Msg91($user, $secret),
|
||||||
|
'vonage' => new Vonage($user, $secret),
|
||||||
default => null
|
default => null
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
"utopia-php/analytics": "0.2.*",
|
"utopia-php/analytics": "0.2.*",
|
||||||
"utopia-php/audit": "0.8.*",
|
"utopia-php/audit": "0.8.*",
|
||||||
"utopia-php/cache": "0.6.*",
|
"utopia-php/cache": "0.6.*",
|
||||||
"utopia-php/cli": "0.12.*",
|
"utopia-php/cli": "0.13.*",
|
||||||
"utopia-php/config": "0.2.*",
|
"utopia-php/config": "0.2.*",
|
||||||
"utopia-php/database": "0.18.*",
|
"utopia-php/database": "0.18.*",
|
||||||
"utopia-php/locale": "0.4.*",
|
"utopia-php/locale": "0.4.*",
|
||||||
|
@ -59,7 +59,7 @@
|
||||||
"utopia-php/storage": "0.9.*",
|
"utopia-php/storage": "0.9.*",
|
||||||
"utopia-php/websocket": "0.1.0",
|
"utopia-php/websocket": "0.1.0",
|
||||||
"utopia-php/image": "0.5.*",
|
"utopia-php/image": "0.5.*",
|
||||||
"utopia-php/orchestration": "0.4.*",
|
"utopia-php/orchestration": "0.6.*",
|
||||||
"resque/php-resque": "1.3.6",
|
"resque/php-resque": "1.3.6",
|
||||||
"matomo/device-detector": "6.0.0",
|
"matomo/device-detector": "6.0.0",
|
||||||
"dragonmantank/cron-expression": "3.3.1",
|
"dragonmantank/cron-expression": "3.3.1",
|
||||||
|
|
41
composer.lock
generated
41
composer.lock
generated
|
@ -4,7 +4,7 @@
|
||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "dedc6a6328b4fdc5dfbd556a08534403",
|
"content-hash": "380d806f7540199698d12a7abeb13534",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "adhocore/jwt",
|
"name": "adhocore/jwt",
|
||||||
|
@ -1947,16 +1947,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "utopia-php/cli",
|
"name": "utopia-php/cli",
|
||||||
"version": "0.12.0",
|
"version": "0.13.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/utopia-php/cli.git",
|
"url": "https://github.com/utopia-php/cli.git",
|
||||||
"reference": "6d164b752efeb1ca089e3a517bc274d8b383474b"
|
"reference": "69e68f8ed525fe162fae950a0507ed28a0f179bc"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/utopia-php/cli/zipball/6d164b752efeb1ca089e3a517bc274d8b383474b",
|
"url": "https://api.github.com/repos/utopia-php/cli/zipball/69e68f8ed525fe162fae950a0507ed28a0f179bc",
|
||||||
"reference": "6d164b752efeb1ca089e3a517bc274d8b383474b",
|
"reference": "69e68f8ed525fe162fae950a0507ed28a0f179bc",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -1994,9 +1994,9 @@
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/utopia-php/cli/issues",
|
"issues": "https://github.com/utopia-php/cli/issues",
|
||||||
"source": "https://github.com/utopia-php/cli/tree/0.12.0"
|
"source": "https://github.com/utopia-php/cli/tree/0.13.0"
|
||||||
},
|
},
|
||||||
"time": "2022-02-18T22:10:41+00:00"
|
"time": "2022-04-26T08:41:22+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "utopia-php/config",
|
"name": "utopia-php/config",
|
||||||
|
@ -2387,21 +2387,21 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "utopia-php/orchestration",
|
"name": "utopia-php/orchestration",
|
||||||
"version": "0.4.1",
|
"version": "dev-cli-lib-upgrade",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/utopia-php/orchestration.git",
|
"url": "https://github.com/utopia-php/orchestration.git",
|
||||||
"reference": "67cf0ab15a096d274c093ea918aa4ace14ac7af7"
|
"reference": "06f2afef516aca900ddb483689ebe6f8e7037d28"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/utopia-php/orchestration/zipball/67cf0ab15a096d274c093ea918aa4ace14ac7af7",
|
"url": "https://api.github.com/repos/utopia-php/orchestration/zipball/06f2afef516aca900ddb483689ebe6f8e7037d28",
|
||||||
"reference": "67cf0ab15a096d274c093ea918aa4ace14ac7af7",
|
"reference": "06f2afef516aca900ddb483689ebe6f8e7037d28",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=8.0",
|
"php": ">=8.0",
|
||||||
"utopia-php/cli": "0.12.*"
|
"utopia-php/cli": "0.13.*"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phpunit/phpunit": "^9.3",
|
"phpunit/phpunit": "^9.3",
|
||||||
|
@ -2436,9 +2436,9 @@
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/utopia-php/orchestration/issues",
|
"issues": "https://github.com/utopia-php/orchestration/issues",
|
||||||
"source": "https://github.com/utopia-php/orchestration/tree/0.4.1"
|
"source": "https://github.com/utopia-php/orchestration/tree/cli-lib-upgrade"
|
||||||
},
|
},
|
||||||
"time": "2022-02-20T09:23:06+00:00"
|
"time": "2022-07-13T14:55:12+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "utopia-php/preloader",
|
"name": "utopia-php/preloader",
|
||||||
|
@ -5346,9 +5346,18 @@
|
||||||
"time": "2022-05-17T05:48:52+00:00"
|
"time": "2022-05-17T05:48:52+00:00"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"aliases": [],
|
"aliases": [
|
||||||
|
{
|
||||||
|
"package": "utopia-php/orchestration",
|
||||||
|
"version": "dev-cli-lib-upgrade",
|
||||||
|
"alias": "0.4.1",
|
||||||
|
"alias_normalized": "0.4.1.0"
|
||||||
|
}
|
||||||
|
],
|
||||||
"minimum-stability": "stable",
|
"minimum-stability": "stable",
|
||||||
"stability-flags": [],
|
"stability-flags": {
|
||||||
|
"utopia-php/orchestration": 20
|
||||||
|
},
|
||||||
"prefer-stable": false,
|
"prefer-stable": false,
|
||||||
"prefer-lowest": false,
|
"prefer-lowest": false,
|
||||||
"platform": {
|
"platform": {
|
||||||
|
|
41
src/Appwrite/Auth/Phone/Vonage.php
Normal file
41
src/Appwrite/Auth/Phone/Vonage.php
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Appwrite\Auth\Phone;
|
||||||
|
|
||||||
|
use Appwrite\Auth\Phone;
|
||||||
|
|
||||||
|
// Reference Material
|
||||||
|
// https://developer.vonage.com/api/sms
|
||||||
|
|
||||||
|
class Vonage extends Phone
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
private string $endpoint = 'https://rest.nexmo.com/sms/json';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $from
|
||||||
|
* @param string $to
|
||||||
|
* @param string $message
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function send(string $from, string $to, string $message): void
|
||||||
|
{
|
||||||
|
$to = ltrim($to, '+');
|
||||||
|
$headers = ['Content-Type: application/x-www-form-urlencoded'];
|
||||||
|
|
||||||
|
$this->request(
|
||||||
|
method: 'POST',
|
||||||
|
url: $this->endpoint,
|
||||||
|
headers: $headers,
|
||||||
|
payload: \http_build_query([
|
||||||
|
'text' => $message,
|
||||||
|
'from' => $from,
|
||||||
|
'to' => $to,
|
||||||
|
'api_key' => $this->user,
|
||||||
|
'api_secret' => $this->secret
|
||||||
|
])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue