MyEmail.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. namespace App\TCommands;
  3. use App\ExternalUser;
  4. use App\User;
  5. use Illuminate\Support\Facades\Log;
  6. use Telegram\Bot\Actions;
  7. use Telegram\Bot\Commands\Command;
  8. /**
  9. * Class SearchCommand.
  10. */
  11. class MyEmail extends Command
  12. {
  13. /**
  14. * @var string Command Name
  15. */
  16. protected $name = 'my_email';
  17. /**
  18. * @var array Command Aliases
  19. */
  20. protected $aliases = ['listcommands'];
  21. /**
  22. * @var string Command Description
  23. */
  24. protected $description = 'Привязать почту';
  25. /**
  26. * {@inheritdoc}
  27. */
  28. public function handle($arguments)
  29. {
  30. $telegram_message = \Telegram::getWebhookUpdates()['message'];
  31. $textOfMessage = $telegram_message['text'];
  32. $updateId = \Telegram::getWebhookUpdates()['update_id']+1;
  33. \Telegram::getWebhookUpdates(['offset'=>$updateId]);
  34. $email = substr($textOfMessage, 9);
  35. if ($email){
  36. $trimedEmail = trim($email);
  37. if (filter_var($trimedEmail, FILTER_VALIDATE_EMAIL)){
  38. $userId = $telegram_message['from']['id'];
  39. $user = User::where('email', $trimedEmail)->first();
  40. Log::info('User->'. $user);
  41. if ($user){
  42. if($user->telegram_id){
  43. $telegramId = $user->telegram_id == $telegram_message['from']['id'] ? true : false;
  44. } else {
  45. $telegramId = false;
  46. }
  47. if (!$telegramId){
  48. $user->telegram_id = $userId;
  49. $user->save();
  50. }
  51. $text = $telegramId ? 'Поштова скринька вже приєднана до цього номеру Telegram' : 'Вітаємо, ви приєднали скриньку';
  52. } else {
  53. $text = 'користувача не зареєстровано на сайті proj.geolook.php.a-level.com.ua';
  54. }
  55. } else {
  56. $text = 'email вказано невірно';
  57. }
  58. } else {
  59. $text = 'Для приєднання поштової скриньки, вкажіть її назву через пробіл після команди /my_email.'.PHP_EOL.'Шаблон:'.PHP_EOL.'/my_email \'назва скриньки\'';
  60. }
  61. $this->replyWithMessage(compact('text'));
  62. //Log::info(trim($email));
  63. }
  64. }