19 changed files with 49 additions and 152 deletions
@ -1,70 +0,0 @@
@@ -1,70 +0,0 @@
|
||||
<?php |
||||
|
||||
namespace App\Service; |
||||
|
||||
use Psr\Cache\InvalidArgumentException; |
||||
use Psr\Log\LoggerInterface; |
||||
use Symfony\Contracts\Cache\CacheInterface; |
||||
use Symfony\Contracts\Cache\ItemInterface; |
||||
|
||||
readonly class RedisCacheService |
||||
{ |
||||
|
||||
public function __construct( |
||||
private NostrClient $nostrClient, |
||||
private CacheInterface $redisCache, |
||||
private LoggerInterface $logger |
||||
) |
||||
{ |
||||
} |
||||
|
||||
/** |
||||
* @param string $npub |
||||
* @return \stdClass |
||||
*/ |
||||
public function getMetadata(string $npub): \stdClass |
||||
{ |
||||
$cacheKey = '0_' . $npub; |
||||
try { |
||||
return $this->redisCache->get($cacheKey, function (ItemInterface $item) use ($npub) { |
||||
$item->expiresAfter(3600); // 1 hour, adjust as needed |
||||
try { |
||||
$meta = $this->nostrClient->getNpubMetadata($npub); |
||||
} catch (\Exception $e) { |
||||
$this->logger->error('Error getting user data.', ['exception' => $e]); |
||||
$meta = new \stdClass(); |
||||
$content = new \stdClass(); |
||||
$meta->name = substr($npub, 0, 8) . '…' . substr($npub, -4); |
||||
$meta->content = json_encode($content); |
||||
} |
||||
$this->logger->info('Metadata:', ['meta' => json_encode($meta)]); |
||||
return json_decode($meta->content); |
||||
}); |
||||
} catch (InvalidArgumentException $e) { |
||||
$this->logger->error('Error getting user data.', ['exception' => $e]); |
||||
$content = new \stdClass(); |
||||
$content->name = substr($npub, 0, 8) . '…' . substr($npub, -4); |
||||
return $content; |
||||
} |
||||
} |
||||
|
||||
public function getRelays($npub) |
||||
{ |
||||
$cacheKey = '10002_' . $npub; |
||||
|
||||
try { |
||||
return $this->redisCache->get($cacheKey, function (ItemInterface $item) use ($npub) { |
||||
$item->expiresAfter(3600); // 1 hour, adjust as needed |
||||
try { |
||||
$relays = $this->nostrClient->getNpubRelays($npub); |
||||
} catch (\Exception $e) { |
||||
$this->logger->error('Error getting user relays.', ['exception' => $e]); |
||||
} |
||||
return $relays ?? []; |
||||
}); |
||||
} catch (InvalidArgumentException $e) { |
||||
$this->logger->error('Error getting user relays.', ['exception' => $e]); |
||||
return []; |
||||
} |
||||
} |
||||
} |
||||
Loading…
Reference in new issue