Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
1253af6
Squashed commit of the following:
oakbani Oct 26, 2017
4018df9
:pencil2: isFeatureEnabled
oakbani Oct 27, 2017
e9b75cd
:pen: Partial
oakbani Oct 27, 2017
c848b54
:pen: Code Implementation done. Todo: Unit Tests
oakbani Oct 27, 2017
73526fb
:nit:
oakbani Oct 27, 2017
79788ee
:pen: Decision Object introduced
oakbani Oct 30, 2017
fafed36
Testing - In Progress
oakbani Oct 30, 2017
e3ed7da
:pencil2: Unit Testing 50% done
oakbani Oct 30, 2017
bd142cf
:pencil2: Unit Testing completed
oakbani Oct 31, 2017
aead650
:pen: Feature Flag Validator
oakbani Oct 31, 2017
52f6960
Merge Master
oakbani Nov 1, 2017
b6fc3d2
Merge remote-tracking branch 'remotes/optimizely/master' into getVari…
oakbani Nov 1, 2017
4e7b497
Merge remote-tracking branch 'remotes/origin/getVariationForFeature' …
oakbani Nov 1, 2017
9b841f1
:pen: Added comments
oakbani Nov 1, 2017
0e955c5
:pen: Fixed a bug due to change in decision logic
oakbani Nov 2, 2017
2abf1ad
:pen: Styling issues addressed and minor refactoring
oakbani Nov 7, 2017
6a57e5b
Merge branch 'getVariationForFeature' into FeatureFlag&Rollouts-newAPIs
oakbani Nov 7, 2017
50bf45a
Merge branch 'FeatureFlag&Rollouts-newAPIs' of https://github.com/mso…
oakbani Nov 7, 2017
ee38453
:pen: Indentation/Styling
oakbani Nov 7, 2017
eb54a9d
:memo: Addressed all nits, renamed DecisionService Decision to Featur…
oakbani Nov 9, 2017
e331e42
:memo: Final styling issues addressed
oakbani Nov 10, 2017
c2e5147
:memo: Styling fixes and made sendImpression protected
oakbani Nov 10, 2017
2a4ab5d
Merge branch 'getVariationForFeature' into FeatureFlag&Rollouts-newAPIs
oakbani Nov 13, 2017
e1cd2ca
:ear: Stacked PRs mess
oakbani Nov 13, 2017
377dae7
Merge branch 'master' into FeatureFlag&Rollouts-newAPIs
oakbani Nov 13, 2017
efeaa82
Merge remote-tracking branch 'remotes/optimizely/master' into Feature…
oakbani Nov 15, 2017
508f782
:pen: nits addressed
oakbani Nov 20, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 27 additions & 6 deletions src/Optimizely/Entity/Variation.php
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,7 @@ public function __construct($id = null, $key = null, $variableUsageInstances = [

$this->_variableUsageInstances = ConfigParser::generateMap($variableUsageInstances, null, VariableUsage::class);

if(!empty($this->_variableUsageInstances)){
foreach(array_values($this->_variableUsageInstances) as $variableUsage){
$_variableIdToVariableUsageInstanceMap[$variableUsage->getId()] = $variableUsage;
}
}
$this->generateVariableIdToVariableUsageMap();
}

/**
Expand Down Expand Up @@ -91,16 +87,41 @@ public function setKey($key)
$this->_key = $key;
}

/**
* @return [VariableUsage] Variable usage instances in this variation
*/
public function getVariables(){
return $this->_variableUsageInstances;
}

/**
* @param string Variable ID
*
* @return VariableUsage Variable usage instance corresponding to given variable ID
*/
public function getVariableUsageById($variableId){
if(isset($this->_variableIdToVariableUsageInstanceMap[$variableId]))
return $this->_variableIdToVariableUsageInstanceMap[$variableId];
else
return null;
}

/**
* @param [VariableUsage] array of variable usage instances
*/
public function setVariables($variableUsageInstances){
$this->_variableUsageInstances = ConfigParser::generateMap($variableUsageInstances, null , VariableUsage::class);
$this->generateVariableIdToVariableUsageMap();
}

/**
* Generates variable ID to Variable usage instance map
* from variable usage instances
*/
private function generateVariableIdToVariableUsageMap(){
if(!empty($this->_variableUsageInstances)){
foreach(array_values($this->_variableUsageInstances) as $variableUsage){
$_variableIdToVariableUsageInstanceMap[$variableUsage->getId()] = $variableUsage;
$this->_variableIdToVariableUsageInstanceMap[$variableUsage->getId()] = $variableUsage;
}
}
}
Expand Down
23 changes: 23 additions & 0 deletions src/Optimizely/Exceptions/InvalidFeatureVariableException.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?php
/**
* Copyright 2017, Optimizely
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

namespace Optimizely\Exceptions;


class InvalidFeatureVariableException extends OptimizelyException
{
}
Loading