From 425aa595b0e12f672676395d5ae5931b542b92ce Mon Sep 17 00:00:00 2001 From: Andy Summers <andrew.summers@wisc.edu> Date: Fri, 11 Aug 2017 09:57:13 -0500 Subject: [PATCH] PHP7-ify Order Header classes, add `ServiceResponseInterface` --- .../edu/wisc/services/cbs/api/MockService.php | 8 +-- .../cbs/common/AbstractServiceResponse.php | 6 +-- .../cbs/common/ServiceResponseInterface.php | 20 +++++++ .../cbs/order/OrderServiceResponse.php | 3 +- .../order/header/MockOrderHeaderService.php | 7 +-- .../services/cbs/order/header/OrderHeader.php | 54 +++++++++---------- .../OrderHeaderInputParametersMapper.php | 2 +- .../cbs/order/header/OrderHeaderService.php | 2 +- .../order/header/SoapOrderHeaderService.php | 2 +- .../MockOrderInterfacingService.php | 6 +-- .../cbs/order/line/MockOrderLineService.php | 4 +- .../services/cbs/price/MockPriceService.php | 4 +- .../cbs/product/MockProductService.php | 4 +- 13 files changed, 73 insertions(+), 49 deletions(-) create mode 100644 src/main/edu/wisc/services/cbs/common/ServiceResponseInterface.php diff --git a/src/main/edu/wisc/services/cbs/api/MockService.php b/src/main/edu/wisc/services/cbs/api/MockService.php index 280cf16..940b661 100644 --- a/src/main/edu/wisc/services/cbs/api/MockService.php +++ b/src/main/edu/wisc/services/cbs/api/MockService.php @@ -1,7 +1,7 @@ <?php namespace edu\wisc\services\cbs\api; -use edu\wisc\services\cbs\common\AbstractServiceResponse; +use edu\wisc\services\cbs\common\ServiceResponseInterface; /** * A mock implementation of a CBS service. @@ -12,9 +12,9 @@ interface MockService extends Service /** * Creates a mock implementation of a {@link Service}. * - * Service will respond with the given {@link AbstractServiceResponse}, or a successful response if one is not + * Service will respond with the given {@link ServiceResponseInterface}, or a successful response if one is not * given. - * @param AbstractServiceResponse|null $response defaults to successful if null + * @param ServiceResponseInterface|null $response defaults to successful if null */ - public function __construct(AbstractServiceResponse $response = null); + public function __construct(ServiceResponseInterface $response = null); } diff --git a/src/main/edu/wisc/services/cbs/common/AbstractServiceResponse.php b/src/main/edu/wisc/services/cbs/common/AbstractServiceResponse.php index a8d6ae8..603c75a 100644 --- a/src/main/edu/wisc/services/cbs/common/AbstractServiceResponse.php +++ b/src/main/edu/wisc/services/cbs/common/AbstractServiceResponse.php @@ -5,7 +5,7 @@ namespace edu\wisc\services\cbs\common; /** * Abstract base class defining common service response functions. */ -abstract class AbstractServiceResponse +abstract class AbstractServiceResponse implements ServiceResponseInterface { /** @var boolean */ @@ -28,7 +28,7 @@ abstract class AbstractServiceResponse /** * @return bool */ - public function isSuccess() + public function isSuccess(): bool { return $this->success; } @@ -36,7 +36,7 @@ abstract class AbstractServiceResponse /** * @return string */ - public function getMessage() + public function getMessage(): string { return $this->message; } diff --git a/src/main/edu/wisc/services/cbs/common/ServiceResponseInterface.php b/src/main/edu/wisc/services/cbs/common/ServiceResponseInterface.php new file mode 100644 index 0000000..fdc7d52 --- /dev/null +++ b/src/main/edu/wisc/services/cbs/common/ServiceResponseInterface.php @@ -0,0 +1,20 @@ +<?php + +namespace edu\wisc\services\cbs\common; + +/** + */ +interface ServiceResponseInterface +{ + + /** + * @return bool + */ + public function isSuccess(): bool; + + /** + * @return string + */ + public function getMessage(): string; + +} \ No newline at end of file diff --git a/src/main/edu/wisc/services/cbs/order/OrderServiceResponse.php b/src/main/edu/wisc/services/cbs/order/OrderServiceResponse.php index a280870..9eabfc9 100644 --- a/src/main/edu/wisc/services/cbs/order/OrderServiceResponse.php +++ b/src/main/edu/wisc/services/cbs/order/OrderServiceResponse.php @@ -3,10 +3,11 @@ namespace edu\wisc\services\cbs\order; use edu\wisc\services\cbs\common\AbstractServiceResponse; +use edu\wisc\services\cbs\common\ServiceResponseInterface; /** * The status of a call to an {@link OrderService} class. */ -class OrderServiceResponse extends AbstractServiceResponse +class OrderServiceResponse extends AbstractServiceResponse implements ServiceResponseInterface { } diff --git a/src/main/edu/wisc/services/cbs/order/header/MockOrderHeaderService.php b/src/main/edu/wisc/services/cbs/order/header/MockOrderHeaderService.php index 23193aa..1573fb8 100644 --- a/src/main/edu/wisc/services/cbs/order/header/MockOrderHeaderService.php +++ b/src/main/edu/wisc/services/cbs/order/header/MockOrderHeaderService.php @@ -3,9 +3,10 @@ namespace edu\wisc\services\cbs\order\header; use edu\wisc\services\cbs\api\MockService; +use edu\wisc\services\cbs\common\ServiceResponseInterface; use edu\wisc\services\cbs\order\OrderServiceResponse; -class MockOrderHeaderService implements OrderHeaderService +class MockOrderHeaderService implements OrderHeaderService, MockService { /** @var OrderServiceResponse */ @@ -14,7 +15,7 @@ class MockOrderHeaderService implements OrderHeaderService /** * {@inheritdoc} */ - public function __construct(OrderServiceResponse $response = null) + public function __construct(ServiceResponseInterface $response = null) { if ($response === null) { $this->response = new OrderServiceResponse( @@ -29,7 +30,7 @@ class MockOrderHeaderService implements OrderHeaderService /** * {@inheritdoc} */ - public function createOrderHeader(OrderHeader $header) + public function createOrderHeader(OrderHeader $header): OrderServiceResponse { return $this->response; } diff --git a/src/main/edu/wisc/services/cbs/order/header/OrderHeader.php b/src/main/edu/wisc/services/cbs/order/header/OrderHeader.php index 1fa7730..4bd791d 100644 --- a/src/main/edu/wisc/services/cbs/order/header/OrderHeader.php +++ b/src/main/edu/wisc/services/cbs/order/header/OrderHeader.php @@ -11,7 +11,7 @@ use edu\wisc\services\cbs\order\payment\OrderPayment; class OrderHeader extends MagentoOrder { - /** @var string order number from Magento */ + /** @var float order number from Magento */ private $orderNumber; /** @var string Unique identifier, format "MAGE" + Magento order number */ @@ -61,18 +61,18 @@ class OrderHeader extends MagentoOrder private $testMode; /** - * @return string + * @return float */ - public function getOrderNumber() + public function getOrderNumber(): float { return $this->orderNumber; } /** - * @param string $orderNumber + * @param float $orderNumber * @return OrderHeader */ - public function setOrderNumber($orderNumber) + public function setOrderNumber(float $orderNumber): OrderHeader { $this->orderNumber = $orderNumber; return $this; @@ -81,7 +81,7 @@ class OrderHeader extends MagentoOrder /** * @return string */ - public function getOrigSystemDocumentRef() + public function getOrigSystemDocumentRef(): string { return $this->origSystemDocumentRef; } @@ -90,7 +90,7 @@ class OrderHeader extends MagentoOrder * @param string $origSystemDocumentRef * @return OrderHeader */ - public function setOrigSystemDocumentRef($origSystemDocumentRef) + public function setOrigSystemDocumentRef(string $origSystemDocumentRef): OrderHeader { $this->origSystemDocumentRef = $origSystemDocumentRef; return $this; @@ -99,7 +99,7 @@ class OrderHeader extends MagentoOrder /** * @return string */ - public function getCustomerType() + public function getCustomerType(): string { return $this->customerType; } @@ -108,7 +108,7 @@ class OrderHeader extends MagentoOrder * @param string $customerType * @return OrderHeader */ - public function setCustomerType($customerType) + public function setCustomerType(string $customerType): OrderHeader { $this->customerType = $customerType; return $this; @@ -117,7 +117,7 @@ class OrderHeader extends MagentoOrder /** * @return string */ - public function getCustomerIdentifier() + public function getCustomerIdentifier(): string { return $this->customerIdentifier; } @@ -126,7 +126,7 @@ class OrderHeader extends MagentoOrder * @param string $customerIdentifier * @return OrderHeader */ - public function setCustomerIdentifier($customerIdentifier) + public function setCustomerIdentifier(string $customerIdentifier): OrderHeader { $this->customerIdentifier = $customerIdentifier; return $this; @@ -135,7 +135,7 @@ class OrderHeader extends MagentoOrder /** * @return string */ - public function getCustomerIdentifierType() + public function getCustomerIdentifierType(): string { return $this->customerIdentifierType; } @@ -144,7 +144,7 @@ class OrderHeader extends MagentoOrder * @param string $customerIdentifierType * @return OrderHeader */ - public function setCustomerIdentifierType($customerIdentifierType) + public function setCustomerIdentifierType(string $customerIdentifierType): OrderHeader { $this->customerIdentifierType = $customerIdentifierType; return $this; @@ -153,7 +153,7 @@ class OrderHeader extends MagentoOrder /** * @return string */ - public function getPurchaserIdentifier() + public function getPurchaserIdentifier(): string { return $this->purchaserIdentifier; } @@ -162,7 +162,7 @@ class OrderHeader extends MagentoOrder * @param string $purchaserIdentifier * @return OrderHeader */ - public function setPurchaserIdentifier($purchaserIdentifier) + public function setPurchaserIdentifier(string $purchaserIdentifier): OrderHeader { $this->purchaserIdentifier = $purchaserIdentifier; return $this; @@ -171,7 +171,7 @@ class OrderHeader extends MagentoOrder /** * @return string */ - public function getPurchaserIdentifierType() + public function getPurchaserIdentifierType(): string { return $this->purchaserIdentifierType; } @@ -180,7 +180,7 @@ class OrderHeader extends MagentoOrder * @param string $purchaserIdentifierType * @return OrderHeader */ - public function setPurchaserIdentifierType($purchaserIdentifierType) + public function setPurchaserIdentifierType(string $purchaserIdentifierType): OrderHeader { $this->purchaserIdentifierType = $purchaserIdentifierType; return $this; @@ -189,7 +189,7 @@ class OrderHeader extends MagentoOrder /** * @return string */ - public function getCustomerReferenceField() + public function getCustomerReferenceField(): string { return $this->customerReferenceField; } @@ -198,7 +198,7 @@ class OrderHeader extends MagentoOrder * @param string $customerReferenceField * @return OrderHeader */ - public function setCustomerReferenceField($customerReferenceField) + public function setCustomerReferenceField(string $customerReferenceField): OrderHeader { $this->customerReferenceField = $customerReferenceField; return $this; @@ -207,7 +207,7 @@ class OrderHeader extends MagentoOrder /** * @return string */ - public function getOrderSource() + public function getOrderSource(): string { return $this->orderSource; } @@ -216,7 +216,7 @@ class OrderHeader extends MagentoOrder * @param string $orderSource * @return OrderHeader */ - public function setOrderSource($orderSource) + public function setOrderSource(string $orderSource): OrderHeader { $this->orderSource = $orderSource; return $this; @@ -225,7 +225,7 @@ class OrderHeader extends MagentoOrder /** * @return string */ - public function getInterfaceTypeFlag() + public function getInterfaceTypeFlag(): string { return $this->interfaceTypeFlag; } @@ -234,7 +234,7 @@ class OrderHeader extends MagentoOrder * @param string $interfaceTypeFlag * @return OrderHeader */ - public function setInterfaceTypeFlag($interfaceTypeFlag) + public function setInterfaceTypeFlag(string $interfaceTypeFlag): OrderHeader { $this->interfaceTypeFlag = $interfaceTypeFlag; return $this; @@ -243,7 +243,7 @@ class OrderHeader extends MagentoOrder /** * @return string */ - public function getDefaultSet() + public function getDefaultSet(): string { return $this->defaultSet; } @@ -252,7 +252,7 @@ class OrderHeader extends MagentoOrder * @param string $defaultSet * @return OrderHeader */ - public function setDefaultSet($defaultSet) + public function setDefaultSet(string $defaultSet): OrderHeader { $this->defaultSet = $defaultSet; return $this; @@ -261,7 +261,7 @@ class OrderHeader extends MagentoOrder /** * @return string */ - public function getTestMode() + public function getTestMode(): string { return $this->testMode; } @@ -270,7 +270,7 @@ class OrderHeader extends MagentoOrder * @param string $testMode * @return OrderHeader */ - public function setTestMode($testMode) + public function setTestMode(string $testMode): OrderHeader { $this->testMode = $testMode; return $this; diff --git a/src/main/edu/wisc/services/cbs/order/header/OrderHeaderInputParametersMapper.php b/src/main/edu/wisc/services/cbs/order/header/OrderHeaderInputParametersMapper.php index 84d18ad..4ad8a15 100644 --- a/src/main/edu/wisc/services/cbs/order/header/OrderHeaderInputParametersMapper.php +++ b/src/main/edu/wisc/services/cbs/order/header/OrderHeaderInputParametersMapper.php @@ -18,7 +18,7 @@ class OrderHeaderInputParametersMapper public static function toInputParameters(OrderHeader $header) { return (new InputParameters( - '', + 0.0, '', '', '', diff --git a/src/main/edu/wisc/services/cbs/order/header/OrderHeaderService.php b/src/main/edu/wisc/services/cbs/order/header/OrderHeaderService.php index 728c0e0..49a3e43 100644 --- a/src/main/edu/wisc/services/cbs/order/header/OrderHeaderService.php +++ b/src/main/edu/wisc/services/cbs/order/header/OrderHeaderService.php @@ -15,6 +15,6 @@ interface OrderHeaderService extends Service * @param OrderHeader $header * @return OrderServiceResponse */ - public function createOrderHeader(OrderHeader $header); + public function createOrderHeader(OrderHeader $header): OrderServiceResponse; } \ No newline at end of file diff --git a/src/main/edu/wisc/services/cbs/order/header/SoapOrderHeaderService.php b/src/main/edu/wisc/services/cbs/order/header/SoapOrderHeaderService.php index 589bc0f..4adab40 100644 --- a/src/main/edu/wisc/services/cbs/order/header/SoapOrderHeaderService.php +++ b/src/main/edu/wisc/services/cbs/order/header/SoapOrderHeaderService.php @@ -52,7 +52,7 @@ class SoapOrderHeaderService implements OrderHeaderService, SoapService /** * {@inheritdoc} */ - public function createOrderHeader(OrderHeader $header) + public function createOrderHeader(OrderHeader $header): OrderServiceResponse { /** @var OutputParameters */ $outputParameters = $this->soapClient->HEADER_CREATE( diff --git a/src/main/edu/wisc/services/cbs/order/interfacing/MockOrderInterfacingService.php b/src/main/edu/wisc/services/cbs/order/interfacing/MockOrderInterfacingService.php index 2408537..017ae86 100644 --- a/src/main/edu/wisc/services/cbs/order/interfacing/MockOrderInterfacingService.php +++ b/src/main/edu/wisc/services/cbs/order/interfacing/MockOrderInterfacingService.php @@ -3,19 +3,19 @@ namespace edu\wisc\services\cbs\order\interfacing; use edu\wisc\services\cbs\api\MockService; -use edu\wisc\services\cbs\common\AbstractServiceResponse; +use edu\wisc\services\cbs\common\ServiceResponseInterface; use edu\wisc\services\cbs\order\OrderServiceResponse; class MockOrderInterfacingService implements OrderInterfacingService, MockService { - /** @var AbstractServiceResponse */ + /** @var OrderServiceResponse */ private $response; /** * {@inheritdoc} */ - public function __construct(AbstractServiceResponse $response = null) + public function __construct(ServiceResponseInterface $response = null) { if ($response === null) { $this->response = new OrderServiceResponse( diff --git a/src/main/edu/wisc/services/cbs/order/line/MockOrderLineService.php b/src/main/edu/wisc/services/cbs/order/line/MockOrderLineService.php index 69f3d29..44ed049 100644 --- a/src/main/edu/wisc/services/cbs/order/line/MockOrderLineService.php +++ b/src/main/edu/wisc/services/cbs/order/line/MockOrderLineService.php @@ -2,7 +2,7 @@ namespace edu\wisc\services\cbs\order\line; use edu\wisc\services\cbs\api\MockService; -use edu\wisc\services\cbs\common\AbstractServiceResponse; +use edu\wisc\services\cbs\common\ServiceResponseInterface; use edu\wisc\services\cbs\order\OrderServiceResponse; class MockOrderLineService implements OrderLineService, MockService @@ -12,7 +12,7 @@ class MockOrderLineService implements OrderLineService, MockService private $response; /** @inheritdoc */ - public function __construct(AbstractServiceResponse $response = null) + public function __construct(ServiceResponseInterface $response = null) { $this->response = $response; if ($response === null) { diff --git a/src/main/edu/wisc/services/cbs/price/MockPriceService.php b/src/main/edu/wisc/services/cbs/price/MockPriceService.php index 56a57c0..2047815 100644 --- a/src/main/edu/wisc/services/cbs/price/MockPriceService.php +++ b/src/main/edu/wisc/services/cbs/price/MockPriceService.php @@ -4,6 +4,8 @@ namespace edu\wisc\services\cbs\price; use edu\wisc\services\cbs\api\MockService; use edu\wisc\services\cbs\common\AbstractServiceResponse; +use edu\wisc\services\cbs\common\ServiceResponseInterface; +use edu\wisc\services\cbs\order\OrderServiceResponse; use Money\Money; class MockPriceService implements PriceService, MockService @@ -15,7 +17,7 @@ class MockPriceService implements PriceService, MockService /** * @inheritdoc */ - public function __construct(AbstractServiceResponse $response = null) + public function __construct(ServiceResponseInterface $response = null) { if ($response === null) { $this->response = new PriceServiceResponse(true, 'Mock CBS Product Price Response'); diff --git a/src/main/edu/wisc/services/cbs/product/MockProductService.php b/src/main/edu/wisc/services/cbs/product/MockProductService.php index b1f2ca8..07b43ac 100755 --- a/src/main/edu/wisc/services/cbs/product/MockProductService.php +++ b/src/main/edu/wisc/services/cbs/product/MockProductService.php @@ -3,7 +3,7 @@ namespace edu\wisc\services\cbs\product; use edu\wisc\services\cbs\api\MockService; -use edu\wisc\services\cbs\common\AbstractServiceResponse; +use edu\wisc\services\cbs\common\ServiceResponseInterface; class MockProductService implements ProductService, MockService { @@ -14,7 +14,7 @@ class MockProductService implements ProductService, MockService /** * @inheritdoc */ - public function __construct(AbstractServiceResponse $response = null) + public function __construct(ServiceResponseInterface $response = null) { if (null === $response) { $this->response = new ProductServiceResponse(true, 'Mock CBS Response'); -- GitLab