From 0deb1f13760be271b2ac89d5f9027c0029b821d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20=C5=A0tancl?= Date: Sat, 14 Mar 2020 19:36:28 +0100 Subject: [PATCH] Separate data & domains logic --- src/StorageDrivers/Database/CachedTenantResolver.php | 10 ++++++---- src/StorageDrivers/Database/DatabaseStorageDriver.php | 6 ++++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/StorageDrivers/Database/CachedTenantResolver.php b/src/StorageDrivers/Database/CachedTenantResolver.php index ecf66989..f95640de 100644 --- a/src/StorageDrivers/Database/CachedTenantResolver.php +++ b/src/StorageDrivers/Database/CachedTenantResolver.php @@ -34,12 +34,14 @@ class CachedTenantResolver return $this->cache->remember('_tenancy_domain_to_id:' . $domain, $this->ttl(), $query); } - public function findById(string $id, Closure $dataQuery, Closure $domainsQuery): Tenant + public function getDataById(string $id, Closure $dataQuery): ?array { - $data = $this->cache->remember('_tenancy_id_to_data:' . $id, $this->ttl(), $dataQuery); - $domains = $this->cache->remember('_tenancy_id_to_domains:' . $id, $this->ttl(), $domainsQuery); + return $this->cache->remember('_tenancy_id_to_data:' . $id, $this->ttl(), $dataQuery); + } - return Tenant::fromStorage($data)->withDomains($domains); + public function getDomainsById(string $id, Closure $domainsQuery): ?array + { + return $this->cache->remember('_tenancy_id_to_domains:' . $id, $this->ttl(), $domainsQuery); } public function invalidateTenant(string $id): void diff --git a/src/StorageDrivers/Database/DatabaseStorageDriver.php b/src/StorageDrivers/Database/DatabaseStorageDriver.php index 3dba4344..cde4de92 100644 --- a/src/StorageDrivers/Database/DatabaseStorageDriver.php +++ b/src/StorageDrivers/Database/DatabaseStorageDriver.php @@ -91,9 +91,11 @@ class DatabaseStorageDriver implements StorageDriver, CanDeleteKeys, CanFindByAn }; if ($this->usesCache()) { - return $this->cache->findById($id, $dataQuery, $domainsQuery); + $data = $this->cache->getDataById($id, $dataQuery); + $domains = $this->cache->getDomainsById($id, $domainsQuery); } else { $data = $dataQuery(); + $domains = $domainsQuery(); } if (! $data) { @@ -101,7 +103,7 @@ class DatabaseStorageDriver implements StorageDriver, CanDeleteKeys, CanFindByAn } return Tenant::fromStorage($data) - ->withDomains($domainsQuery()); + ->withDomains($domains); } /**