Esempio n. 1
0
 /**
  * Check if the passed user is an admin
  *
  * If no user id is passed, the current update is checked for a valid message sender.
  *
  * @param int|null $user_id
  *
  * @return bool
  */
 public function isAdmin($user_id = null)
 {
     if ($user_id === null && $this->update !== null) {
         if (($message = $this->update->getMessage()) && ($from = $message->getFrom())) {
             $user_id = $from->getId();
         } elseif (($inline_query = $this->update->getInlineQuery()) && ($from = $inline_query->getFrom())) {
             $user_id = $from->getId();
         } elseif (($chosen_inline_result = $this->update->getChosenInlineResult()) && ($from = $chosen_inline_result->getFrom())) {
             $user_id = $from->getId();
         } elseif (($callback_query = $this->update->getCallbackQuery()) && ($from = $callback_query->getFrom())) {
             $user_id = $from->getId();
         } elseif (($edited_message = $this->update->getEditedMessage()) && ($from = $edited_message->getFrom())) {
             $user_id = $from->getId();
         }
     }
     return $user_id === null ? false : in_array($user_id, $this->admins_list);
 }
Esempio n. 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;
 }