1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2025-12-12 23:14:03 +00:00

Fix some tests

This commit is contained in:
Samuel Štancl 2020-05-22 18:21:19 +02:00
parent 800e8d5a56
commit dce06b7430

View file

@ -4,16 +4,16 @@ declare(strict_types=1);
namespace Stancl\Tenancy\Resolvers; namespace Stancl\Tenancy\Resolvers;
use Illuminate\Cache\Repository; use Illuminate\Contracts\Cache\Factory;
use Stancl\Tenancy\Contracts\Tenant; use Stancl\Tenancy\Contracts\Tenant;
use Stancl\Tenancy\Contracts\TenantResolver; use Stancl\Tenancy\Contracts\TenantResolver;
class CachedTenantResolver implements TenantResolver class CachedTenantResolver implements TenantResolver
{ {
/** @var Repository */ /** @var CacheManager */
protected $cache; protected $cache;
public function __construct(Repository $cache) public function __construct(Factory $cache)
{ {
$this->cache = $cache; $this->cache = $cache;
} }
@ -22,20 +22,21 @@ class CachedTenantResolver implements TenantResolver
{ {
$resolverClass = $args[0]; $resolverClass = $args[0];
$data = $args[1]; $data = $args[1];
$ttl = $args[2]; $ttl = $args[2] ?? null;
$cacheStore = $args[3]; $cacheStore = $args[3] ?? null;
/** @var TenantResolver $resolver */ /** @var TenantResolver $resolver */
$resolver = app($resolverClass); $resolver = app($resolverClass);
$encodedData = json_encode($data); $encodedData = json_encode($data);
if ($this->cache->has($key = "_tenancy_resolver:$resolverClass:$encodedData")) { $cache = $this->cache->store($cacheStore);
return $this->cache->get($key);
if ($cache->has($key = "_tenancy_resolver:$resolverClass:$encodedData")) {
return $cache->get($key);
} }
$this->cache->put($key, $resolved = $resolver->resolve(...$data);
$resolved = $resolver->resolve(...$data) $cache->put($key, $resolved, $ttl);
);
return $resolved; return $resolved;
} }