diff --git a/backend/.env.example b/backend/.env.example index 388e5964..56d0dd35 100644 --- a/backend/.env.example +++ b/backend/.env.example @@ -53,3 +53,6 @@ PUSHER_APP_CLUSTER=mt1 MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" + +NEXMO_KEY="" +NEXMO_SECRET="" \ No newline at end of file diff --git a/backend/app/Http/Controllers/Api/ChildrenController.php b/backend/app/Http/Controllers/Api/ChildrenController.php index b79f0b71..3347b04e 100644 --- a/backend/app/Http/Controllers/Api/ChildrenController.php +++ b/backend/app/Http/Controllers/Api/ChildrenController.php @@ -14,6 +14,8 @@ use App\Models\FatherRelation; use App\Models\MeetingApprovals; use App\Models\TelActivation; +use App\Notifications\SmsNotification; + class ChildrenController extends Controller { use AuthenticationTrait; use AuthorizationTrait; @@ -41,30 +43,25 @@ class ChildrenController extends Controller { } $token = bin2hex(random_bytes(16)); - $insert = ['tel' => $r->tel, 'token' => $token]; + $create = [ + 'type' => 0, + 'tel' => $r->tel, + 'token' => $token, + 'ttl' => date('Y-m-d H:i:s', time()+28800), + ]; try { // DBに入ります。 - Child::create($insert); + TelActivation::create($create); + + // SMSを送ります。 + \Notification::route('nexmo', '81'.substr($r->tel, 1))->notify(new SmsNotification($token)); } catch (\Throwable $e) { // 失敗 Log::critical($e->getMessage()); return ['status_code' => 400, 'error_messages' => ['登録に失敗しました。']]; } - // TODO: SMSの送信、SMSコントローラーを作る後でします。 - // try { - // $sms = new SMS; - // if (!$sms->send($r->tel, $token)) { - // // SMSの送信に失敗した場合 - // return ['status_code' => 401, 'error_messages' => ['SMSの送信に失敗しました。電話番号が正しいかご確認ください。']]; - // } - // } catch { - // // SMS APIのエラーの場合 - // Log::critical($e->getMessage()); - // return ['status_code' => 402, 'error_messages' => ['予期せぬエラーが発生しました。管理者へお問い合わせください。']]; - // } - // 仮登録に成功した場合 return ['status_code' => 200, 'params' => ['tel' => $r->tel]]; } @@ -72,11 +69,11 @@ class ChildrenController extends Controller { public function registerMain (Request $r) { $validate = Validator::make($r->all(), [ 'token' => 'required', + 'identity' => 'required|max:20|alpha_num', 'email' => 'required|unique:children|max:255|email', 'password' => 'required|min:8|max:72|confirmed', 'last_name' => 'required|max:100', 'first_name' => 'required|max:100', - 'identity' => 'required|max:20|alpha_num', 'image' => 'max:1024|mimes:jpg,png,gif', 'company' => 'max:100', ]); @@ -85,21 +82,19 @@ class ChildrenController extends Controller { return ['status_code' => 422, 'error_messages' => $validate->errors()]; } - $password = Hash::make($r->password); - // 有効期限が切れている場合 if ($get = TelActivation::where('token', $r->token)->first() && strtotime($get->ttl) > time()) { return ['status_code' => 400, 'error_messages' => ['仮登録の有効期限が切れました。改めて親にお問い合わせいただき、再登録の手続きを行ってください。']]; } + $password = Hash::make($r->password); $insert = [ - 'identity' => 'hogehoge', + 'identity' => $r->identity, 'email' => $r->email, 'tel' => $get->tel, 'password' => $password, 'last_name' => $r->last_name, 'first_name' => $r->first_name, - 'identity' => $r->identity, 'image' => $r->image, 'company' => $r->company, ]; @@ -145,12 +140,7 @@ class ChildrenController extends Controller { TelActivation::create($create); // SMSを送ります。 - // TODO - // SMSの送信に失敗 - // [ - // 'status_code' => 401, - // 'error_messages' => ['SMSの送信に失敗しました。電話番号が使用できるか確認してださい。'], - // ] + \Notification::route('nexmo', '81'.substr($r->tel, 1))->notify(new SmsNotification($token)); } catch (\Throwable $e) { // 失敗 Log::critical($e->getMessage()); diff --git a/backend/app/Models/TelActivation.php b/backend/app/Models/TelActivation.php index 1f60ba93..3902d68e 100644 --- a/backend/app/Models/TelActivation.php +++ b/backend/app/Models/TelActivation.php @@ -8,5 +8,5 @@ use Illuminate\Database\Eloquent\Model; class TelActivation extends Model { use HasFactory; - protected $fillable = ['tel', 'token']; + protected $fillable = ['type', 'child_id', 'tel', 'token', 'ttl']; } diff --git a/backend/app/Notifications/SmsNotification.php b/backend/app/Notifications/SmsNotification.php new file mode 100644 index 00000000..c5bbc00a --- /dev/null +++ b/backend/app/Notifications/SmsNotification.php @@ -0,0 +1,61 @@ +token = $token; + } + + /** + * Get the notification's delivery channels. + * + * @param mixed $notifiable + * @return array + */ + public function via($notifiable) + { + return ['nexmo']; + } + + /** + * Get the Nexmo / SMS representation of the notification. + * + * @param mixed $notifiable + * @return NexmoMessage + */ + public function toNexmo($notifiable) + { + return (new NexmoMessage()) + ->content('認証トークンは '.$this->token.' です。') + ->unicode(); + } + + /** + * Get the array representation of the notification. + * + * @param mixed $notifiable + * @return array + */ + public function toArray($notifiable) + { + return [ + // + ]; + } +} diff --git a/backend/composer.json b/backend/composer.json index cd7641be..315a469b 100644 --- a/backend/composer.json +++ b/backend/composer.json @@ -10,6 +10,7 @@ "fruitcake/laravel-cors": "^2.0", "guzzlehttp/guzzle": "^7.0.1", "laravel/framework": "^8.12", + "laravel/nexmo-notification-channel": "^2.5", "laravel/tinker": "^2.5" }, "require-dev": { diff --git a/backend/composer.lock b/backend/composer.lock index b128bcaa..36a35ade 100644 --- a/backend/composer.lock +++ b/backend/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "4a16c3c541bd99241cab1c21ce8e83ac", + "content-hash": "397d841f3fa22203eb38abc989f11c62", "packages": [ { "name": "asm89/stack-cors", @@ -122,6 +122,79 @@ ], "time": "2021-08-15T20:50:18+00:00" }, + { + "name": "composer/package-versions-deprecated", + "version": "1.11.99.4", + "source": { + "type": "git", + "url": "https://github.com/composer/package-versions-deprecated.git", + "reference": "b174585d1fe49ceed21928a945138948cb394600" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b174585d1fe49ceed21928a945138948cb394600", + "reference": "b174585d1fe49ceed21928a945138948cb394600", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.1.0 || ^2.0", + "php": "^7 || ^8" + }, + "replace": { + "ocramius/package-versions": "1.11.99" + }, + "require-dev": { + "composer/composer": "^1.9.3 || ^2.0@dev", + "ext-zip": "^1.13", + "phpunit/phpunit": "^6.5 || ^7" + }, + "type": "composer-plugin", + "extra": { + "class": "PackageVersions\\Installer", + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "PackageVersions\\": "src/PackageVersions" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" + } + ], + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "support": { + "issues": "https://github.com/composer/package-versions-deprecated/issues", + "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.4" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2021-09-13T08:41:34+00:00" + }, { "name": "dflydev/dot-access-data", "version": "v3.0.1", @@ -935,6 +1008,105 @@ }, "time": "2021-06-30T20:03:07+00:00" }, + { + "name": "laminas/laminas-diactoros", + "version": "2.8.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-diactoros.git", + "reference": "0c26ef1d95b6d7e6e3943a243ba3dc0797227199" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/0c26ef1d95b6d7e6e3943a243ba3dc0797227199", + "reference": "0c26ef1d95b6d7e6e3943a243ba3dc0797227199", + "shasum": "" + }, + "require": { + "php": "^7.3 || ~8.0.0 || ~8.1.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0" + }, + "conflict": { + "phpspec/prophecy": "<1.9.0", + "zendframework/zend-diactoros": "*" + }, + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "ext-curl": "*", + "ext-dom": "*", + "ext-gd": "*", + "ext-libxml": "*", + "http-interop/http-factory-tests": "^0.8.0", + "laminas/laminas-coding-standard": "~1.0.0", + "php-http/psr7-integration-tests": "^1.1", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.1", + "psalm/plugin-phpunit": "^0.14.0", + "vimeo/psalm": "^4.3" + }, + "type": "library", + "extra": { + "laminas": { + "config-provider": "Laminas\\Diactoros\\ConfigProvider", + "module": "Laminas\\Diactoros" + } + }, + "autoload": { + "files": [ + "src/functions/create_uploaded_file.php", + "src/functions/marshal_headers_from_sapi.php", + "src/functions/marshal_method_from_sapi.php", + "src/functions/marshal_protocol_version_from_sapi.php", + "src/functions/marshal_uri_from_sapi.php", + "src/functions/normalize_server.php", + "src/functions/normalize_uploaded_files.php", + "src/functions/parse_cookie_header.php", + "src/functions/create_uploaded_file.legacy.php", + "src/functions/marshal_headers_from_sapi.legacy.php", + "src/functions/marshal_method_from_sapi.legacy.php", + "src/functions/marshal_protocol_version_from_sapi.legacy.php", + "src/functions/marshal_uri_from_sapi.legacy.php", + "src/functions/normalize_server.legacy.php", + "src/functions/normalize_uploaded_files.legacy.php", + "src/functions/parse_cookie_header.legacy.php" + ], + "psr-4": { + "Laminas\\Diactoros\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "PSR HTTP Message implementations", + "homepage": "https://laminas.dev", + "keywords": [ + "http", + "laminas", + "psr", + "psr-17", + "psr-7" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-diactoros/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-diactoros/issues", + "rss": "https://github.com/laminas/laminas-diactoros/releases.atom", + "source": "https://github.com/laminas/laminas-diactoros" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2021-09-22T03:54:36+00:00" + }, { "name": "laravel/framework", "version": "v8.53.1", @@ -1104,6 +1276,68 @@ }, "time": "2021-08-05T14:04:08+00:00" }, + { + "name": "laravel/nexmo-notification-channel", + "version": "v2.5.1", + "source": { + "type": "git", + "url": "https://github.com/laravel/nexmo-notification-channel.git", + "reference": "178c9f0eb3a18d4b5682471bffca104a15d817a7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/nexmo-notification-channel/zipball/178c9f0eb3a18d4b5682471bffca104a15d817a7", + "reference": "178c9f0eb3a18d4b5682471bffca104a15d817a7", + "shasum": "" + }, + "require": { + "composer/package-versions-deprecated": "^1.8", + "illuminate/notifications": "~5.8.0|^6.0|^7.0|^8.0", + "nexmo/laravel": "^2.4", + "php": "^7.1.3|^8.0" + }, + "require-dev": { + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^7.0|^8.0|^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "laravel": { + "providers": [ + "Illuminate\\Notifications\\NexmoChannelServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Illuminate\\Notifications\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Nexmo Notification Channel for laravel.", + "keywords": [ + "laravel", + "nexmo", + "notifications" + ], + "support": { + "issues": "https://github.com/laravel/nexmo-notification-channel/issues", + "source": "https://github.com/laravel/nexmo-notification-channel/tree/v2.5.1" + }, + "time": "2020-12-22T17:10:24+00:00" + }, { "name": "laravel/tinker", "version": "v2.6.1", @@ -1172,6 +1406,141 @@ }, "time": "2021-03-02T16:53:12+00:00" }, + { + "name": "lcobucci/clock", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/lcobucci/clock.git", + "reference": "353d83fe2e6ae95745b16b3d911813df6a05bfb3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/lcobucci/clock/zipball/353d83fe2e6ae95745b16b3d911813df6a05bfb3", + "reference": "353d83fe2e6ae95745b16b3d911813df6a05bfb3", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "infection/infection": "^0.17", + "lcobucci/coding-standard": "^6.0", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-deprecation-rules": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpstan/phpstan-strict-rules": "^0.12", + "phpunit/php-code-coverage": "9.1.4", + "phpunit/phpunit": "9.3.7" + }, + "type": "library", + "autoload": { + "psr-4": { + "Lcobucci\\Clock\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Luís Cobucci", + "email": "lcobucci@gmail.com" + } + ], + "description": "Yet another clock abstraction", + "support": { + "issues": "https://github.com/lcobucci/clock/issues", + "source": "https://github.com/lcobucci/clock/tree/2.0.x" + }, + "funding": [ + { + "url": "https://github.com/lcobucci", + "type": "github" + }, + { + "url": "https://www.patreon.com/lcobucci", + "type": "patreon" + } + ], + "time": "2020-08-27T18:56:02+00:00" + }, + { + "name": "lcobucci/jwt", + "version": "4.1.5", + "source": { + "type": "git", + "url": "https://github.com/lcobucci/jwt.git", + "reference": "fe2d89f2eaa7087af4aa166c6f480ef04e000582" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/lcobucci/jwt/zipball/fe2d89f2eaa7087af4aa166c6f480ef04e000582", + "reference": "fe2d89f2eaa7087af4aa166c6f480ef04e000582", + "shasum": "" + }, + "require": { + "ext-hash": "*", + "ext-json": "*", + "ext-mbstring": "*", + "ext-openssl": "*", + "ext-sodium": "*", + "lcobucci/clock": "^2.0", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "infection/infection": "^0.21", + "lcobucci/coding-standard": "^6.0", + "mikey179/vfsstream": "^1.6.7", + "phpbench/phpbench": "^1.0", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-deprecation-rules": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpstan/phpstan-strict-rules": "^0.12", + "phpunit/php-invoker": "^3.1", + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Lcobucci\\JWT\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Luís Cobucci", + "email": "lcobucci@gmail.com", + "role": "Developer" + } + ], + "description": "A simple library to work with JSON Web Token and JSON Web Signature", + "keywords": [ + "JWS", + "jwt" + ], + "support": { + "issues": "https://github.com/lcobucci/jwt/issues", + "source": "https://github.com/lcobucci/jwt/tree/4.1.5" + }, + "funding": [ + { + "url": "https://github.com/lcobucci", + "type": "github" + }, + { + "url": "https://www.patreon.com/lcobucci", + "type": "patreon" + } + ], + "time": "2021-09-28T19:34:56+00:00" + }, { "name": "league/commonmark", "version": "2.0.2", @@ -1855,6 +2224,77 @@ }, "time": "2021-09-20T10:50:11+00:00" }, + { + "name": "nexmo/laravel", + "version": "2.4.1", + "source": { + "type": "git", + "url": "https://github.com/Nexmo/nexmo-laravel.git", + "reference": "029bdc19fc58cd6ef0aa75c7041d82b9d9dc61bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Nexmo/nexmo-laravel/zipball/029bdc19fc58cd6ef0aa75c7041d82b9d9dc61bd", + "reference": "029bdc19fc58cd6ef0aa75c7041d82b9d9dc61bd", + "shasum": "" + }, + "require": { + "illuminate/support": "^5.2|^6.0|^7.0|^8.0", + "php": "^5.6|^7.1|^8.0", + "vonage/client": "^2.0" + }, + "require-dev": { + "orchestra/testbench": "~3.0|^4.0|^5.0|^6.0", + "phpunit/phpunit": "^5.3|~6.0|~8.0|~9.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Nexmo\\Laravel\\NexmoServiceProvider" + ], + "aliases": { + "Nexmo": "Nexmo\\Laravel\\Facade\\Nexmo" + } + } + }, + "autoload": { + "psr-4": { + "Nexmo\\Laravel\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Tim Lytle", + "email": "tim@nexmo.com", + "homepage": "http://twitter.com/tjlytle", + "role": "Developer" + }, + { + "name": "Michael Heap", + "email": "michael.heap@nexmo.com", + "homepage": "http://twitter.com/mheap", + "role": "Developer" + }, + { + "name": "Chris Tankersley", + "email": "chris.tankersley@nexmo.com", + "homepage": "http://twitter.com/dragonmantank", + "role": "Developer" + } + ], + "description": "Laravel Package for Nexmo's PHP Client", + "support": { + "email": "devrel@nexmo.com", + "issues": "https://github.com/Nexmo/nexmo-laravel/issues", + "source": "https://github.com/Nexmo/nexmo-laravel/tree/2.4.1" + }, + "time": "2020-12-04T13:11:05+00:00" + }, { "name": "nikic/php-parser", "version": "v4.13.0", @@ -5237,6 +5677,177 @@ ], "time": "2020-11-12T00:07:28+00:00" }, + { + "name": "vonage/client", + "version": "2.4.0", + "source": { + "type": "git", + "url": "https://github.com/Vonage/vonage-php-sdk.git", + "reference": "29f23e317d658ec1c3e55cf778992353492741d7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Vonage/vonage-php-sdk/zipball/29f23e317d658ec1c3e55cf778992353492741d7", + "reference": "29f23e317d658ec1c3e55cf778992353492741d7", + "shasum": "" + }, + "require": { + "guzzlehttp/guzzle": "^7.0", + "php": ">=7.2", + "vonage/client-core": "^2.0" + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Tim Lytle", + "email": "tim@nexmo.com", + "homepage": "http://twitter.com/tjlytle", + "role": "Developer" + }, + { + "name": "Michael Heap", + "email": "michael.heap@vonage.com", + "role": "Developer" + }, + { + "name": "Lorna Mitchell", + "email": "lorna.mitchell@vonage.com", + "role": "Developer" + }, + { + "name": "Chris Tankersley", + "email": "chris.tankersley@vonage.com", + "role": "Developer" + } + ], + "description": "PHP Client for using Vonage's API.", + "support": { + "email": "devrel@nexmo.com", + "issues": "https://github.com/Vonage/vonage-php-sdk/issues", + "source": "https://github.com/Vonage/vonage-php-sdk/tree/2.4.0" + }, + "time": "2020-09-10T18:29:08+00:00" + }, + { + "name": "vonage/client-core", + "version": "2.9.2", + "source": { + "type": "git", + "url": "https://github.com/Vonage/vonage-php-sdk-core.git", + "reference": "2b734ff7d86d4b6f169df49aed3aefcdac7a40d0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Vonage/vonage-php-sdk-core/zipball/2b734ff7d86d4b6f169df49aed3aefcdac7a40d0", + "reference": "2b734ff7d86d4b6f169df49aed3aefcdac7a40d0", + "shasum": "" + }, + "require": { + "composer/package-versions-deprecated": "^1.11", + "ext-json": "*", + "ext-mbstring": "*", + "laminas/laminas-diactoros": "^2.4", + "lcobucci/jwt": "^3.4|^4.0", + "php": ">=7.2", + "psr/container": "^1.0", + "psr/http-client-implementation": "^1.0", + "psr/log": "^1.1", + "vonage/nexmo-bridge": "^0.1.0" + }, + "require-dev": { + "guzzlehttp/guzzle": ">=6", + "helmich/phpunit-json-assert": "^3.3", + "php-http/mock-client": "^1.4", + "phpstan/phpstan": "^0.12", + "phpunit/phpunit": "^8.5|^9.4", + "roave/security-advisories": "dev-latest", + "softcreatr/jsonpath": "^0.6.4", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Vonage\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Chris Tankersley", + "email": "chris.tankersley@vonage.com", + "role": "Developer" + }, + { + "name": "Lorna Mitchell", + "email": "lorna.mitchell@vonage.com", + "role": "Developer" + } + ], + "description": "PHP Client for using Vonage's API.", + "homepage": "https://developer.nexmo.com", + "support": { + "docs": "https://developer.nexmo.com", + "email": "devrel@vonage.com", + "issues": "https://github.com/Vonage/vonage-php-sdk-core/issues", + "source": "https://github.com/Vonage/vonage-php-sdk-core" + }, + "time": "2021-04-30T21:41:08+00:00" + }, + { + "name": "vonage/nexmo-bridge", + "version": "0.1.0", + "source": { + "type": "git", + "url": "https://github.com/Nexmo/vonage-php-nexmo-bridge.git", + "reference": "62653b1165f4401580ca8d2b859f59c968de3711" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Nexmo/vonage-php-nexmo-bridge/zipball/62653b1165f4401580ca8d2b859f59c968de3711", + "reference": "62653b1165f4401580ca8d2b859f59c968de3711", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.39", + "phpunit/phpunit": "^7.4", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/autoload.php" + ], + "psr-4": { + "Vonage\\NexmoBridge\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Tankersley", + "email": "chris.tankersley@vonage.com" + } + ], + "description": "Provides a bridge for using the Vonage PHP SDK with the older Nexmo namespace", + "support": { + "issues": "https://github.com/Nexmo/vonage-php-nexmo-bridge/issues", + "source": "https://github.com/Nexmo/vonage-php-nexmo-bridge/tree/master" + }, + "time": "2020-08-25T02:50:42+00:00" + }, { "name": "webmozart/assert", "version": "1.10.0", @@ -7806,5 +8417,5 @@ "php": "^7.3|^8.0" }, "platform-dev": [], - "plugin-api-version": "2.1.0" + "plugin-api-version": "2.0.0" } diff --git a/backend/config/services.php b/backend/config/services.php index 2a1d616c..a58284b7 100644 --- a/backend/config/services.php +++ b/backend/config/services.php @@ -30,4 +30,10 @@ return [ 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), ], + 'nexmo' => [ + 'key' => env('NEXMO_KEY'), + 'secret' => env('NEXMO_SECRET'), + 'sms_from' => '819012345678', + ], + ];