From 34e58b9e2330768d53e8b9b11588f7c7fa904ca6 Mon Sep 17 00:00:00 2001 From: Tomer Parizer Date: Tue, 16 Jun 2026 15:32:27 +0100 Subject: [PATCH 1/3] DEV-123965 - fix composer analyse --- phpstan-baseline.neon | 43 ------------------- phpstan.neon | 3 -- .../Model/Notification.php | 1 + .../OrderWebhook/Model/AbstractModel.php | 2 + src/Riskified/OrderWebhook/Model/LineItem.php | 1 - .../Transport/AbstractTransport.php | 5 ++- src/Riskified/autoloader.php | 1 + 7 files changed, 7 insertions(+), 49 deletions(-) delete mode 100644 phpstan-baseline.neon diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon deleted file mode 100644 index 82815c7..0000000 --- a/phpstan-baseline.neon +++ /dev/null @@ -1,43 +0,0 @@ -parameters: - ignoreErrors: - - - message: '#^PHPDoc tag @throws with type Riskified\\DecisionNotification\\Model\\NotificationException is not subtype of Throwable$#' - identifier: throws.notThrowable - count: 1 - path: src/Riskified/DecisionNotification/Model/Notification.php - - - - message: '#^Unreachable statement \- code above always terminates\.$#' - identifier: deadCode.unreachable - count: 2 - path: src/Riskified/OrderWebhook/Model/AbstractModel.php - - - - message: '#^Array has 2 duplicate keys with value ''country_code'' \(''country_code'', ''country_code''\)\.$#' - identifier: array.duplicateKey - count: 1 - path: src/Riskified/OrderWebhook/Model/LineItem.php - - - - message: '#^Method Riskified\\OrderWebhook\\Transport\\AbstractTransport\:\:send_checkout\(\) invoked with 3 parameters, 2 required\.$#' - identifier: arguments.count - count: 1 - path: src/Riskified/OrderWebhook/Transport/AbstractTransport.php - - - - message: '#^PHPDoc tag @param has invalid value \(hash object named ''settings'' with a key\-value structure\)\: Unexpected token "object", expected variable at offset 59 on line 3$#' - identifier: phpDoc.parseError - count: 1 - path: src/Riskified/OrderWebhook/Transport/AbstractTransport.php - - - - message: '#^Unreachable statement \- code above always terminates\.$#' - identifier: deadCode.unreachable - count: 1 - path: src/Riskified/OrderWebhook/Transport/AbstractTransport.php - - - - message: '#^Parameter \#2 \$throw of function spl_autoload_register expects bool, null given\.$#' - identifier: argument.type - count: 1 - path: src/Riskified/autoloader.php diff --git a/phpstan.neon b/phpstan.neon index d04da31..8d44594 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -1,6 +1,3 @@ -includes: - - phpstan-baseline.neon - parameters: level: 5 paths: diff --git a/src/Riskified/DecisionNotification/Model/Notification.php b/src/Riskified/DecisionNotification/Model/Notification.php index 1b182bc..be0e111 100644 --- a/src/Riskified/DecisionNotification/Model/Notification.php +++ b/src/Riskified/DecisionNotification/Model/Notification.php @@ -77,6 +77,7 @@ class Notification { * @param $body string The raw body of the Request * @throws NotificationException on issues with the request */ + // @phpstan-ignore throws.notThrowable public function __construct($signature, $headers, $body) { $this->signature = $signature; $this->headers = $headers; diff --git a/src/Riskified/OrderWebhook/Model/AbstractModel.php b/src/Riskified/OrderWebhook/Model/AbstractModel.php index fec16ca..fbe8209 100644 --- a/src/Riskified/OrderWebhook/Model/AbstractModel.php +++ b/src/Riskified/OrderWebhook/Model/AbstractModel.php @@ -181,9 +181,11 @@ private function validate_key($key, $types, $value) { break; case 'object': return $this->validate_object($key, $types, $value); + // @phpstan-ignore deadCode.unreachable break; case 'array': return $this->validate_array($key, $types, $value); + // @phpstan-ignore deadCode.unreachable break; } return array(); diff --git a/src/Riskified/OrderWebhook/Model/LineItem.php b/src/Riskified/OrderWebhook/Model/LineItem.php index f29bf4f..8d2771e 100644 --- a/src/Riskified/OrderWebhook/Model/LineItem.php +++ b/src/Riskified/OrderWebhook/Model/LineItem.php @@ -55,7 +55,6 @@ class LineItem extends AbstractModel { /* fields for ticket industry */ 'section' => 'string optional', 'event_date' => 'date optional', - 'country_code' => 'string optional', 'latitude' => 'string optional', 'longitude' => 'string optional', diff --git a/src/Riskified/OrderWebhook/Transport/AbstractTransport.php b/src/Riskified/OrderWebhook/Transport/AbstractTransport.php index 6dcfccd..6b70b9e 100644 --- a/src/Riskified/OrderWebhook/Transport/AbstractTransport.php +++ b/src/Riskified/OrderWebhook/Transport/AbstractTransport.php @@ -66,7 +66,7 @@ public function __construct($signature, $url = null) { /** * Update a merchant's settings - * @param hash object named 'settings' with a key-value structure + * @param $settings object named 'settings' with a key-value structure * @return object Response object * @throws \Riskified\Common\Exception\BaseException on any issue */ @@ -166,7 +166,7 @@ public function chargebackOrder($chargeback) { } public function advise(Checkout $checkout) { - return $this->send_checkout($checkout, 'advise', false); + return $this->send_checkout($checkout, 'advise'); } public function checkout_decide(Order $order) { @@ -280,6 +280,7 @@ protected function send_account_event($accountEvent, $endpoint, $enforce_require protected function send_settings($settings) { $json = $settings->toJson(); return $this->send_json_request($json, 'settings'); + // @phpstan-ignore deadCode.unreachable return null; } diff --git a/src/Riskified/autoloader.php b/src/Riskified/autoloader.php index 72b6daf..8e4d240 100644 --- a/src/Riskified/autoloader.php +++ b/src/Riskified/autoloader.php @@ -29,4 +29,5 @@ function riskifiedAutoload($class) { } // Register Riskified autoloader into the SPL autoloading stack (in order to support multiple autoloaders) +// @phpstan-ignore argument.type spl_autoload_register('riskifiedAutoload',null,true); From b32e74af1e8e62b9e4b6c9b6d7a03f8a69e0a3e4 Mon Sep 17 00:00:00 2001 From: Tomer Parizer Date: Tue, 16 Jun 2026 15:50:05 +0100 Subject: [PATCH 2/3] DEV-123965 - fix composer lint --- src/Riskified/Common/Env.php | 3 +- .../Common/Exception/BaseException.php | 8 ++- src/Riskified/Common/Riskified.php | 11 ++-- .../Common/Signature/HttpDataSignature.php | 9 +-- src/Riskified/Common/Validations.php | 3 +- .../Exception/AuthorizationException.php | 12 ++-- .../Exception/BadHeaderException.php | 12 ++-- .../Exception/BadPostJsonException.php | 8 ++- .../Exception/NotificationException.php | 18 +++--- .../Model/Notification.php | 17 +++-- .../ClassMismatchPropertyException.php | 8 ++- .../OrderWebhook/Exception/CurlException.php | 8 ++- .../FormatMismatchPropertyException.php | 8 ++- .../Exception/InvalidPropertyException.php | 8 ++- .../Exception/MalformedJsonException.php | 14 ++-- .../Exception/MissingPropertyException.php | 8 ++- .../Exception/MultiplePropertiesException.php | 15 +++-- .../Exception/PropertyException.php | 25 ++++---- .../TypeMismatchPropertyException.php | 8 ++- .../Exception/UnsuccessfulActionException.php | 17 ++--- .../OrderWebhook/Model/AbstractModel.php | 64 ++++++++++++------- .../OrderWebhook/Model/AccountBalance.php | 6 +- .../OrderWebhook/Model/AccountIdentity.php | 6 +- src/Riskified/OrderWebhook/Model/Address.php | 6 +- .../OrderWebhook/Model/Attribute.php | 8 ++- .../Model/AuthenticationResult.php | 7 +- .../OrderWebhook/Model/AuthorizationError.php | 7 +- .../Model/ChargeFreePaymentDetails.php | 8 ++- .../OrderWebhook/Model/ChargebackDetails.php | 8 ++- src/Riskified/OrderWebhook/Model/Checkout.php | 7 +- .../OrderWebhook/Model/ClientDetails.php | 8 ++- .../OrderWebhook/Model/ContactMethod.php | 6 +- src/Riskified/OrderWebhook/Model/Customer.php | 6 +- .../OrderWebhook/Model/CustomerCreate.php | 6 +- .../OrderWebhook/Model/CustomerReachOut.php | 6 +- .../OrderWebhook/Model/CustomerUpdate.php | 6 +- src/Riskified/OrderWebhook/Model/Decision.php | 8 ++- .../OrderWebhook/Model/DecisionDetails.php | 9 +-- .../OrderWebhook/Model/DiscountCode.php | 8 ++- .../OrderWebhook/Model/DisputeDetails.php | 6 +- .../OrderWebhook/Model/Fulfillment.php | 8 ++- .../OrderWebhook/Model/FulfillmentDetails.php | 8 ++- src/Riskified/OrderWebhook/Model/LineItem.php | 58 +++++++++-------- src/Riskified/OrderWebhook/Model/Login.php | 6 +- .../OrderWebhook/Model/LoginStatus.php | 6 +- src/Riskified/OrderWebhook/Model/Logout.php | 6 +- .../OrderWebhook/Model/MerchantSettings.php | 8 ++- src/Riskified/OrderWebhook/Model/Order.php | 8 ++- .../OrderWebhook/Model/OrderCancellation.php | 8 ++- .../OrderWebhook/Model/OrderChargeback.php | 8 ++- .../OrderWebhook/Model/Passenger.php | 4 +- .../OrderWebhook/Model/PaymentDetails.php | 6 +- src/Riskified/OrderWebhook/Model/Policy.php | 8 ++- .../OrderWebhook/Model/Recipient.php | 11 ++-- src/Riskified/OrderWebhook/Model/Redeem.php | 6 +- src/Riskified/OrderWebhook/Model/Refund.php | 8 ++- .../OrderWebhook/Model/RefundDetails.php | 8 ++- .../Model/ResetPasswordRequest.php | 6 +- src/Riskified/OrderWebhook/Model/Seller.php | 9 +-- .../OrderWebhook/Model/SessionDetails.php | 6 +- .../OrderWebhook/Model/ShippingLine.php | 6 +- .../OrderWebhook/Model/SocialDetails.php | 9 +-- src/Riskified/OrderWebhook/Model/TaxLine.php | 8 ++- .../OrderWebhook/Model/Verification.php | 6 +- .../Model/VerificationSessionDetails.php | 6 +- .../OrderWebhook/Model/WishlistChanges.php | 6 +- .../Transport/AbstractTransport.php | 30 +++++---- .../OrderWebhook/Transport/CurlTransport.php | 19 ++++-- src/Riskified/autoloader.php | 8 ++- src/Riskified/polyfill.php | 1 + .../Model/NotificationTest.php | 60 ++++++----------- .../Model/AbstractModelValidationTest.php | 21 ++---- tests/OrderWebhook/Model/AddressTest.php | 15 ++--- .../Model/AuthenticationResultTest.php | 12 ++-- tests/OrderWebhook/Model/CheckoutTest.php | 9 +-- .../Model/MerchantSettingsTest.php | 9 +-- tests/OrderWebhook/Model/OrderTest.php | 19 ++---- .../OrderWebhook/Model/OrderTestFixtures.php | 6 +- .../OrderWebhook/Model/PaymentDetailsTest.php | 18 ++---- tests/OrderWebhook/Model/VerificationTest.php | 15 ++--- .../Transport/AbstractTransportTest.php | 30 +++------ 81 files changed, 508 insertions(+), 417 deletions(-) diff --git a/src/Riskified/Common/Env.php b/src/Riskified/Common/Env.php index a870aec..a3bc100 100644 --- a/src/Riskified/Common/Env.php +++ b/src/Riskified/Common/Env.php @@ -1,4 +1,5 @@ 'sandbox.riskified.com', diff --git a/src/Riskified/Common/Signature/HttpDataSignature.php b/src/Riskified/Common/Signature/HttpDataSignature.php index 59750d5..c67377f 100644 --- a/src/Riskified/Common/Signature/HttpDataSignature.php +++ b/src/Riskified/Common/Signature/HttpDataSignature.php @@ -1,4 +1,5 @@ -header; + return parent::customMessage() . + ', Header: ' . $this->header; } -} \ No newline at end of file +} diff --git a/src/Riskified/DecisionNotification/Exception/BadPostJsonException.php b/src/Riskified/DecisionNotification/Exception/BadPostJsonException.php index 604c47e..a9e4956 100644 --- a/src/Riskified/DecisionNotification/Exception/BadPostJsonException.php +++ b/src/Riskified/DecisionNotification/Exception/BadPostJsonException.php @@ -1,4 +1,7 @@ -headers; $hmacKey = HttpDataSignature::HMAC_HEADER_NAME; if (isset($headers[$hmacKey])) { - $headers[$hmacKey] = '***'.substr($headers[$hmacKey], -3); + $headers[$hmacKey] = '***' . substr($headers[$hmacKey], -3); } - return '[ '.join(', ', $headers).' ]'; + return '[ ' . join(', ', $headers) . ' ]'; } protected function customMessage() { - return 'Headers: '.$this->headersString(). - ', Body: '.$this->body; + return 'Headers: ' . $this->headersString() . + ', Body: ' . $this->body; } - - -} \ No newline at end of file +} diff --git a/src/Riskified/DecisionNotification/Model/Notification.php b/src/Riskified/DecisionNotification/Model/Notification.php index be0e111..8a4a3c2 100644 --- a/src/Riskified/DecisionNotification/Model/Notification.php +++ b/src/Riskified/DecisionNotification/Model/Notification.php @@ -1,4 +1,5 @@ -headers[$signature::HMAC_HEADER_NAME]; $local_hmac = $signature->calc_hmac($this->body); // phpcs:ignore PHPCompatibility.FunctionUse.NewFunctions.hash_equalsFound -- provided on PHP < 5.6 by symfony/polyfill-php56 - if (!hash_equals($remote_hmac, $local_hmac)) + if (!hash_equals($remote_hmac, $local_hmac)) { throw new Exception\AuthorizationException($this->headers, $this->body); + } } /** @@ -106,12 +109,14 @@ protected function test_authorization() { */ protected function parse_body() { $body = json_decode($this->body, true); - if (!isset($body["order"])) + if (!isset($body["order"])) { throw new Exception\BadPostJsonException($this->headers, $this->body); + } $order = $body["order"]; - if (!isset($order["id"]) || !isset($order["status"])) + if (!isset($order["id"]) || !isset($order["status"])) { throw new Exception\BadPostJsonException($this->headers, $this->body); + } //foreach($order as $key => $value) // $this->$key = $value; @@ -122,7 +127,7 @@ protected function parse_body() { $this->riskIndicators = isset($order["risk_indicators"]) ? $order["risk_indicators"] : array(); $this->description = $order["description"]; - if (isset($order["category"])) { + if (isset($order["category"])) { $this->category = $order["category"]; } diff --git a/src/Riskified/OrderWebhook/Exception/ClassMismatchPropertyException.php b/src/Riskified/OrderWebhook/Exception/ClassMismatchPropertyException.php index 8d22bc5..83061fb 100644 --- a/src/Riskified/OrderWebhook/Exception/ClassMismatchPropertyException.php +++ b/src/Riskified/OrderWebhook/Exception/ClassMismatchPropertyException.php @@ -1,4 +1,7 @@ -status. - ', Body: '.$this->body; + return 'Status Code: ' . $this->status . + ', Body: ' . $this->body; } - - -} \ No newline at end of file +} diff --git a/src/Riskified/OrderWebhook/Exception/MissingPropertyException.php b/src/Riskified/OrderWebhook/Exception/MissingPropertyException.php index 496ed31..d1a467f 100644 --- a/src/Riskified/OrderWebhook/Exception/MissingPropertyException.php +++ b/src/Riskified/OrderWebhook/Exception/MissingPropertyException.php @@ -1,4 +1,7 @@ -count_string().$sep.join($sep, $this->exceptions).PHP_EOL; + $sep = PHP_EOL . ' '; + return $this->count_string() . $sep . join($sep, $this->exceptions) . PHP_EOL; } protected function count_string() { - return 'Exception count: '.count($this->exceptions); + return 'Exception count: ' . count($this->exceptions); } - -} \ No newline at end of file +} diff --git a/src/Riskified/OrderWebhook/Exception/PropertyException.php b/src/Riskified/OrderWebhook/Exception/PropertyException.php index 05d5252..4d0ad81 100644 --- a/src/Riskified/OrderWebhook/Exception/PropertyException.php +++ b/src/Riskified/OrderWebhook/Exception/PropertyException.php @@ -1,4 +1,5 @@ -customMessage(); + return get_class($this) . ': ' . $this->customMessage(); } protected function propertyName() { - return $this->className.'->'.$this->propertyName; + return $this->className . '->' . $this->propertyName; } protected function propertyValue() { - if($this->value) { + if ($this->value) { return $this->value; } return ''; } protected function propertyTypes() { - if($this->types) { - return join(', ',$this->types); + if ($this->types) { + return join(', ', $this->types); } return ''; } protected function customMessage() { - return 'Property Name: '.$this->propertyName(). - ', Property Value: '.print_r($this->propertyValue(), true). - ', Property Type: '.$this->propertyTypes(); + return 'Property Name: ' . $this->propertyName() . + ', Property Value: ' . print_r($this->propertyValue(), true) . + ', Property Type: ' . $this->propertyTypes(); } - -} \ No newline at end of file +} diff --git a/src/Riskified/OrderWebhook/Exception/TypeMismatchPropertyException.php b/src/Riskified/OrderWebhook/Exception/TypeMismatchPropertyException.php index 9fce1e1..dce5972 100644 --- a/src/Riskified/OrderWebhook/Exception/TypeMismatchPropertyException.php +++ b/src/Riskified/OrderWebhook/Exception/TypeMismatchPropertyException.php @@ -1,4 +1,7 @@ -statusCode. - ', Error was: '.$this->jsonResponse; + return 'Http Status Code: ' . $this->statusCode . + ', Error was: ' . $this->jsonResponse; } - function __get($name) - { + // phpcs:ignore Squiz.Scope.MethodScope.Missing -- visibility omitted for backward compatibility + function __get($name) { return isset($this->$name) ? $this->$name : null; } - - -} \ No newline at end of file +} diff --git a/src/Riskified/OrderWebhook/Model/AbstractModel.php b/src/Riskified/OrderWebhook/Model/AbstractModel.php index fbe8209..be77ea7 100644 --- a/src/Riskified/OrderWebhook/Model/AbstractModel.php +++ b/src/Riskified/OrderWebhook/Model/AbstractModel.php @@ -1,4 +1,5 @@ - $value) { - if (!array_key_exists($key, $this->_fields)) + if (!array_key_exists($key, $this->_fields)) { throw new Exception\InvalidPropertyException($this, $key); + } - if($value instanceof \DateTime) { + if ($value instanceof \DateTime) { $value = $value->format('c'); } $this->{$key} = $value; @@ -83,14 +86,14 @@ public function __get($key) { } else { throw new Exception\InvalidPropertyException($this, $key); } - } + } /** * Get the short name of the model, ie. without the namespace prefix * @return string Short name of the model */ public function __toString() { - $parts = explode('\\',get_class($this)); + $parts = explode('\\', get_class($this)); return end($parts); } @@ -118,10 +121,11 @@ public function toXml() { * @return bool True if object hierarchy is valid * @throws \Riskified\OrderWebhook\Exception\MultiplePropertiesException on any or multiple issues */ - public function validate($enforce_required_keys=true) { + public function validate($enforce_required_keys = true) { $exceptions = $this->validation_exceptions($enforce_required_keys); - if ($exceptions) + if ($exceptions) { throw new Exception\MultiplePropertiesException($exceptions); + } return true; } @@ -130,11 +134,12 @@ public function validate($enforce_required_keys=true) { * @param $enforce_required_keys boolean if FALSE then skip validation of missing fields, only report format exceptions * @return array All property validation issues or empty array if no issues found */ - protected function validation_exceptions($enforce_required_keys=true) { + protected function validation_exceptions($enforce_required_keys = true) { $this->_enforce_required_keys = $enforce_required_keys; $exceptions = array(); foreach ($this->_fields as $propertyName => $constraints) { $types = explode(' ', $constraints); + // phpcs:ignore Generic.PHP.ForbiddenFunctions.Found -- is_null() is intentional here if (is_null($this->$propertyName)) { if ($this->_enforce_required_keys && end($types) != 'optional') { $exceptions[] = new Exception\MissingPropertyException($this, $propertyName, $types); @@ -158,26 +163,32 @@ private function validate_key($key, $types, $value) { $exception = array(new Exception\TypeMismatchPropertyException($this, $key, $types, $value)); switch ($type) { case 'string': - if (!is_string($value)) + if (!is_string($value)) { return $exception; - if (count($types) > 1 && $types[1][0] == '/' && !preg_match($types[1], $value)) + } + if (count($types) > 1 && $types[1][0] == '/' && !preg_match($types[1], $value)) { return array(new Exception\FormatMismatchPropertyException($this, $key, $types, $value)); + } break; case 'number': - if (!preg_match('/^[0-9]+$/', $value)) + if (!preg_match('/^[0-9]+$/', $value)) { return $exception; + } break; case 'float': - if (!is_numeric($value)) + if (!is_numeric($value)) { return $exception; + } break; case 'boolean': - if (!is_bool($value)) + if (!is_bool($value)) { return $exception; + } break; case 'date': - if (!$this->is_date($value)) + if (!$this->is_date($value)) { return $exception; + } break; case 'object': return $this->validate_object($key, $types, $value); @@ -199,11 +210,12 @@ private function validate_key($key, $types, $value) { * @return array All validation issues or null if no issues found */ private function validate_object($key, $types, $object) { - if (!is_object($object)) + if (!is_object($object)) { return array(new Exception\TypeMismatchPropertyException($this, $key, $types, $object)); + } $parts = explode('\\', get_class($object)); - $class = '\\'.end($parts); + $class = '\\' . end($parts); if (count($types) > 1 && $types[1][0] == '\\' && $class != $types[1]) { return array(new Exception\ClassMismatchPropertyException($this, $key, $types, $object)); @@ -221,7 +233,7 @@ private function validate_object($key, $types, $object) { */ private function validate_array($key, $types, $array) { - $childTypes = array_slice($types,1); // remove the 'array' and validate each element by defined type+regex that come after + $childTypes = array_slice($types, 1); // remove the 'array' and validate each element by defined type+regex that come after if (is_array($array)) { $exceptions = array(); foreach ($array as $element) { @@ -256,13 +268,17 @@ private function to_array() { */ private function process_array($array) { unset($array['_fields']); - foreach($array as $key => $value) { - if (is_null($value)) + foreach ($array as $key => $value) { + // phpcs:ignore Generic.PHP.ForbiddenFunctions.Found -- is_null() is intentional here + if (is_null($value)) { unset($array[$key]); - if (is_object($value)) + } + if (is_object($value)) { $array[$key] = $value->to_array(); - if (is_array($value)) + } + if (is_array($value)) { $array[$key] = $this->process_array($value); + } } return $array; } @@ -275,10 +291,10 @@ private function process_array($array) { private function array_to_xml($order, &$xml_order_info) { foreach ($order as $key => $value) { if (is_array($value)) { - if (!is_numeric($key)){ + if (!is_numeric($key)) { $subnode = $xml_order_info->addChild($key); $this->array_to_xml($value, $subnode); - } else{ + } else { $subnode = $xml_order_info->addChild('item$key'); $this->array_to_xml($value, $subnode); } diff --git a/src/Riskified/OrderWebhook/Model/AccountBalance.php b/src/Riskified/OrderWebhook/Model/AccountBalance.php index fbad3e3..65925d5 100644 --- a/src/Riskified/OrderWebhook/Model/AccountBalance.php +++ b/src/Riskified/OrderWebhook/Model/AccountBalance.php @@ -1,4 +1,7 @@ - 'float', 'service_name' => 'string /^(:?plaid|mx|stripe|truelayer|klarna|visa|mastercard|yodlee)$/', diff --git a/src/Riskified/OrderWebhook/Model/AccountIdentity.php b/src/Riskified/OrderWebhook/Model/AccountIdentity.php index 341fc89..2b4a910 100644 --- a/src/Riskified/OrderWebhook/Model/AccountIdentity.php +++ b/src/Riskified/OrderWebhook/Model/AccountIdentity.php @@ -1,4 +1,7 @@ - 'array string optional', 'addresses' => 'array object \Address optional', diff --git a/src/Riskified/OrderWebhook/Model/Address.php b/src/Riskified/OrderWebhook/Model/Address.php index 18226e3..eaa6c55 100644 --- a/src/Riskified/OrderWebhook/Model/Address.php +++ b/src/Riskified/OrderWebhook/Model/Address.php @@ -1,4 +1,7 @@ - 'string optional', 'first_name' => 'string', diff --git a/src/Riskified/OrderWebhook/Model/Attribute.php b/src/Riskified/OrderWebhook/Model/Attribute.php index fb2add4..34eb2ba 100644 --- a/src/Riskified/OrderWebhook/Model/Attribute.php +++ b/src/Riskified/OrderWebhook/Model/Attribute.php @@ -1,4 +1,7 @@ - 'string', 'value' => 'string' ); -} \ No newline at end of file +} diff --git a/src/Riskified/OrderWebhook/Model/AuthenticationResult.php b/src/Riskified/OrderWebhook/Model/AuthenticationResult.php index c0b0f00..6556a26 100644 --- a/src/Riskified/OrderWebhook/Model/AuthenticationResult.php +++ b/src/Riskified/OrderWebhook/Model/AuthenticationResult.php @@ -1,4 +1,7 @@ - 'date optional', 'eci' => 'string', @@ -31,5 +33,4 @@ class AuthenticationResult extends Order { 'TRA_exemption' => 'boolean optional', 'trans_status_reason' => 'string optional', ); - } diff --git a/src/Riskified/OrderWebhook/Model/AuthorizationError.php b/src/Riskified/OrderWebhook/Model/AuthorizationError.php index ec00524..df713d4 100644 --- a/src/Riskified/OrderWebhook/Model/AuthorizationError.php +++ b/src/Riskified/OrderWebhook/Model/AuthorizationError.php @@ -1,4 +1,7 @@ - 'date', 'error_code' => 'string', 'drop_off' => 'boolean optional', 'message' => 'string optional' ); - } diff --git a/src/Riskified/OrderWebhook/Model/ChargeFreePaymentDetails.php b/src/Riskified/OrderWebhook/Model/ChargeFreePaymentDetails.php index 2e4f9fb..8103d20 100644 --- a/src/Riskified/OrderWebhook/Model/ChargeFreePaymentDetails.php +++ b/src/Riskified/OrderWebhook/Model/ChargeFreePaymentDetails.php @@ -1,4 +1,7 @@ - 'string', 'amount' => 'string' ); -} \ No newline at end of file +} diff --git a/src/Riskified/OrderWebhook/Model/ChargebackDetails.php b/src/Riskified/OrderWebhook/Model/ChargebackDetails.php index 03e4232..ba7ff17 100644 --- a/src/Riskified/OrderWebhook/Model/ChargebackDetails.php +++ b/src/Riskified/OrderWebhook/Model/ChargebackDetails.php @@ -1,4 +1,7 @@ - 'string', 'chargeback_at' => 'datetime', @@ -40,4 +42,4 @@ class ChargebackDetails extends AbstractModel { 'cardholder' => 'string', 'message' => 'string' ); -} \ No newline at end of file +} diff --git a/src/Riskified/OrderWebhook/Model/Checkout.php b/src/Riskified/OrderWebhook/Model/Checkout.php index 012ba2e..d0c4242 100644 --- a/src/Riskified/OrderWebhook/Model/Checkout.php +++ b/src/Riskified/OrderWebhook/Model/Checkout.php @@ -1,4 +1,7 @@ - 'string optional', 'user_agent' => 'string optional', @@ -29,4 +31,4 @@ class ClientDetails extends AbstractModel { 'browser_ip' => 'string /^(:?[0-9a-f]{0,5}[:\.])+[0-9a-f]{0,4}$/i optional', 'session_hash' => 'string optional' ); -} \ No newline at end of file +} diff --git a/src/Riskified/OrderWebhook/Model/ContactMethod.php b/src/Riskified/OrderWebhook/Model/ContactMethod.php index f40289c..83069c0 100644 --- a/src/Riskified/OrderWebhook/Model/ContactMethod.php +++ b/src/Riskified/OrderWebhook/Model/ContactMethod.php @@ -1,4 +1,7 @@ - 'string /^(:?email|website_chat|facebook|phone|other)$/', 'email' => 'string optional', diff --git a/src/Riskified/OrderWebhook/Model/Customer.php b/src/Riskified/OrderWebhook/Model/Customer.php index 2cfd3de..7415ddd 100644 --- a/src/Riskified/OrderWebhook/Model/Customer.php +++ b/src/Riskified/OrderWebhook/Model/Customer.php @@ -1,4 +1,7 @@ - "string /.+@.+/", 'first_name' => 'string', diff --git a/src/Riskified/OrderWebhook/Model/CustomerCreate.php b/src/Riskified/OrderWebhook/Model/CustomerCreate.php index d6c6264..aac0156 100644 --- a/src/Riskified/OrderWebhook/Model/CustomerCreate.php +++ b/src/Riskified/OrderWebhook/Model/CustomerCreate.php @@ -1,4 +1,7 @@ - 'string', 'phone_mandatory' => 'boolean optional', diff --git a/src/Riskified/OrderWebhook/Model/CustomerReachOut.php b/src/Riskified/OrderWebhook/Model/CustomerReachOut.php index 731c9b6..11f5b17 100644 --- a/src/Riskified/OrderWebhook/Model/CustomerReachOut.php +++ b/src/Riskified/OrderWebhook/Model/CustomerReachOut.php @@ -1,4 +1,7 @@ - 'string', 'order_id' => 'string optional', diff --git a/src/Riskified/OrderWebhook/Model/CustomerUpdate.php b/src/Riskified/OrderWebhook/Model/CustomerUpdate.php index a157347..bcc7e2f 100644 --- a/src/Riskified/OrderWebhook/Model/CustomerUpdate.php +++ b/src/Riskified/OrderWebhook/Model/CustomerUpdate.php @@ -1,4 +1,7 @@ - 'string', 'password_changed' => 'boolean', diff --git a/src/Riskified/OrderWebhook/Model/Decision.php b/src/Riskified/OrderWebhook/Model/Decision.php index e49abb1..8e80d22 100644 --- a/src/Riskified/OrderWebhook/Model/Decision.php +++ b/src/Riskified/OrderWebhook/Model/Decision.php @@ -1,4 +1,7 @@ - 'string', 'decision' => 'object \DecisionDetails', 'payment_details' => 'object \PaymentDetails optional' ); -} \ No newline at end of file +} diff --git a/src/Riskified/OrderWebhook/Model/DecisionDetails.php b/src/Riskified/OrderWebhook/Model/DecisionDetails.php index 06c97e4..86a0352 100644 --- a/src/Riskified/OrderWebhook/Model/DecisionDetails.php +++ b/src/Riskified/OrderWebhook/Model/DecisionDetails.php @@ -1,4 +1,7 @@ - 'string', 'decided_at' => 'date optional', @@ -29,5 +31,4 @@ class DecisionDetails extends AbstractModel { 'currency' => 'string /^[A-Z]{3}$/i optional', 'notes' => 'string optional' ); - -} \ No newline at end of file +} diff --git a/src/Riskified/OrderWebhook/Model/DiscountCode.php b/src/Riskified/OrderWebhook/Model/DiscountCode.php index 8b4332f..729245b 100644 --- a/src/Riskified/OrderWebhook/Model/DiscountCode.php +++ b/src/Riskified/OrderWebhook/Model/DiscountCode.php @@ -1,4 +1,7 @@ - 'string', 'amount' => 'float', 'policy' => 'object \Policy optional', ); -} \ No newline at end of file +} diff --git a/src/Riskified/OrderWebhook/Model/DisputeDetails.php b/src/Riskified/OrderWebhook/Model/DisputeDetails.php index 50b1073..343209b 100644 --- a/src/Riskified/OrderWebhook/Model/DisputeDetails.php +++ b/src/Riskified/OrderWebhook/Model/DisputeDetails.php @@ -1,4 +1,7 @@ - 'string', 'status' => 'string', diff --git a/src/Riskified/OrderWebhook/Model/Fulfillment.php b/src/Riskified/OrderWebhook/Model/Fulfillment.php index f1f5f98..3a62670 100644 --- a/src/Riskified/OrderWebhook/Model/Fulfillment.php +++ b/src/Riskified/OrderWebhook/Model/Fulfillment.php @@ -1,4 +1,7 @@ - 'string', 'fulfillments' => 'array object \FulfillmentDetails' ); -} \ No newline at end of file +} diff --git a/src/Riskified/OrderWebhook/Model/FulfillmentDetails.php b/src/Riskified/OrderWebhook/Model/FulfillmentDetails.php index 411bb16..9bea714 100644 --- a/src/Riskified/OrderWebhook/Model/FulfillmentDetails.php +++ b/src/Riskified/OrderWebhook/Model/FulfillmentDetails.php @@ -1,4 +1,7 @@ - 'date', 'fulfillment_id' => 'string', @@ -34,4 +36,4 @@ class FulfillmentDetails extends AbstractModel { 'line_items' => 'array object \LineItem optional' ); -} \ No newline at end of file +} diff --git a/src/Riskified/OrderWebhook/Model/LineItem.php b/src/Riskified/OrderWebhook/Model/LineItem.php index 8d2771e..f4a025f 100644 --- a/src/Riskified/OrderWebhook/Model/LineItem.php +++ b/src/Riskified/OrderWebhook/Model/LineItem.php @@ -1,4 +1,7 @@ - 'float', 'quantity' => 'number', @@ -67,34 +69,34 @@ class LineItem extends AbstractModel { 'greeting_message' => 'string optional', 'card_type' => 'string optional', 'card_subtype' => 'string optional', - 'sender_name'=> 'string optional', - 'sender_email'=> 'string optional', + 'sender_name' => 'string optional', + 'sender_email' => 'string optional', /* fields for travel industry */ - 'leg_id'=> 'string optional', - 'departure_port_code'=> 'string optional', - 'departure_city'=> 'string optional', - 'departure_country_code'=> 'string optional', - 'arrival_port_code'=> 'string optional', - 'arrival_city'=> 'string optional', - 'arrival_country_code'=> 'string optional', - 'departure_date'=> 'datetime optional', - 'arrival_date'=> 'datetime optional', - 'carrier_name'=> 'string optional', - 'carrier_code'=> 'string optional', - 'route_index'=> 'number optional', - 'leg_index'=> 'number optional', - 'ticket_class'=> 'string optional', - 'transport_method'=> 'string optional', + 'leg_id' => 'string optional', + 'departure_port_code' => 'string optional', + 'departure_city' => 'string optional', + 'departure_country_code' => 'string optional', + 'arrival_port_code' => 'string optional', + 'arrival_city' => 'string optional', + 'arrival_country_code' => 'string optional', + 'departure_date' => 'datetime optional', + 'arrival_date' => 'datetime optional', + 'carrier_name' => 'string optional', + 'carrier_code' => 'string optional', + 'route_index' => 'number optional', + 'leg_index' => 'number optional', + 'ticket_class' => 'string optional', + 'transport_method' => 'string optional', /* fields for accommodation industry */ - 'room_type'=> 'string optional', - 'city'=> 'string optional', - 'country_code'=> 'string optional', - 'check_in_date'=> 'date optional', - 'check_out_date'=> 'date optional', - 'rating'=> 'float optional', - 'number_of_guests'=> 'number optional', + 'room_type' => 'string optional', + 'city' => 'string optional', + 'country_code' => 'string optional', + 'check_in_date' => 'date optional', + 'check_out_date' => 'date optional', + 'rating' => 'float optional', + 'number_of_guests' => 'number optional', 'cancellation_policy' => 'string optional', 'accommodation_type' => 'string optional', @@ -116,11 +118,11 @@ class LineItem extends AbstractModel { 'authorized_payments' => 'float optional', - 'properties' =>'array object \Attribute optional', + 'properties' => 'array object \Attribute optional', 'tax_lines' => 'array object \TaxLine optional', 'seller' => 'object \Seller optional', - 'delivered_to'=> 'string optional', + 'delivered_to' => 'string optional', 'release_date' => 'date optional', 'size' => 'string optional', diff --git a/src/Riskified/OrderWebhook/Model/Login.php b/src/Riskified/OrderWebhook/Model/Login.php index e2ca444..de524d6 100644 --- a/src/Riskified/OrderWebhook/Model/Login.php +++ b/src/Riskified/OrderWebhook/Model/Login.php @@ -1,4 +1,7 @@ - 'string', 'email' => 'string /^[a-z0-9,!#$%&\'\*\+\/=\?\^_`\{\|}~-]+(?:\.[a-z0-9,!#$%&\'\*\+\/=\?\^_`\{\|}~-]+)*@[a-z0-9-]+(?:\.[a-z0-9-]+)*\.(?:[a-z]{2,})$/i', diff --git a/src/Riskified/OrderWebhook/Model/LoginStatus.php b/src/Riskified/OrderWebhook/Model/LoginStatus.php index 02dc09f..60afb37 100644 --- a/src/Riskified/OrderWebhook/Model/LoginStatus.php +++ b/src/Riskified/OrderWebhook/Model/LoginStatus.php @@ -1,4 +1,7 @@ - 'string /^(:?success|failure)$/', 'failure_reason' => 'string /^(:?wrong\040password|captcha|disabled\040account|nonexistent\040account|other|expired)$/ optional' diff --git a/src/Riskified/OrderWebhook/Model/Logout.php b/src/Riskified/OrderWebhook/Model/Logout.php index fb883d5..8069892 100644 --- a/src/Riskified/OrderWebhook/Model/Logout.php +++ b/src/Riskified/OrderWebhook/Model/Logout.php @@ -1,4 +1,7 @@ - 'string', 'client_details' => 'object \ClientDetails', diff --git a/src/Riskified/OrderWebhook/Model/MerchantSettings.php b/src/Riskified/OrderWebhook/Model/MerchantSettings.php index e914264..9c8770e 100644 --- a/src/Riskified/OrderWebhook/Model/MerchantSettings.php +++ b/src/Riskified/OrderWebhook/Model/MerchantSettings.php @@ -1,4 +1,7 @@ - 'array string' ); -} \ No newline at end of file +} diff --git a/src/Riskified/OrderWebhook/Model/Order.php b/src/Riskified/OrderWebhook/Model/Order.php index f7fd5ae..6348f93 100644 --- a/src/Riskified/OrderWebhook/Model/Order.php +++ b/src/Riskified/OrderWebhook/Model/Order.php @@ -1,4 +1,7 @@ - 'string', 'email' => '(?:[a-z0-9!#$%&\'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&\'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])', @@ -34,7 +36,7 @@ class Order extends AbstractModel { 'customer' => 'object \Customer', 'line_items' => 'array object \LineItem', 'passengers' => 'array object \Passenger optional', - + 'name' => 'string optional', 'additional_emails' => "array /^[a-z0-9,!#\$%&'\*\+\/=\?\^_`\{\|}~-]+(?:\.[a-z0-9,!#\$%&'\*\+\/=\?\^_`\{\|}~-]+)*@[a-z0-9-]+(?:\.[a-z0-9-]+)*\.(?:[a-z]{2,})$/i optional", 'note' => 'string optional', diff --git a/src/Riskified/OrderWebhook/Model/OrderCancellation.php b/src/Riskified/OrderWebhook/Model/OrderCancellation.php index 6c63594..1c52164 100644 --- a/src/Riskified/OrderWebhook/Model/OrderCancellation.php +++ b/src/Riskified/OrderWebhook/Model/OrderCancellation.php @@ -1,4 +1,7 @@ - 'string', 'cancelled_at' => 'date', 'cancel_reason' => 'string' ); -} \ No newline at end of file +} diff --git a/src/Riskified/OrderWebhook/Model/OrderChargeback.php b/src/Riskified/OrderWebhook/Model/OrderChargeback.php index a500425..a7c7c5d 100644 --- a/src/Riskified/OrderWebhook/Model/OrderChargeback.php +++ b/src/Riskified/OrderWebhook/Model/OrderChargeback.php @@ -1,4 +1,7 @@ - 'string', 'chargeback_details' => 'object \ChargebackDetails', 'fulfillment' => 'object \FulfillmentDetails', 'dispute_details' => 'object \DisputeDetails' ); -} \ No newline at end of file +} diff --git a/src/Riskified/OrderWebhook/Model/Passenger.php b/src/Riskified/OrderWebhook/Model/Passenger.php index 9ae7ce2..90399cb 100644 --- a/src/Riskified/OrderWebhook/Model/Passenger.php +++ b/src/Riskified/OrderWebhook/Model/Passenger.php @@ -1,4 +1,5 @@ 'string', 'last_name' => 'string', @@ -36,4 +36,4 @@ class Passenger extends AbstractModel { 'document_expiration_date' => 'string optional', 'passenger_type' => 'string optional' ); -} \ No newline at end of file +} diff --git a/src/Riskified/OrderWebhook/Model/PaymentDetails.php b/src/Riskified/OrderWebhook/Model/PaymentDetails.php index 8e7e17a..c49a8da 100644 --- a/src/Riskified/OrderWebhook/Model/PaymentDetails.php +++ b/src/Riskified/OrderWebhook/Model/PaymentDetails.php @@ -1,4 +1,7 @@ - 'string optional', 'avs_result_code' => 'string /^.+$/i optional', diff --git a/src/Riskified/OrderWebhook/Model/Policy.php b/src/Riskified/OrderWebhook/Model/Policy.php index f8ce51a..301d2dc 100644 --- a/src/Riskified/OrderWebhook/Model/Policy.php +++ b/src/Riskified/OrderWebhook/Model/Policy.php @@ -1,4 +1,7 @@ - 'boolean' ); -} \ No newline at end of file +} diff --git a/src/Riskified/OrderWebhook/Model/Recipient.php b/src/Riskified/OrderWebhook/Model/Recipient.php index ac2b29a..1da047e 100644 --- a/src/Riskified/OrderWebhook/Model/Recipient.php +++ b/src/Riskified/OrderWebhook/Model/Recipient.php @@ -1,4 +1,7 @@ - 'string optional', 'phone' => 'string optional', 'social' => 'object \SocialDetails optional', ); - } - diff --git a/src/Riskified/OrderWebhook/Model/Redeem.php b/src/Riskified/OrderWebhook/Model/Redeem.php index be1e3b5..34b4668 100644 --- a/src/Riskified/OrderWebhook/Model/Redeem.php +++ b/src/Riskified/OrderWebhook/Model/Redeem.php @@ -1,4 +1,7 @@ - 'string', 'redeem_type' => 'string /^(:?promo\040code|loyalty\040points|gift\040card|other)$/', diff --git a/src/Riskified/OrderWebhook/Model/Refund.php b/src/Riskified/OrderWebhook/Model/Refund.php index b8a2a85..43b9310 100644 --- a/src/Riskified/OrderWebhook/Model/Refund.php +++ b/src/Riskified/OrderWebhook/Model/Refund.php @@ -1,4 +1,7 @@ - 'string', 'refunds' => 'array object \RefundDetails' ); -} \ No newline at end of file +} diff --git a/src/Riskified/OrderWebhook/Model/RefundDetails.php b/src/Riskified/OrderWebhook/Model/RefundDetails.php index ebc9e78..7a33d8b 100644 --- a/src/Riskified/OrderWebhook/Model/RefundDetails.php +++ b/src/Riskified/OrderWebhook/Model/RefundDetails.php @@ -1,4 +1,7 @@ - 'string', 'amount' => 'double', @@ -29,4 +31,4 @@ class RefundDetails extends AbstractModel { 'refunded_at' => 'date optional', 'reason' => 'string optional' ); -} \ No newline at end of file +} diff --git a/src/Riskified/OrderWebhook/Model/ResetPasswordRequest.php b/src/Riskified/OrderWebhook/Model/ResetPasswordRequest.php index 37198cb..a9dd3ff 100644 --- a/src/Riskified/OrderWebhook/Model/ResetPasswordRequest.php +++ b/src/Riskified/OrderWebhook/Model/ResetPasswordRequest.php @@ -1,4 +1,7 @@ - 'string', 'client_details' => 'object \ClientDetails', diff --git a/src/Riskified/OrderWebhook/Model/Seller.php b/src/Riskified/OrderWebhook/Model/Seller.php index 90e73cf..e4fcd3d 100644 --- a/src/Riskified/OrderWebhook/Model/Seller.php +++ b/src/Riskified/OrderWebhook/Model/Seller.php @@ -1,4 +1,7 @@ - 'object \Customer', 'correspondence' => 'number optional', 'price_negotiated' => 'boolean optional', 'starting_price' => 'float optional' ); - -} \ No newline at end of file +} diff --git a/src/Riskified/OrderWebhook/Model/SessionDetails.php b/src/Riskified/OrderWebhook/Model/SessionDetails.php index 9854555..54c919d 100644 --- a/src/Riskified/OrderWebhook/Model/SessionDetails.php +++ b/src/Riskified/OrderWebhook/Model/SessionDetails.php @@ -1,4 +1,7 @@ - 'date', 'cart_token' => 'string', diff --git a/src/Riskified/OrderWebhook/Model/ShippingLine.php b/src/Riskified/OrderWebhook/Model/ShippingLine.php index 2fd208b..6b5d63c 100644 --- a/src/Riskified/OrderWebhook/Model/ShippingLine.php +++ b/src/Riskified/OrderWebhook/Model/ShippingLine.php @@ -1,4 +1,7 @@ - 'float', 'title' => 'string', diff --git a/src/Riskified/OrderWebhook/Model/SocialDetails.php b/src/Riskified/OrderWebhook/Model/SocialDetails.php index dfd2c82..fc5be5e 100644 --- a/src/Riskified/OrderWebhook/Model/SocialDetails.php +++ b/src/Riskified/OrderWebhook/Model/SocialDetails.php @@ -1,4 +1,7 @@ - 'string', 'public_username' => 'string', @@ -35,5 +37,4 @@ class SocialDetails extends AbstractModel { 'posts' => 'number optional', 'auth_token' => 'string optional' ); - -} \ No newline at end of file +} diff --git a/src/Riskified/OrderWebhook/Model/TaxLine.php b/src/Riskified/OrderWebhook/Model/TaxLine.php index b665f50..0d389d3 100644 --- a/src/Riskified/OrderWebhook/Model/TaxLine.php +++ b/src/Riskified/OrderWebhook/Model/TaxLine.php @@ -1,4 +1,7 @@ - 'float', 'rate' => 'float', 'title' => 'string' ); -} \ No newline at end of file +} diff --git a/src/Riskified/OrderWebhook/Model/Verification.php b/src/Riskified/OrderWebhook/Model/Verification.php index 7300d1a..3fbc856 100644 --- a/src/Riskified/OrderWebhook/Model/Verification.php +++ b/src/Riskified/OrderWebhook/Model/Verification.php @@ -1,4 +1,7 @@ - 'date', 'event_id' => 'string', diff --git a/src/Riskified/OrderWebhook/Model/VerificationSessionDetails.php b/src/Riskified/OrderWebhook/Model/VerificationSessionDetails.php index 9ff86e4..6ef7794 100644 --- a/src/Riskified/OrderWebhook/Model/VerificationSessionDetails.php +++ b/src/Riskified/OrderWebhook/Model/VerificationSessionDetails.php @@ -1,4 +1,7 @@ - 'string optional', 'browser_ip' => 'string optional' diff --git a/src/Riskified/OrderWebhook/Model/WishlistChanges.php b/src/Riskified/OrderWebhook/Model/WishlistChanges.php index f8eeee0..ff2dd7f 100644 --- a/src/Riskified/OrderWebhook/Model/WishlistChanges.php +++ b/src/Riskified/OrderWebhook/Model/WishlistChanges.php @@ -1,4 +1,7 @@ - 'string', 'wishlist_action' => 'string /^(:?add|remove)$/', diff --git a/src/Riskified/OrderWebhook/Transport/AbstractTransport.php b/src/Riskified/OrderWebhook/Transport/AbstractTransport.php index 6b70b9e..228737d 100644 --- a/src/Riskified/OrderWebhook/Transport/AbstractTransport.php +++ b/src/Riskified/OrderWebhook/Transport/AbstractTransport.php @@ -1,4 +1,5 @@ -toJson(); }, $orders)); - $json = '{"orders":['.$joined.']}'; + $joined = join(',', array_map(function ($order) { + return $order->toJson(); + }, $orders)); + $json = '{"orders":[' . $joined . ']}'; return $this->send_json_request($json, 'historical'); } @@ -292,9 +295,10 @@ protected function send_checkout($checkout, $endpoint) { return null; } - protected function validate($order, $enforce_required_keys=true) { - if (Riskified::$validations == Validations::SKIP) + protected function validate($order, $enforce_required_keys = true) { + if (Riskified::$validations == Validations::SKIP) { return true; + } return $order->validate($enforce_required_keys && Riskified::$validations == Validations::ALL); } @@ -303,7 +307,7 @@ protected function validate($order, $enforce_required_keys=true) { * @param $routing * @return string */ - protected function endpoint_prefix($routing='api') { + protected function endpoint_prefix($routing = 'api') { $protocol = ($this->use_https) ? 'https' : 'http'; return "$protocol://$this->url/$routing/"; } @@ -315,14 +319,14 @@ protected function endpoint_prefix($routing='api') { */ protected function headers($data_string) { $signature = $this->signature; - + return array( 'api-version: 2', 'Content-Type: application/json', - 'Content-Length: '.strlen($data_string), - $signature::SHOP_DOMAIN_HEADER_NAME.':'.Riskified::$domain, - $signature::HMAC_HEADER_NAME.':'.$this->signature->calc_hmac($data_string), - 'Accept: application/vnd.riskified.com; version='.Riskified::API_VERSION + 'Content-Length: ' . strlen($data_string), + $signature::SHOP_DOMAIN_HEADER_NAME . ':' . Riskified::$domain, + $signature::HMAC_HEADER_NAME . ':' . $this->signature->calc_hmac($data_string), + 'Accept: application/vnd.riskified.com; version=' . Riskified::API_VERSION ); } } diff --git a/src/Riskified/OrderWebhook/Transport/CurlTransport.php b/src/Riskified/OrderWebhook/Transport/CurlTransport.php index 7359393..e425e7d 100644 --- a/src/Riskified/OrderWebhook/Transport/CurlTransport.php +++ b/src/Riskified/OrderWebhook/Transport/CurlTransport.php @@ -1,4 +1,5 @@ -endpoint_prefix().$endpoint); + $ch = curl_init($this->endpoint_prefix() . $endpoint); $curl_options = array( CURLOPT_POSTFIELDS => $json, CURLOPT_CUSTOMREQUEST => 'POST', @@ -54,6 +57,7 @@ protected function send_json_request($json, $endpoint) { } $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); + // phpcs:ignore Generic.PHP.DeprecatedFunctions.Deprecated -- kept for PHP < 8.0 where curl_close() is still required curl_close($ch); return $this->json_response($body, $status); @@ -68,7 +72,7 @@ protected function send_json_request($json, $endpoint) { * @throws Exception\MalformedJsonException */ protected function send_account_json_request($json, $endpoint) { - $ch = curl_init($this->endpoint_prefix('customers').$endpoint); + $ch = curl_init($this->endpoint_prefix('customers') . $endpoint); $curl_options = array( CURLOPT_POSTFIELDS => $json, CURLOPT_CUSTOMREQUEST => 'POST', @@ -88,6 +92,7 @@ protected function send_account_json_request($json, $endpoint) { } $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); + // phpcs:ignore Generic.PHP.DeprecatedFunctions.Deprecated -- kept for PHP < 8.0 where curl_close() is still required curl_close($ch); return $this->json_response($body, $status); @@ -103,10 +108,12 @@ protected function send_account_json_request($json, $endpoint) { private function json_response($body, $status) { $response = json_decode($body); - if ($status != 200) + if ($status != 200) { throw new Exception\UnsuccessfulActionException($body, $status); - if (!$response) + } + if (!$response) { throw new Exception\MalformedJsonException($body, $status); + } return $response; } diff --git a/src/Riskified/autoloader.php b/src/Riskified/autoloader.php index 8e4d240..d6891db 100644 --- a/src/Riskified/autoloader.php +++ b/src/Riskified/autoloader.php @@ -1,4 +1,5 @@ $extraHeaders * @return array */ - private function authorizedHeadersForBody(string $body, array $extraHeaders = []): array - { + private function authorizedHeadersForBody(string $body, array $extraHeaders = []): array { $sig = $this->signature(); return $extraHeaders + [ @@ -32,8 +29,7 @@ private function authorizedHeadersForBody(string $body, array $extraHeaders = [] ]; } - public function testParsesFullOrderPayloadAndMapsSnakeCaseFields(): void - { + public function testParsesFullOrderPayloadAndMapsSnakeCaseFields(): void { $body = <<<'JSON' { "order": { @@ -65,8 +61,7 @@ public function testParsesFullOrderPayloadAndMapsSnakeCaseFields(): void $this->assertSame('DC-1', $notification->decisionCode); } - public function testParsesMinimalRequiredFields(): void - { + public function testParsesMinimalRequiredFields(): void { $body = '{"order":{"id":"x","status":"cancelled","old_status":"pending","description":null}}'; $notification = new Notification( @@ -81,8 +76,7 @@ public function testParsesMinimalRequiredFields(): void $this->assertNull($notification->description); } - public function testMissingRiskScoreDefaultsToZero(): void - { + public function testMissingRiskScoreDefaultsToZero(): void { $body = '{"order":{"id":"182","status":"s","old_status":"o","description":null}}'; $notification = new Notification( @@ -94,8 +88,7 @@ public function testMissingRiskScoreDefaultsToZero(): void $this->assertSame(0, $notification->riskScore); } - public function testNullRiskScoreCoalescesToZero(): void - { + public function testNullRiskScoreCoalescesToZero(): void { $body = '{"order":{"id":"1","status":"s","old_status":"o","description":null,"risk_score":null}}'; $notification = new Notification( @@ -107,8 +100,7 @@ public function testNullRiskScoreCoalescesToZero(): void $this->assertSame(0, $notification->riskScore); } - public function testMissingRiskIndicatorsDefaultsToEmptyArray(): void - { + public function testMissingRiskIndicatorsDefaultsToEmptyArray(): void { $body = '{"order":{"id":"1","status":"s","old_status":"o","description":null}}'; $notification = new Notification( @@ -120,8 +112,7 @@ public function testMissingRiskIndicatorsDefaultsToEmptyArray(): void $this->assertSame([], $notification->riskIndicators); } - public function testCategoryAndDecisionCodeUnsetWhenAbsentFromPayload(): void - { + public function testCategoryAndDecisionCodeUnsetWhenAbsentFromPayload(): void { $body = '{"order":{"id":"1","status":"s","old_status":"o","description":null}}'; $notification = new Notification( @@ -134,8 +125,7 @@ public function testCategoryAndDecisionCodeUnsetWhenAbsentFromPayload(): void $this->assertNull($notification->decisionCode); } - public function testThrowsBadPostJsonWhenOrderKeyMissing(): void - { + public function testThrowsBadPostJsonWhenOrderKeyMissing(): void { $this->expectException(BadPostJsonException::class); $body = '{"other":true}'; @@ -146,8 +136,7 @@ public function testThrowsBadPostJsonWhenOrderKeyMissing(): void ); } - public function testThrowsBadPostJsonWhenOrderIdMissing(): void - { + public function testThrowsBadPostJsonWhenOrderIdMissing(): void { $this->expectException(BadPostJsonException::class); $body = '{"order":{"status":"approved","old_status":"pending"}}'; @@ -158,8 +147,7 @@ public function testThrowsBadPostJsonWhenOrderIdMissing(): void ); } - public function testThrowsBadPostJsonWhenOrderStatusMissing(): void - { + public function testThrowsBadPostJsonWhenOrderStatusMissing(): void { $this->expectException(BadPostJsonException::class); $body = '{"order":{"id":"1","old_status":"pending"}}'; @@ -170,8 +158,7 @@ public function testThrowsBadPostJsonWhenOrderStatusMissing(): void ); } - public function testThrowsBadPostJsonWhenBodyIsNotValidJsonObject(): void - { + public function testThrowsBadPostJsonWhenBodyIsNotValidJsonObject(): void { $this->expectException(BadPostJsonException::class); $body = 'not-json'; @@ -182,8 +169,7 @@ public function testThrowsBadPostJsonWhenBodyIsNotValidJsonObject(): void ); } - public function testThrowsAuthorizationExceptionWhenHmacMismatch(): void - { + public function testThrowsAuthorizationExceptionWhenHmacMismatch(): void { $this->expectException(AuthorizationException::class); $body = '{"order":{"id":"1","status":"s","old_status":"o","description":null}}'; @@ -198,8 +184,7 @@ public function testThrowsAuthorizationExceptionWhenHmacMismatch(): void ); } - public function testAuthorizationExceptionMessageContainsMaskedHmacSuffix(): void - { + public function testAuthorizationExceptionMessageContainsMaskedHmacSuffix(): void { $body = '{"order":{"id":"1","status":"s","old_status":"o","description":null}}'; $sig = $this->signature(); $wrongHmac = 'abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890'; @@ -209,15 +194,14 @@ public function testAuthorizationExceptionMessageContainsMaskedHmacSuffix(): voi $this->fail('Expected AuthorizationException was not thrown'); } catch (AuthorizationException $e) { $this->assertStringContainsString( - '***'.substr($wrongHmac, -3), + '***' . substr($wrongHmac, -3), $e->getMessage(), 'Masked HMAC (last 3 chars) must appear in exception message' ); } } - public function testParsesUsingSdkHttpDataSignature(): void - { + public function testParsesUsingSdkHttpDataSignature(): void { $prevToken = Riskified::$auth_token; Riskified::$auth_token = 'live-callback-token-fixture'; @@ -238,16 +222,14 @@ public function testParsesUsingSdkHttpDataSignature(): void } } -final class NotificationTestSignature -{ +// phpcs:ignore PSR1.Classes.ClassDeclaration.MultipleClasses -- test-only signature stub kept alongside its test +final class NotificationTestSignature { public const HMAC_HEADER_NAME = 'X-RISKIFIED-HMAC-SHA256'; - public function __construct(private string $secret = 'notification-test-secret') - { + public function __construct(private string $secret = 'notification-test-secret') { } - public function calc_hmac(string $body): string - { + public function calc_hmac(string $body): string { return hash_hmac('sha256', $body, $this->secret); } } diff --git a/tests/OrderWebhook/Model/AbstractModelValidationTest.php b/tests/OrderWebhook/Model/AbstractModelValidationTest.php index cf99fbe..3649127 100644 --- a/tests/OrderWebhook/Model/AbstractModelValidationTest.php +++ b/tests/OrderWebhook/Model/AbstractModelValidationTest.php @@ -6,26 +6,22 @@ use Riskified\OrderWebhook\Exception\MultiplePropertiesException; use Riskified\OrderWebhook\Model\Order; -class AbstractModelValidationTest extends TestCase -{ - public function testRequiredFieldMissingThrowsException(): void - { +class AbstractModelValidationTest extends TestCase { + public function testRequiredFieldMissingThrowsException(): void { $this->expectException(MultiplePropertiesException::class); $order = new Order(); $order->validate(); } - public function testOptionalFieldMissingDoesNotThrow(): void - { + public function testOptionalFieldMissingDoesNotThrow(): void { $order = new Order(OrderTestFixtures::minimalOrderProps()); $this->assertNull($order->partner_sub_merchant_id); $order->validate(false); } - public function testNumberFieldWithInvalidValueThrowsException(): void - { + public function testNumberFieldWithInvalidValueThrowsException(): void { $props = OrderTestFixtures::minimalOrderProps(); $props['number'] = '-1'; $order = new Order($props); @@ -34,8 +30,7 @@ public function testNumberFieldWithInvalidValueThrowsException(): void $order->validate(false); } - public function testNumberFieldWithValidValueDoesNotThrow(): void - { + public function testNumberFieldWithValidValueDoesNotThrow(): void { $props = OrderTestFixtures::minimalOrderProps(); $props['number'] = '42'; $order = new Order($props); @@ -43,8 +38,7 @@ public function testNumberFieldWithValidValueDoesNotThrow(): void $this->assertSame('42', $order->number); } - public function testStringRegexMismatchThrowsException(): void - { + public function testStringRegexMismatchThrowsException(): void { $props = OrderTestFixtures::minimalOrderProps(); $props['currency'] = 'USDD'; $order = new Order($props); @@ -53,8 +47,7 @@ public function testStringRegexMismatchThrowsException(): void $order->validate(false); } - public function testStringRegexMatchDoesNotThrow(): void - { + public function testStringRegexMatchDoesNotThrow(): void { $props = OrderTestFixtures::minimalOrderProps(); $props['currency'] = 'USD'; $order = new Order($props); diff --git a/tests/OrderWebhook/Model/AddressTest.php b/tests/OrderWebhook/Model/AddressTest.php index 8751652..236e9bd 100644 --- a/tests/OrderWebhook/Model/AddressTest.php +++ b/tests/OrderWebhook/Model/AddressTest.php @@ -6,13 +6,11 @@ use Riskified\OrderWebhook\Exception\MultiplePropertiesException; use Riskified\OrderWebhook\Model\Address; -class AddressTest extends TestCase -{ +class AddressTest extends TestCase { /** * @return array */ - private function minimalAddressProps(): array - { + private function minimalAddressProps(): array { return [ 'first_name' => 'Jane', 'last_name' => 'Doe', @@ -23,14 +21,12 @@ private function minimalAddressProps(): array ]; } - public function testOptionalIdIsNullByDefault(): void - { + public function testOptionalIdIsNullByDefault(): void { $address = new Address($this->minimalAddressProps()); $this->assertNull($address->id); } - public function testSerializesSnakeCaseFields(): void - { + public function testSerializesSnakeCaseFields(): void { $address = new Address($this->minimalAddressProps() + [ 'province_code' => 'NY', 'address1' => '1 Main St', @@ -42,8 +38,7 @@ public function testSerializesSnakeCaseFields(): void $this->assertStringContainsString('"address1":"1 Main St"', $json); } - public function testInvalidCountryCodeFormatFailsValidation(): void - { + public function testInvalidCountryCodeFormatFailsValidation(): void { $props = $this->minimalAddressProps(); $props['country_code'] = 'USA'; diff --git a/tests/OrderWebhook/Model/AuthenticationResultTest.php b/tests/OrderWebhook/Model/AuthenticationResultTest.php index 8c697ec..f9c05b0 100644 --- a/tests/OrderWebhook/Model/AuthenticationResultTest.php +++ b/tests/OrderWebhook/Model/AuthenticationResultTest.php @@ -5,29 +5,25 @@ use PHPUnit\Framework\TestCase; use Riskified\OrderWebhook\Model\AuthenticationResult; -class AuthenticationResultTest extends TestCase -{ +class AuthenticationResultTest extends TestCase { /** * @return array */ - private function minimalAuthResultProps(): array - { + private function minimalAuthResultProps(): array { return [ 'eci' => '05', 'liability_shift' => true, ]; } - public function testOptionalTransFieldsAreNullByDefault(): void - { + public function testOptionalTransFieldsAreNullByDefault(): void { $result = new AuthenticationResult($this->minimalAuthResultProps()); $this->assertNull($result->trans_status); $this->assertNull($result->trans_status_reason); } - public function testSerializesNestedFieldNames(): void - { + public function testSerializesNestedFieldNames(): void { $result = new AuthenticationResult($this->minimalAuthResultProps() + [ 'trans_status' => 'Y', 'three_d_challenge' => false, diff --git a/tests/OrderWebhook/Model/CheckoutTest.php b/tests/OrderWebhook/Model/CheckoutTest.php index c42ee0b..5bc41c6 100644 --- a/tests/OrderWebhook/Model/CheckoutTest.php +++ b/tests/OrderWebhook/Model/CheckoutTest.php @@ -6,16 +6,13 @@ use Riskified\OrderWebhook\Model\Checkout; use Riskified\OrderWebhook\Model\Order; -class CheckoutTest extends TestCase -{ - public function testCheckoutIsInstanceOfOrder(): void - { +class CheckoutTest extends TestCase { + public function testCheckoutIsInstanceOfOrder(): void { $checkout = new Checkout(); $this->assertInstanceOf(Order::class, $checkout); } - public function testMinimalCheckoutValidatesLikeOrder(): void - { + public function testMinimalCheckoutValidatesLikeOrder(): void { $checkout = new Checkout(OrderTestFixtures::minimalOrderProps()); $checkout->validate(false); $this->assertSame('order-1', $checkout->id); diff --git a/tests/OrderWebhook/Model/MerchantSettingsTest.php b/tests/OrderWebhook/Model/MerchantSettingsTest.php index db0584f..836fac0 100644 --- a/tests/OrderWebhook/Model/MerchantSettingsTest.php +++ b/tests/OrderWebhook/Model/MerchantSettingsTest.php @@ -5,10 +5,8 @@ use PHPUnit\Framework\TestCase; use Riskified\OrderWebhook\Model\MerchantSettings; -class MerchantSettingsTest extends TestCase -{ - public function testSerializesSettingsArray(): void - { +class MerchantSettingsTest extends TestCase { + public function testSerializesSettingsArray(): void { $settings = new MerchantSettings([ 'settings' => [ 'notify_url' => 'https://example.com/hook', @@ -21,8 +19,7 @@ public function testSerializesSettingsArray(): void $this->assertStringContainsString('"notify_url":"https://example.com/hook"', $json); } - public function testValidateSucceedsForStringAssociativeSettings(): void - { + public function testValidateSucceedsForStringAssociativeSettings(): void { $settings = new MerchantSettings([ 'settings' => ['feature_x' => 'on'], ]); diff --git a/tests/OrderWebhook/Model/OrderTest.php b/tests/OrderWebhook/Model/OrderTest.php index f2d9ddf..e22b203 100644 --- a/tests/OrderWebhook/Model/OrderTest.php +++ b/tests/OrderWebhook/Model/OrderTest.php @@ -6,16 +6,13 @@ use Riskified\OrderWebhook\Exception\MultiplePropertiesException; use Riskified\OrderWebhook\Model\Order; -class OrderTest extends TestCase -{ - public function testPartnerSubMerchantIdIsNullByDefault(): void - { +class OrderTest extends TestCase { + public function testPartnerSubMerchantIdIsNullByDefault(): void { $order = new Order(); $this->assertNull($order->partner_sub_merchant_id); } - public function testPartnerSubMerchantIdSerializesWithUnderscores(): void - { + public function testPartnerSubMerchantIdSerializesWithUnderscores(): void { $order = new Order(); $order->partner_sub_merchant_id = 'merchant-abc'; @@ -26,8 +23,7 @@ public function testPartnerSubMerchantIdSerializesWithUnderscores(): void /** * @dataProvider acceptedAiAgentValues */ - public function testAiAgentAcceptsKnownValues(string $value): void - { + public function testAiAgentAcceptsKnownValues(string $value): void { $order = new Order(); $order->ai_agent = $value; @@ -35,8 +31,7 @@ public function testAiAgentAcceptsKnownValues(string $value): void $this->assertTrue($order->validate(false)); } - public static function acceptedAiAgentValues(): array - { + public static function acceptedAiAgentValues(): array { return [ ['chatgpt'], ['gemini'], @@ -45,13 +40,11 @@ public static function acceptedAiAgentValues(): array ]; } - public function testAiAgentRejectsUnknownValue(): void - { + public function testAiAgentRejectsUnknownValue(): void { $order = new Order(); $order->ai_agent = 'unknown_bot'; $this->expectException(MultiplePropertiesException::class); $order->validate(false); } - } diff --git a/tests/OrderWebhook/Model/OrderTestFixtures.php b/tests/OrderWebhook/Model/OrderTestFixtures.php index daeb805..ff1d562 100644 --- a/tests/OrderWebhook/Model/OrderTestFixtures.php +++ b/tests/OrderWebhook/Model/OrderTestFixtures.php @@ -5,13 +5,11 @@ use Riskified\OrderWebhook\Model\Customer; use Riskified\OrderWebhook\Model\LineItem; -final class OrderTestFixtures -{ +final class OrderTestFixtures { /** * @return array */ - public static function minimalOrderProps(): array - { + public static function minimalOrderProps(): array { return [ 'id' => 'order-1', 'email' => 'buyer@example.com', diff --git a/tests/OrderWebhook/Model/PaymentDetailsTest.php b/tests/OrderWebhook/Model/PaymentDetailsTest.php index d0c8af8..6fc0ca2 100644 --- a/tests/OrderWebhook/Model/PaymentDetailsTest.php +++ b/tests/OrderWebhook/Model/PaymentDetailsTest.php @@ -6,37 +6,31 @@ use Riskified\OrderWebhook\Model\AuthenticationResult; use Riskified\OrderWebhook\Model\PaymentDetails; -class PaymentDetailsTest extends TestCase -{ - public function testPaymentTypeIsNullByDefault(): void - { +class PaymentDetailsTest extends TestCase { + public function testPaymentTypeIsNullByDefault(): void { $details = new PaymentDetails(); $this->assertNull($details->payment_type); } - public function testPaymentTypeSerializesToCard(): void - { + public function testPaymentTypeSerializesToCard(): void { $details = new PaymentDetails(); $details->payment_type = 'card'; $this->assertStringContainsString('"payment_type":"card"', $details->toJson()); } - public function testPaymentTypeSerializesToPaypal(): void - { + public function testPaymentTypeSerializesToPaypal(): void { $details = new PaymentDetails(); $details->payment_type = 'paypal'; $this->assertStringContainsString('"payment_type":"paypal"', $details->toJson()); } - public function testPaymentTypeSerializesToBankTransfer(): void - { + public function testPaymentTypeSerializesToBankTransfer(): void { $details = new PaymentDetails(); $details->payment_type = 'bank_transfer'; $this->assertStringContainsString('"payment_type":"bank_transfer"', $details->toJson()); } - public function testAuthenticationResultNestedObjectSerializes(): void - { + public function testAuthenticationResultNestedObjectSerializes(): void { $details = new PaymentDetails(); $details->authentication_result = new AuthenticationResult([ 'eci' => '05', diff --git a/tests/OrderWebhook/Model/VerificationTest.php b/tests/OrderWebhook/Model/VerificationTest.php index 5dbd508..f1f5027 100644 --- a/tests/OrderWebhook/Model/VerificationTest.php +++ b/tests/OrderWebhook/Model/VerificationTest.php @@ -6,13 +6,11 @@ use Riskified\OrderWebhook\Model\Verification; use Riskified\OrderWebhook\Model\VerificationSessionDetails; -class VerificationTest extends TestCase -{ +class VerificationTest extends TestCase { /** * @return array */ - private function minimalVerificationProps(): array - { + private function minimalVerificationProps(): array { return [ 'verified_at' => '2024-06-01T12:00:00+00:00', 'event_id' => 'evt-123', @@ -20,16 +18,14 @@ private function minimalVerificationProps(): array ]; } - public function testOptionalEmailAndVendorAreNullByDefault(): void - { + public function testOptionalEmailAndVendorAreNullByDefault(): void { $verification = new Verification($this->minimalVerificationProps()); $this->assertNull($verification->email); $this->assertNull($verification->vendor_name); } - public function testSerializesRequiredFields(): void - { + public function testSerializesRequiredFields(): void { $verification = new Verification($this->minimalVerificationProps()); $json = $verification->toJson(); @@ -37,8 +33,7 @@ public function testSerializesRequiredFields(): void $this->assertStringContainsString('"status":"success"', $json); } - public function testNestedVerificationSessionDetailsSerializes(): void - { + public function testNestedVerificationSessionDetailsSerializes(): void { $verification = new Verification($this->minimalVerificationProps() + [ 'verification_session_details' => new VerificationSessionDetails([ 'cart_token' => 'cart-abcd', diff --git a/tests/OrderWebhook/Transport/AbstractTransportTest.php b/tests/OrderWebhook/Transport/AbstractTransportTest.php index 6d72ed2..3d3162b 100644 --- a/tests/OrderWebhook/Transport/AbstractTransportTest.php +++ b/tests/OrderWebhook/Transport/AbstractTransportTest.php @@ -10,10 +10,8 @@ use Riskified\Common\Validations; use Riskified\OrderWebhook\Transport\CurlTransport; -class AbstractTransportTest extends TestCase -{ - private function readProtectedProperty(object $object, string $property): mixed - { +class AbstractTransportTest extends TestCase { + private function readProtectedProperty(object $object, string $property): mixed { $ref = new ReflectionProperty($object, $property); $ref->setAccessible(true); @@ -23,8 +21,7 @@ private function readProtectedProperty(object $object, string $property): mixed /** @var array */ private array $riskifiedSnapshot = []; - protected function setUp(): void - { + protected function setUp(): void { $this->riskifiedSnapshot = [ 'domain' => Riskified::$domain, 'auth_token' => Riskified::$auth_token, @@ -33,16 +30,14 @@ protected function setUp(): void ]; } - protected function tearDown(): void - { + protected function tearDown(): void { Riskified::$domain = $this->riskifiedSnapshot['domain']; Riskified::$auth_token = $this->riskifiedSnapshot['auth_token']; Riskified::$env = $this->riskifiedSnapshot['env']; Riskified::$validations = $this->riskifiedSnapshot['validations']; } - public function testConstructionSetsUserAgent(): void - { + public function testConstructionSetsUserAgent(): void { Riskified::init('shop', 'token', Env::SANDBOX, Validations::IGNORE_MISSING); $transport = new CurlTransport(new HttpDataSignature()); @@ -52,40 +47,35 @@ public function testConstructionSetsUserAgent(): void ); } - public function testConstructionSetsUrlFromRiskifiedGetHost(): void - { + public function testConstructionSetsUrlFromRiskifiedGetHost(): void { Riskified::init('shop', 'token', Env::SANDBOX, Validations::IGNORE_MISSING); $transport = new CurlTransport(new HttpDataSignature()); $this->assertSame(Riskified::getHost(), $this->readProtectedProperty($transport, 'url')); } - public function testConstructionAcceptsCustomUrl(): void - { + public function testConstructionAcceptsCustomUrl(): void { Riskified::init('shop', 'token', Env::SANDBOX, Validations::IGNORE_MISSING); $transport = new CurlTransport(new HttpDataSignature(), 'custom.example.com'); $this->assertSame('custom.example.com', $this->readProtectedProperty($transport, 'url')); } - public function testUseHttpsIsTrueForSandbox(): void - { + public function testUseHttpsIsTrueForSandbox(): void { Riskified::init('shop', 'token', Env::SANDBOX, Validations::IGNORE_MISSING); $transport = new CurlTransport(new HttpDataSignature()); $this->assertTrue($transport->use_https); } - public function testUseHttpsIsTrueForProd(): void - { + public function testUseHttpsIsTrueForProd(): void { Riskified::init('shop', 'token', Env::PROD, Validations::IGNORE_MISSING); $transport = new CurlTransport(new HttpDataSignature()); $this->assertTrue($transport->use_https); } - public function testUseHttpsIsFalseForDev(): void - { + public function testUseHttpsIsFalseForDev(): void { Riskified::init('shop', 'token', Env::DEV, Validations::IGNORE_MISSING); $transport = new CurlTransport(new HttpDataSignature()); From 3ab369a5223063246103a9ae2d2de09ea7fc4585 Mon Sep 17 00:00:00 2001 From: Tomer Parizer Date: Tue, 16 Jun 2026 15:58:19 +0100 Subject: [PATCH 3/3] DEV-123965 - fix composer lint --- tests/OrderWebhook/Model/MerchantSettingsTest.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/OrderWebhook/Model/MerchantSettingsTest.php b/tests/OrderWebhook/Model/MerchantSettingsTest.php index 836fac0..2c3ce8e 100644 --- a/tests/OrderWebhook/Model/MerchantSettingsTest.php +++ b/tests/OrderWebhook/Model/MerchantSettingsTest.php @@ -7,16 +7,16 @@ class MerchantSettingsTest extends TestCase { public function testSerializesSettingsArray(): void { - $settings = new MerchantSettings([ + $expected = [ 'settings' => [ 'notify_url' => 'https://example.com/hook', 'mode' => 'active', ], - ]); + ]; + $settings = new MerchantSettings($expected); $json = $settings->toJson(); - $this->assertStringContainsString('"settings"', $json); - $this->assertStringContainsString('"notify_url":"https://example.com/hook"', $json); + $this->assertSame($expected, json_decode($json, true)); } public function testValidateSucceedsForStringAssociativeSettings(): void {