1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2025-12-14 12:24:06 +00:00
This commit is contained in:
Samuel Štancl 2019-09-11 20:09:49 +02:00
parent a12e344288
commit a4b1553df7

View file

@ -46,12 +46,21 @@ class RedisStorageDriver implements StorageDriver
public function find(string $id): Tenant public function find(string $id): Tenant
{ {
// todo https://redis.io/commands/hgetall $data = $this->redis->hgetall("tenants:$id");
if (! $fields) { $keys = [];
return $this->redis->hgetall("tenants:$id"); $values = [];
foreach ($data as $i => $value) {
if ($i & 1) { // is odd
$values[] = $value;
} else {
$keys[] = $value;
}
} }
return array_combine($fields, $this->redis->hmget("tenants:$id", $fields)); // todo factory $data = array_combine($keys, $values);
$domains = []; // todo
return Tenant::fromStorage($data)->withDomains($domains);
} }
public function getTenantIdByDomain(string $domain): ?string public function getTenantIdByDomain(string $domain): ?string
@ -59,7 +68,6 @@ class RedisStorageDriver implements StorageDriver
return $this->redis->hget("domains:$domain", 'tenant_id') ?: null; return $this->redis->hget("domains:$domain", 'tenant_id') ?: null;
} }
/** @todo make this atomic */
public function createTenant(Tenant $tenant): void public function createTenant(Tenant $tenant): void
{ {
$this->redis->pipeline(function ($pipe) use ($tenant) { $this->redis->pipeline(function ($pipe) use ($tenant) {