From a4b1553df77f30899d82d7a7f7b44b49f129afdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20=C5=A0tancl?= Date: Wed, 11 Sep 2019 20:09:49 +0200 Subject: [PATCH] wip --- src/StorageDrivers/RedisStorageDriver.php | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/StorageDrivers/RedisStorageDriver.php b/src/StorageDrivers/RedisStorageDriver.php index 97eff562..533abf78 100644 --- a/src/StorageDrivers/RedisStorageDriver.php +++ b/src/StorageDrivers/RedisStorageDriver.php @@ -46,12 +46,21 @@ class RedisStorageDriver implements StorageDriver public function find(string $id): Tenant { - // todo https://redis.io/commands/hgetall - if (! $fields) { - return $this->redis->hgetall("tenants:$id"); + $data = $this->redis->hgetall("tenants:$id"); + $keys = []; + $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 @@ -59,7 +68,6 @@ class RedisStorageDriver implements StorageDriver return $this->redis->hget("domains:$domain", 'tenant_id') ?: null; } - /** @todo make this atomic */ public function createTenant(Tenant $tenant): void { $this->redis->pipeline(function ($pipe) use ($tenant) {