getUpdateType() public méthode

Get the update type based on the set properties
public getUpdateType ( ) : string | null
Résultat string | null
 /**
  * Process bot Update request
  *
  * @param Entities\Update $update
  *
  * @return Entities\ServerResponse
  */
 public function processUpdate(Update $update)
 {
     $this->update = $update;
     //If all else fails, it's a generic message.
     $command = 'genericmessage';
     $update_type = $this->update->getUpdateType();
     if (in_array($update_type, ['inline_query', 'chosen_inline_result', 'callback_query', 'edited_message'])) {
         $command = $this->getCommandFromType($update_type);
     } elseif ($update_type === 'message') {
         $message = $this->update->getMessage();
         //Load admin commands
         if ($this->isAdmin()) {
             $this->addCommandsPath(BASE_COMMANDS_PATH . '/AdminCommands', false);
         }
         $this->addCommandsPath(BASE_COMMANDS_PATH . '/UserCommands', false);
         $type = $message->getType();
         if ($type === 'command') {
             $command = $message->getCommand();
         } elseif (in_array($type, ['channel_chat_created', 'delete_chat_photo', 'group_chat_created', 'left_chat_member', 'migrate_from_chat_id', 'migrate_to_chat_id', 'new_chat_member', 'new_chat_photo', 'new_chat_title', 'supergroup_chat_created'])) {
             $command = $this->getCommandFromType($type);
         }
     }
     //Make sure we have an up-to-date command list
     //This is necessary to "require" all the necessary command files!
     $this->getCommandsList();
     DB::insertRequest($this->update);
     return $this->executeCommand($command);
 }
Exemple #2
0
 /**
  * Insert request into database
  *
  * @todo self::$pdo->lastInsertId() - unsafe usage if expected previous insert fails?
  *
  * @param Entities\Update &$update
  *
  * @return bool
  */
 public static function insertRequest(Update &$update)
 {
     $update_id = $update->getUpdateId();
     if ($update->getUpdateType() == 'message') {
         $message = $update->getMessage();
         if (self::insertMessageRequest($message)) {
             $message_id = $message->getMessageId();
             $chat_id = $message->getChat()->getId();
             return self::insertTelegramUpdate($update_id, $chat_id, $message_id, null, null, null, null);
         }
     } elseif ($update->getUpdateType() == 'inline_query') {
         $inline_query = $update->getInlineQuery();
         if (self::insertInlineQueryRequest($inline_query)) {
             $inline_query_id = $inline_query->getId();
             return self::insertTelegramUpdate($update_id, null, null, $inline_query_id, null, null, null);
         }
     } elseif ($update->getUpdateType() == 'chosen_inline_result') {
         $chosen_inline_result = $update->getChosenInlineResult();
         if (self::insertChosenInlineResultRequest($chosen_inline_result)) {
             $chosen_inline_result_local_id = self::$pdo->lastInsertId();
             return self::insertTelegramUpdate($update_id, null, null, null, $chosen_inline_result_local_id, null, null);
         }
     } elseif ($update->getUpdateType() == 'callback_query') {
         $callback_query = $update->getCallbackQuery();
         if (self::insertCallbackQueryRequest($callback_query)) {
             $callback_query_id = $callback_query->getId();
             return self::insertTelegramUpdate($update_id, null, null, null, null, $callback_query_id, null);
         }
     } elseif ($update->getUpdateType() == 'edited_message') {
         $edited_message = $update->getEditedMessage();
         if (self::insertEditedMessageRequest($edited_message)) {
             $chat_id = $edited_message->getChat()->getId();
             $edited_message_local_id = self::$pdo->lastInsertId();
             return self::insertTelegramUpdate($update_id, $chat_id, null, null, null, null, $edited_message_local_id);
         }
     }
     return false;
 }
Exemple #3
0
 /**
  * Insert request into database
  *
  * @param Entities\Update &$update
  *
  * @return bool
  */
 public static function insertRequest(Update &$update)
 {
     $update_id = $update->getUpdateId();
     if ($update->getUpdateType() == 'message') {
         $message = $update->getMessage();
         $message_id = $message->getMessageId();
         $chat_id = $message->getChat()->getId();
         self::insertMessageRequest($message);
         return self::insertTelegramUpdate($update_id, $chat_id, $message_id, null, null, null);
     } elseif ($update->getUpdateType() == 'inline_query') {
         $inline_query = $update->getInlineQuery();
         $inline_query_id = $inline_query->getId();
         self::insertInlineQueryRequest($inline_query);
         return self::insertTelegramUpdate($update_id, null, null, $inline_query_id, null, null);
     } elseif ($update->getUpdateType() == 'chosen_inline_result') {
         $chosen_inline_query = $update->getChosenInlineResult();
         if (!self::isDbConnected()) {
             return false;
         }
         try {
             //Inline query Table
             $mysql_query = 'INSERT INTO `' . TB_CHOSEN_INLINE_QUERY . '`
                 (
                 `result_id`, `user_id`, `location`, `inline_message_id`, `query`, `created_at`
                 )
                 VALUES (
                 :result_id, :user_id, :location, :inline_message_id, :query, :created_at
                 )';
             $sth_insert_chosen_inline_query = self::$pdo->prepare($mysql_query);
             $date = self::getTimestamp(time());
             $result_id = $chosen_inline_query->getResultId();
             $from = $chosen_inline_query->getFrom();
             $user_id = null;
             if (is_object($from)) {
                 $user_id = $from->getId();
                 self::insertUser($from, $date);
             }
             $location = $chosen_inline_query->getLocation();
             $inline_message_id = $chosen_inline_query->getInlineMessageId();
             $query = $chosen_inline_query->getQuery();
             $sth_insert_chosen_inline_query->bindParam(':result_id', $result_id, \PDO::PARAM_STR);
             $sth_insert_chosen_inline_query->bindParam(':user_id', $user_id, \PDO::PARAM_INT);
             $sth_insert_chosen_inline_query->bindParam(':location', $location, \PDO::PARAM_INT);
             $sth_insert_chosen_inline_query->bindParam(':inline_message_id', $inline_message_id, \PDO::PARAM_INT);
             $sth_insert_chosen_inline_query->bindParam(':query', $query, \PDO::PARAM_STR);
             $sth_insert_chosen_inline_query->bindParam(':created_at', $date, \PDO::PARAM_STR);
             $status = $sth_insert_chosen_inline_query->execute();
             $chosen_inline_query_local_id = self::$pdo->lastInsertId();
         } catch (PDOException $e) {
             throw new TelegramException($e->getMessage());
         }
         return self::insertTelegramUpdate($update_id, null, null, null, $chosen_inline_query_local_id, null);
     } elseif ($update->getUpdateType() == 'callback_query') {
         $callback_query = $update->getCallbackQuery();
         $callback_query_id = $callback_query->getId();
         self::insertCallbackQueryRequest($callback_query);
         return self::insertTelegramUpdate($update_id, null, null, null, null, $callback_query_id);
     }
 }