src/RedisBloomClient/DataTypes/BaseDataType.php
<?php/** * @project phpredis-bloom * @author Rafael Campoy <rafa.campoy@gmail.com> * @copyright 2019 Rafael Campoy <rafa.campoy@gmail.com> * @license MIT * @link https://github.com/averias/phpredis-bloom * * Copyright and license information, is included in * the LICENSE file that is distributed with this source code. */ namespace Averias\RedisBloom\DataTypes; use Averias\RedisBloom\Adapter\RedisClientAdapterInterface;use Averias\RedisBloom\Client\BaseRedisBloomClient;use Averias\RedisBloom\Exception\ResponseException;use Averias\RedisBloom\Parser\ParserTrait;use Averias\RedisBloom\Validator\InputValidatorTrait;use Exception; class BaseDataType extends BaseRedisBloomClient{ use InputValidatorTrait; use ParserTrait; /** @var string */ protected $name; public function __construct(string $filterName, RedisClientAdapterInterface $redisClientAdapter) { parent::__construct($redisClientAdapter); $this->name = $filterName; } /** * @param string $key * @param string $message * @return int * @throws ResponseException */ protected function deleteKey(string $key, string $message = ""): int { try { $deleted = $this->redisClientAdapter->executeCommandByName('del', [$key]); } catch (Exception $exception) { if ($message !== "") { $message .= ", "; } throw new ResponseException( sprintf("%s%s key could NOT be deleted, please delete it manually.", $message, $key) ); } return $deleted; } /** * @param string $targetFilter * @param string $exceptionMessage * @throws ResponseException */ protected function copyFailedException(string $targetFilter, string $exceptionMessage) { $message = sprintf( "copying data to '%s' target filter failed, reason %s", $targetFilter, $exceptionMessage ); $this->deleteKey($targetFilter, $message); throw new ResponseException($message . ", target filter was deleted"); }}