|
2 | 2 |
|
3 | 3 | namespace Flagsmith\Engine; |
4 | 4 |
|
5 | | -use Flagsmith\Engine\Environments\EnvironmentModel; |
6 | | -use Flagsmith\Engine\Features\FeatureStateModel; |
7 | | -use Flagsmith\Engine\Identities\IdentityModel; |
8 | | -use Flagsmith\Engine\Segments\SegmentEvaluator; |
9 | | -use Flagsmith\Engine\Utils\Exceptions\FeatureStateNotFound; |
10 | 5 | use Flagsmith\Engine\Utils\Hashing; |
11 | 6 | use Flagsmith\Engine\Utils\Semver; |
12 | 7 | use Flagsmith\Engine\Utils\Types\Context\EvaluationContext; |
@@ -424,152 +419,4 @@ private static function _getCaster($contextValue): ?callable |
424 | 419 | 'double' => fn ($v) => is_numeric($v) ? (float) $v : $v, |
425 | 420 | }; |
426 | 421 | } |
427 | | - |
428 | | - /** |
429 | | - * Get the environment feature states. |
430 | | - * @param EnvironmentModel $environment |
431 | | - * @return array |
432 | | - */ |
433 | | - public static function getEnvironmentFeatureStates(EnvironmentModel $environment): array |
434 | | - { |
435 | | - if ($environment->getProject()->getHideDisabledFlags()) { |
436 | | - return array_filter( |
437 | | - $environment->getFeatureStates()->getArrayCopy(), |
438 | | - fn (FeatureStateModel $fs) => $fs->getEnabled() |
439 | | - ); |
440 | | - } |
441 | | - |
442 | | - return $environment->getFeatureStates()->getArrayCopy(); |
443 | | - } |
444 | | - |
445 | | - /** |
446 | | - * get the environment feature state. |
447 | | - * @param EnvironmentModel $environment |
448 | | - * @param string $featureName |
449 | | - * @return FeatureStateModel |
450 | | - */ |
451 | | - public static function getEnvironmentFeatureState( |
452 | | - EnvironmentModel $environment, |
453 | | - string $featureName |
454 | | - ): FeatureStateModel { |
455 | | - $featureStates = $environment |
456 | | - ->getFeatureStates() |
457 | | - ->getArrayCopy(); |
458 | | - $filteredFeatureStates = array_filter( |
459 | | - $featureStates, |
460 | | - fn (FeatureStateModel $fs) |
461 | | - => $fs->getFeature()->getName() === $featureName |
462 | | - ); |
463 | | - |
464 | | - if (count($filteredFeatureStates) === 0) { |
465 | | - throw new FeatureStateNotFound(); |
466 | | - } |
467 | | - |
468 | | - return array_shift($filteredFeatureStates); |
469 | | - } |
470 | | - |
471 | | - /** |
472 | | - * get the identity feature states. |
473 | | - * @param EnvironmentModel $environment |
474 | | - * @param IdentityModel $identity |
475 | | - * @param array|null $overrideTraits |
476 | | - * @return array |
477 | | - */ |
478 | | - public static function getIdentityFeatureStates( |
479 | | - EnvironmentModel $environment, |
480 | | - IdentityModel $identity, |
481 | | - ?array $overrideTraits = null |
482 | | - ): array { |
483 | | - $featureStates = self::_getIdentityFeatureStatesDict( |
484 | | - $environment, |
485 | | - $identity, |
486 | | - $overrideTraits |
487 | | - ); |
488 | | - |
489 | | - if ($environment->getProject()->getHideDisabledFlags()) { |
490 | | - $filteredFeatureStates = []; |
491 | | - foreach ($featureStates as $featureState) { |
492 | | - if ($featureState->getEnabled()) { |
493 | | - $filteredFeatureStates[] = $featureState; |
494 | | - } |
495 | | - } |
496 | | - return $filteredFeatureStates; |
497 | | - } |
498 | | - |
499 | | - return array_values($featureStates); |
500 | | - } |
501 | | - |
502 | | - /** |
503 | | - * get the identity feature state. |
504 | | - * @param EnvironmentModel $environment |
505 | | - * @param IdentityModel $identity |
506 | | - * @param string $featureName |
507 | | - * @param array|null $overrideTraits |
508 | | - * @return FeatureStateModel |
509 | | - */ |
510 | | - public static function getIdentityFeatureState( |
511 | | - EnvironmentModel $environment, |
512 | | - IdentityModel $identity, |
513 | | - string $featureName, |
514 | | - ?array $overrideTraits = null |
515 | | - ): FeatureStateModel { |
516 | | - $featureStates = self::_getIdentityFeatureStatesDict( |
517 | | - $environment, |
518 | | - $identity, |
519 | | - $overrideTraits |
520 | | - ); |
521 | | - |
522 | | - $matchingFeatureState = null; |
523 | | - foreach ($featureStates as $name => $featureState) { |
524 | | - if ($name === $featureName) { |
525 | | - $matchingFeatureState = $featureState; |
526 | | - } |
527 | | - } |
528 | | - |
529 | | - if (empty($matchingFeatureState)) { |
530 | | - throw new FeatureStateNotFound(); |
531 | | - } |
532 | | - |
533 | | - return $matchingFeatureState; |
534 | | - } |
535 | | - |
536 | | - /** |
537 | | - * get feature states list. |
538 | | - * @param EnvironmentModel $environment |
539 | | - * @param IdentityModel $identity |
540 | | - * @param array|null $overrideTraits |
541 | | - * @return array |
542 | | - */ |
543 | | - private static function _getIdentityFeatureStatesDict( |
544 | | - EnvironmentModel $environment, |
545 | | - IdentityModel $identity, |
546 | | - ?array $overrideTraits = null |
547 | | - ): array { |
548 | | - $featureStates = []; |
549 | | - foreach ($environment->getFeatureStates() as $fs) { |
550 | | - $featureStates[$fs->getFeature()->getName()] = $fs; |
551 | | - } |
552 | | - |
553 | | - $identitySegments = SegmentEvaluator::getIdentitySegments($environment, $identity, $overrideTraits); |
554 | | - |
555 | | - foreach ($identitySegments as $is) { |
556 | | - foreach ($is->getFeatureStates() as $fs) { |
557 | | - $feature = $fs->getFeature(); |
558 | | - $existing = $featureStates[$feature->getName()]; |
559 | | - if ($existing != null && $existing->isHigherPriority($fs)) { |
560 | | - continue; |
561 | | - } |
562 | | - |
563 | | - $featureStates[$fs->getFeature()->getName()] = $fs; |
564 | | - } |
565 | | - } |
566 | | - |
567 | | - foreach ($identity->getIdentityFeatures() as $if) { |
568 | | - if (isset($featureStates[$if->getFeature()->getName()])) { |
569 | | - $featureStates[$if->getFeature()->getName()] = $if; |
570 | | - } |
571 | | - } |
572 | | - |
573 | | - return $featureStates; |
574 | | - } |
575 | 422 | } |
0 commit comments