Add event type determination method to Utilities

This commit is contained in:
netkas 2024-11-01 18:04:11 -04:00
parent 95346f78cd
commit ff245ad315

View file

@ -5,21 +5,24 @@
use Exception; use Exception;
use LogLib\Log; use LogLib\Log;
use TgBotLib\Enums\EventType;
use TgBotLib\Objects\Currency; use TgBotLib\Objects\Currency;
use TgBotLib\Objects\Update;
class Utilities class Utilities
{ {
/** /**
* @var Currency[]|null * @var Currency[]|null
*/ */
private static $currencies_cache; private static ?array $currencies_cache = null;
/** /**
* Returns * Retrieves the currency object associated with the given currency code.
* *
* @param string $code * @param string $code The currency code to look up.
* @return Currency * @return Currency The currency object corresponding to the given code.
* @throws Exception * @throws Exception If the currency code is not found or fetching currencies fails.
* @deprecated Not used
*/ */
public static function getCurrency(string $code): Currency public static function getCurrency(string $code): Currency
{ {
@ -43,8 +46,36 @@
} }
if(!isset(self::$currencies_cache[strtolower($code)])) if(!isset(self::$currencies_cache[strtolower($code)]))
{
throw new Exception("Currency $code not found"); throw new Exception("Currency $code not found");
}
return self::$currencies_cache[strtolower($code)]; return self::$currencies_cache[strtolower($code)];
} }
/**
* Determines the type of event based on the provided update object.
*
* @param Update $update The update object containing event information.
* @return EventType The determined type of the event.
*/
public static function determineEventType(Update $update): EventType
{
if($update->getRemovedChatBoost() !== null)
{
return EventType::REMOVED_CHAT_BOOST_EVENT;
}
if($update->getChatBoost() !== null)
{
return EventType::CHAT_BOOST_EVENT;
}
if($update->getChatJoinRequest() !== null)
{
return EventType::CHAT_JOIN_REQUEST_EVENT;
}
return EventType::UPDATE_EVENT;
}
} }