|
@@ -0,0 +1,80 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace App\TCommands;
|
|
|
+
|
|
|
+use App\ExternalUser;
|
|
|
+use App\User;
|
|
|
+use Illuminate\Support\Facades\Log;
|
|
|
+use Telegram\Bot\Actions;
|
|
|
+use Telegram\Bot\Commands\Command;
|
|
|
+
|
|
|
+/**
|
|
|
+ * Class SearchCommand.
|
|
|
+ */
|
|
|
+class MyEmail extends Command
|
|
|
+{
|
|
|
+ /**
|
|
|
+ * @var string Command Name
|
|
|
+ */
|
|
|
+ protected $name = 'my_email';
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @var array Command Aliases
|
|
|
+ */
|
|
|
+ protected $aliases = ['listcommands'];
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @var string Command Description
|
|
|
+ */
|
|
|
+ protected $description = 'Привязать почту';
|
|
|
+
|
|
|
+ /**
|
|
|
+ * {@inheritdoc}
|
|
|
+ */
|
|
|
+ public function handle($arguments)
|
|
|
+ {
|
|
|
+ $telegram_message = \Telegram::getWebhookUpdates()['message'];
|
|
|
+ $textOfMessage = $telegram_message['text'];
|
|
|
+ $updateId = \Telegram::getWebhookUpdates()['update_id']+1;
|
|
|
+ \Telegram::getWebhookUpdates(['offset'=>$updateId]);
|
|
|
+
|
|
|
+ $email = substr($textOfMessage, 9);
|
|
|
+
|
|
|
+ if ($email){
|
|
|
+ $trimedEmail = trim($email);
|
|
|
+
|
|
|
+ if (filter_var($trimedEmail, FILTER_VALIDATE_EMAIL)){
|
|
|
+ $userId = $telegram_message['from']['id'];
|
|
|
+ $user = User::where('email', $trimedEmail)->first();
|
|
|
+ Log::info('User->'. $user);
|
|
|
+
|
|
|
+ if ($user){
|
|
|
+
|
|
|
+ if($user->telegram_id){
|
|
|
+ $telegramId = $user->telegram_id == $telegram_message['from']['id'] ? true : false;
|
|
|
+ } else {
|
|
|
+ $telegramId = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!$telegramId){
|
|
|
+ $user->telegram_id = $userId;
|
|
|
+ $user->save();
|
|
|
+ }
|
|
|
+
|
|
|
+ $text = $telegramId ? 'Поштова скринька вже приєднана до цього номеру Telegram' : 'Вітаємо, ви приєднали скриньку';
|
|
|
+ } else {
|
|
|
+ $text = 'користувача не зареєстровано на сайті proj.geolook.php.a-level.com.ua';
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ $text = 'email вказано невірно';
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ $text = 'Для приєднання поштової скриньки, вкажіть її назву через пробіл після команди /my_email.'.PHP_EOL.'Шаблон:'.PHP_EOL.'/my_email \'назва скриньки\'';
|
|
|
+ }
|
|
|
+
|
|
|
+ $this->replyWithMessage(compact('text'));
|
|
|
+
|
|
|
+ //Log::info(trim($email));
|
|
|
+ }
|
|
|
+}
|