Example #1
0
 /**
  * Build a new route and add it to the Map.
  *
  * @param array  $methods  Array containing http methods.
  *                         The supported methods are defined by Request::METHOD_* constants
  * @param string $routeStr A string that may contain parameters
  *                         that will be passed to the controller.
  *                         For example:
  *                         - /home
  *                         - /product/{productId}
  *                         - /tag/{slug}
  * @param array  $info     An array containing the following indexes:
  *                         - controller: Name of a controller class
  *                         - action: Method of the defined controller (Default: index)
  *                         - alias: Short name of the route, for easy referencing
  */
 public static function create(array $methods, string $routeStr, array $info)
 {
     $middlewareList = isset($info['middleware']) ? (array) $info['middleware'] : [];
     array_walk_recursive(self::$middlewareGroupStack, function ($middleware) use(&$middlewareList) {
         $middlewareList[] = $middleware;
     });
     $route = new self();
     $route->setMethods($methods);
     $route->setAction(isset($info['action']) ? $info['action'] : 'index');
     $route->setAlias(isset($info['alias']) ? $info['alias'] : '');
     $route->setMiddlewareList($middlewareList);
     $route->setControllerName($info['controller']);
     $route->setMethods($methods);
     $route->setRouteStr($routeStr);
     Map::addRoute($route);
 }
Example #2
0
 /**
  * Instantiates a new instance of this object from a string
  *
  * @param String $string The string to parse into an object
  * @return \r8\Query\From\Table
  */
 public static function fromString($string)
 {
     list($string, $alias) = \r8\Query::parseSQLAlias($string);
     // Split the name into the table and database
     $parsed = \r8\Query::parseSQLName($string);
     // Instantiate with the table name
     $field = new self(array_pop($parsed));
     // Set the database if we found one
     if (count($parsed) > 0) {
         $field->setDatabase(array_pop($parsed));
     }
     // Now load in the alias
     if ($alias) {
         $field->setAlias($alias);
     }
     return $field;
 }
 /**
  * @param $parameters
  * @param Environment $environment
  * @param bool        $skipSignature skip signature check true / false
  *
  * @return Response
  *
  * @throws InvalidArgumentException
  * @throws NotValidSignatureException
  */
 public static function create($parameters, Environment $environment, $skipSignature = false)
 {
     $response = new self();
     $parameters = array_change_key_case($parameters, CASE_UPPER);
     $missing = array_diff(Parameter::$requiredPostSaleParameters, array_keys($parameters));
     if (count($missing) > 0) {
         throw new InvalidArgumentException(sprintf('Missing parameter(s) %s of PostFinance post-sale response', implode(', ', $missing)));
     }
     if (!$skipSignature) {
         $string = '';
         $p = Parameter::$postSaleParameters;
         sort($p);
         foreach ($p as $key) {
             if ($key === Parameter::SIGNATURE || !isset($parameters[$key]) || $parameters[$key] === '') {
                 continue;
             }
             $string .= sprintf('%s=%s%s', $key, $parameters[$key], $environment->getShaOut());
         }
         if (strtoupper(hash($environment->getHashAlgorithm(), $string)) !== $parameters[Parameter::SIGNATURE]) {
             throw new NotValidSignatureException();
         }
     }
     $response->setOrderId($parameters[Parameter::ORDER_ID])->setAmount($parameters[Parameter::AMOUNT])->setCurrency($parameters[Parameter::CURRENCY])->setAcceptance($parameters[Parameter::ACCEPTANCE])->setStatus($parameters[Parameter::STATUS])->setCardNumber($parameters[Parameter::CARD_NUMBER])->setPaymentId($parameters[Parameter::PAYMENT_ID])->setError($parameters[Parameter::NC_ERROR])->setCardExpirationDate($parameters[Parameter::EXPIRATION_DATE])->setTransactionDate(\DateTime::createFromFormat('m/d/Y', $parameters[Parameter::TRANSACTION_DATE]))->setCardHolderName($parameters[Parameter::CARD_HOLDER])->setIp($parameters[Parameter::IP]);
     if (isset($parameters[Parameter::ALIAS]) && !empty($parameters[Parameter::ALIAS])) {
         $response->setAlias($parameters[Parameter::ALIAS]);
     }
     switch ($parameters['PM']) {
         case 'CreditCard':
             $response->setPaymentMethod(PaymentMethod::CREDITCARD);
             switch ($parameters['BRAND']) {
                 case 'MasterCard':
                     $response->setBrand(Brand::MASTERCARD);
                     break;
                 case 'Visa':
                     $response->setBrand(Brand::VISA);
                     break;
             }
             break;
         case 'PostFinance e-finance':
             $response->setPaymentMethod(PaymentMethod::POSTFINANCE_EFINANCE);
             $response->setBrand(Brand::POSTFINANCE_EFINANCE);
             break;
         case 'PostFinance Card':
             $response->setPaymentMethod(PaymentMethod::POSTFINANCE_CARD);
             $response->setBrand(Brand::POSTFINANCE_CARD);
             break;
     }
     return $response;
 }