Viewing file: MPCUtils.php (7.49 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Plivo\Util;
use phpDocumentor\Reflection\Types\Integer; use Plivo\Exceptions\PlivoValidationException;
class MPCUtils{ public static function validSubAccount($accountId){ if(is_string($accountId)) { throw new PlivoValidationException('Subaccount Id must be a string'); } if(strlen($accountId) != 20) { throw new PlivoValidationException('Subaccount Id should be of length 20'); } if(substr($accountId, 0, 2) != 'SA'){ throw new PlivoValidationException('Subaccount Id should start with "SA"'); } }
public static function validMultipleDestinationNos($paramName, $paramValue, $optionalArgs = []){ if(count(explode($optionalArgs['delimiter'],$paramValue))>1 && strtolower($optionalArgs['role'])!='agent'){ throw new PlivoValidationException('Multiple ' . $paramName . ' values given for role ' . $optionalArgs['role']); } elseif(count(explode($optionalArgs['delimiter'],$paramValue)) >= $optionalArgs['agentLimit']){ throw new PlivoValidationException('No of ' . $paramName . ' values provided should be lesser than ' . $optionalArgs['agentLimit']); } else{ return true; } }
public static function validMultipleDestinationIntegers($paramName, $paramValue){ $values = explode("<",$paramValue); for ($i=0;$i<sizeof($values);$i++) { if((!is_numeric($values[$i]) || is_double(1*$values[$i]))){ throw new PlivoValidationException($paramName. ' Destination Values must be integers'); } } }
public static function validParam($paramName, $paramValue, $expectedTypes = null, $mandatory = false, $expectedValues = null){ if($mandatory and !$paramValue){ throw new PlivoValidationException($paramName . " is a required parameter"); } if(!$paramValue){ return true; } if(!$expectedValues){ return self::expectedType($paramName, $expectedTypes, $paramValue); } if(self::expectedValue($paramName, $expectedValues, $paramValue)){ return true; } return true; }
public static function expectedType($paramName, $expectedTypes, $paramValue){ if(!$expectedTypes){ return true; } if(!in_array(gettype($paramValue), $expectedTypes)){ throw new PlivoValidationException($paramName . ": Expected one of " . implode(" ",$expectedTypes) . " but received " . gettype($paramValue) . " instead"); } return true; }
public static function expectedValue($paramName, $expectedValues, $paramValue){ if(!$expectedValues){ return true; } if(is_array($expectedValues)){ if(!in_array($paramValue, $expectedValues)){ throw new PlivoValidationException($paramName . ': Expected one of ' . implode(" ",$expectedValues) . ' but received ' . $paramValue . ' instead'); } return true; } else{ if($expectedValues != $paramValue){ throw new PlivoValidationException($paramName . ': Expected ' . $expectedValues . ' but received ' . $paramValue . ' instead'); } return true; } }
public static function multiValidParam($paramName, $paramValue, $expectedTypes = null, $mandatory = false, $expectedValues = null, $makeLowerCase = false, $seperator = ','){ if($mandatory and !$paramValue){ throw new PlivoValidationException($paramName . 'is a required parameter'); } if(!$paramValue){ return true; } if($makeLowerCase){ $paramValue = strtolower($paramValue); } else{ $paramValue = strtolower($paramValue); } $values = explode($seperator, $paramValue); if($expectedValues){ for($i = 0; $i < count($values); $i++){ self::expectedValue($paramName, $expectedValues, trim($values[$i])); } } return true; }
public static function validUrl($paramName, $paramValue, $mandatory = false){ if($mandatory && !$paramValue){ throw new PlivoValidationException($paramName . 'is a required parameter'); } if(!$paramValue){ return true; } if(!filter_var($paramValue, FILTER_VALIDATE_URL)){ throw new PlivoValidationException("Invalid URL : Doesn't satisfy the URL format"); } else{ return true; } }
public static function isOneAmongStringUrl($paramName, $paramValue, $mandatory = false, $expectedValues = null){ if($mandatory && !$paramValue){ throw new PlivoValidationException($paramName . 'is a required parameter'); } if(!$paramValue){ return true; } if(in_array(strtolower($paramValue),$expectedValues) || in_array(strtoupper($paramValue),$expectedValues)){ return true; } elseif (self::validUrl($paramName, $paramValue)){ return true; } else{ throw new PlivoValidationException($paramName . ' neither a valid URL nor in the expected values'); } }
public static function validDateFormat($paramName, $paramValue, $mandatory = false){ if($mandatory && !$paramValue){ throw new PlivoValidationException($paramName . 'is a required parameter'); } if(!$paramValue){ return true; } if(!preg_match('/^(\d{4}\-\d{2}\-\d{2}\ \d{2}\:\d{2}(\:\d{2}(\.\d{1,6})?)?)$/ix', $paramValue)){ throw new PlivoValidationException("Invalid Date : Doesn't satisfy the date format"); } else{ return true; } }
public static function validRange($paramName, $paramValue, $mandatory = false, $lowerBound = null, $upperBound = null){ if($mandatory and !$paramValue){ throw new PlivoValidationException($paramName . " is a required parameter"); } if(!isset($paramValue)){ return true; } if(!self::expectedType($paramName, ['integer'], $paramValue)){ throw new PlivoValidationException($paramName . ": Expected an Integer but received " . gettype($paramValue) . " instead"); } if(!is_null($lowerBound) and !is_null($upperBound)){ if($paramValue < $lowerBound || $paramValue > $upperBound){ throw new PlivoValidationException($paramName . " ranges between " . $lowerBound . " and " . $upperBound); } if($paramValue >= $lowerBound && $paramValue <= $upperBound){ return true; } } elseif (!is_null($lowerBound)){ if($paramValue < $lowerBound){ throw new PlivoValidationException($paramName . " should be greater than " . $lowerBound); } if($paramValue >= $lowerBound){ return true; } } elseif(!is_null($upperBound)){ if($paramValue > $upperBound){ throw new PlivoValidationException($paramName . " should be lesser than " . $upperBound); } if($paramValue <= $upperBound){ return true; } } else{ throw new PlivoValidationException("Any one or both of lower and upper bound should be provided"); } return true; } }
|