Skip to content

Commit 2965136

Browse files
committed
⬆️ (composer.json): upgrade dependencies to latest versions
♻️ (HasFlags.php): add support for BackedEnum and UnitEnum in trait ✨ (UserLogin.php): use IdentitiesGenerator to generate cache key for user identity
1 parent 0c243a2 commit 2965136

File tree

3 files changed

+21
-7
lines changed

3 files changed

+21
-7
lines changed

composer.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"require": {
1313
"php": "^8.2",
1414
"laravel/framework": "^10.44.0 || ^11.0",
15-
"flagsmith/flagsmith-php-client": "^4.2.0"
15+
"flagsmith/flagsmith-php-client": "^4.3.1"
1616
},
1717
"extra": {
1818
"laravel": {
@@ -32,10 +32,10 @@
3232
"require-dev": {
3333
"guzzlehttp/psr7": "^2.6.2",
3434
"guzzlehttp/guzzle": "^7.8.1",
35-
"orchestra/testbench": "^8.22.0",
36-
"phpunit/phpunit": "^10.5.13",
37-
"vimeo/psalm": "^5.23.1",
38-
"squizlabs/php_codesniffer": "^3.9.0"
35+
"orchestra/testbench": "^8.23.0",
36+
"phpunit/phpunit": "^10.5.25",
37+
"vimeo/psalm": "^5.25.0",
38+
"squizlabs/php_codesniffer": "^3.10.1"
3939
},
4040
"config": {
4141
"allow-plugins": {

src/Concerns/HasFlags.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22

33
namespace Clearlyip\LaravelFlagsmith\Concerns;
44

5+
use BackedEnum;
56
use Flagsmith\Flagsmith;
67
use Flagsmith\Models\Identity;
78
use Flagsmith\Models\IdentityTrait;
89
use Flagsmith\Utils\Collections\FlagModelsList;
910
use Illuminate\Support\Facades\App;
11+
use UnitEnum;
1012

1113
trait HasFlags
1214
{
@@ -112,7 +114,13 @@ public function getFlagTraits(): array
112114
return array_reduce(
113115
config('flagsmith.identity.traits', []),
114116
function ($carry, $attribute) {
115-
$carry[$attribute] = $this->getRawOriginal($attribute);
117+
$value = $this->{$attribute};
118+
if ($value instanceof BackedEnum) {
119+
$value = $value->value;
120+
} elseif ($value instanceof UnitEnum) {
121+
$value = $value->name;
122+
}
123+
$carry[$attribute] = $value;
116124
return $carry;
117125
},
118126
[],

src/Listeners/UserLogin.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use Clearlyip\LaravelFlagsmith\Contracts\UserFlags;
66
use Clearlyip\LaravelFlagsmith\Jobs\SyncUser;
7+
use Flagsmith\Utils\IdentitiesGenerator;
78
use Illuminate\Auth\Events\Login;
89

910
class UserLogin
@@ -42,8 +43,13 @@ public function handle(Login $event)
4243
return;
4344
}
4445

46+
$key = IdentitiesGenerator::generateIdentitiesCacheKey(
47+
$user->getFlagIdentityId(),
48+
(object) $user->getFlagTraits(),
49+
);
50+
4551
//Doesn't exist so get it now
46-
if (!$cache->has('Identity.' . $user->getFlagIdentityId())) {
52+
if (!$cache->has($key)) {
4753
SyncUser::dispatchSync($user);
4854
} else {
4955
SyncUser::dispatch($user)->onQueue($queue);

0 commit comments

Comments
 (0)