diff --git a/.env.example b/.env.example index 6b1aae9..06558fe 100644 --- a/.env.example +++ b/.env.example @@ -9,4 +9,6 @@ OST_KIT_RECOVERY_OWNER_ADDRESS=RecoveryOwnerAddressOfUser OST_KIT_SESSION_ADDRESS=SessionAddressOfUser OST_KIT_RULE_ADDRESS=AddressForExecutingRule OST_KIT_USER2_TOKEN_HOLDER_ADDRESS=TokenHolderAddressForReceiver -OST_KIT_TRANSACTION_ID=TransactionIdUsedToTestGet \ No newline at end of file +OST_KIT_TRANSACTION_ID=TransactionIdUsedToTestGet +OST_KIT_REDEMPTION_ID=RedemptionIdUsedToTestGet +OST_KIT_REDEEMABLE_SKU_ID=RedeemableSkuIdUsedToTestGet \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 2326538..109ae36 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,7 +16,7 @@ php: - 5.6 - 7.0 - 7.1 - - 7.2 + - 7.3 env: - BUILD_ENV=TRAVIS before_install: diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ebe342..4487c46 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +[OST PHP SDK v2.2.3](https://github.com/ostdotcom/ost-sdk-php/tree/v2.2.3) +--- + +* Added redemptions module to call redemptions management OST APIs. +* Added redeemable sku module to call redeemable sku management OST APIs. + [OST PHP SDK v2.2.2](https://github.com/ostdotcom/ost-sdk-php/tree/v2.2.2) --- diff --git a/README.md b/README.md index fa9754e..4efc11b 100644 --- a/README.md +++ b/README.md @@ -807,3 +807,109 @@ For executing transactions, you need to understand the 4 modules described below $response = $webhooksService->verifySignature($params); echo json_encode($response, JSON_PRETTY_PRINT); ``` + + +### Redemption Modules + +Two modules of redemption, "Redeemable SKUs" and "User Redemptions", are described below. + +#### Redeemable SKUs Module + +* Initialize Redeemable SKUs service object to perform redeemable skus specific actions. + + ```php + $redeemableSkusService = $ostObj->services->redeemableSkus; + ``` + +* Get Redeemable SKU detail using the redeemable sku id. + + ```php + // Mandatory API parameters + + // Fetch details of following redeemable sku. + $redeemableSkuId = '1'; + + $getParams = array(); + $getParams['redeemable_sku_id'] = $redeemableSkuId; + $response = $redeemableSkusService->get($getParams)->wait(); + echo json_encode($response, JSON_PRETTY_PRINT); + ``` + +* Get Redeemable SKUs List. Pagination is supported by this API. + + ```php + // Mandatory API parameters + // NOTE: No mandatory parameters. + + // Optional API parameters + + // Limit. + $limit = 10; + + // Array of redeemable SKU ids. + $redeemableSkuIds = array('1', '2'); + + // Pagination identifier from the previous API call response. Not needed for page one. + $paginationIdentifier = 'eyJsY___'; + + $getParams = array(); + $getParams['redeemable_sku_ids'] = $redeemableSkuIds; + $getParams['limit'] = $limit; + $getParams['pagination_identifier'] = $paginationIdentifier; + + $response = $redeemableSkusService->getList($getParams)->wait(); + echo json_encode($response, JSON_PRETTY_PRINT); + ``` + +#### User Redemptions Module + +* Initialize Redemptions service object to perform user redemption specific actions. + + ```php + $redemptionsService = $ostObj->services->redemptions; + ``` + +* Get User redemption details using the userId and redemptionId. + + ```php + // Mandatory API parameters + + // UserId of user for whom redemption details needs to be fetched. + $userId = 'ee8___'; + + // Unique identifier of the redemption of user. + $redemptionId = 'aa___'; + + $getParams = array(); + $getParams['user_id'] = $userId; + $getParams['redemption_id'] = $redemptionId; + $response = $redemptionsService->get($getParams)->wait(); + echo json_encode($response, JSON_PRETTY_PRINT); + ``` + +* Get User Redemptions List. Pagination is supported by this API. + + ```php + // Mandatory API parameters + $userId = 'ee89___'; + + // Optional API parameters + + // Limit. + $limit = 10; + + // Array of user redemption uuids. + $redemptionIds = array('a743___', 'a743___'); + + // Pagination identifier from the previous API call response. Not needed for page one. + $paginationIdentifier = 'eyJsY___'; + + $getParams = array(); + $getParams['user_id'] = $userId; + $getParams['redemption_ids'] = $redemptionIds; + $getParams['limit'] = $limit; + $getParams['pagination_identifier'] = $paginationIdentifier; + + $response = $redemptionsService->getList($getParams)->wait(); + echo json_encode($response, JSON_PRETTY_PRINT); + ``` \ No newline at end of file diff --git a/VERSION b/VERSION index b1b25a5..6b4d157 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.2.2 +2.2.3 \ No newline at end of file diff --git a/src/Services/Base.php b/src/Services/Base.php index c7c4c45..eeb13f8 100644 --- a/src/Services/Base.php +++ b/src/Services/Base.php @@ -131,6 +131,30 @@ protected function getTransactionId(array $params) return $this->getValueForKey($params, "transaction_id"); } + /** + * getRedemptionId from params array + * + * @param array $params request object which would fire API calls + * + * @return string + */ + protected function getRedemptionId(array $params) + { + return $this->getValueForKey($params, "redemption_id"); + } + + /** + * getRedeemableSkuId from params array + * + * @param array $params request object which would fire API calls + * + * @return string + */ + protected function getRedeemableSkuId(array $params) + { + return $this->getValueForKey($params, "redeemable_sku_id"); + } + /** * getRecoveryOwnerAddress from params array * diff --git a/src/Services/Manifest.php b/src/Services/Manifest.php index 33c59ce..dd9d467 100644 --- a/src/Services/Manifest.php +++ b/src/Services/Manifest.php @@ -32,6 +32,12 @@ class Manifest /** @var RecoveryOwners object which has methods to fire API's belonging to RecoveryOwners module */ public $recoveryOwners; + /** @var Redemptions object which has methods to fire API's belonging to Redemptions module */ + public $redemptions; + + /** @var RedeemableSkus object which has methods to fire API's belonging to RedeemableSkus module */ + public $redeemableSkus; + /** @var Rules object which has methods to fire API's belonging to Rules module */ public $rules; @@ -83,6 +89,10 @@ public function __construct($params) $this->recoveryOwners = new RecoveryOwners($requestObj); + $this->redemptions = new Redemptions($requestObj); + + $this->redeemableSkus = new RedeemableSkus($requestObj); + $this->rules = new Rules($requestObj); $this->sessions = new Sessions($requestObj); diff --git a/src/Services/RedeemableSkus.php b/src/Services/RedeemableSkus.php new file mode 100644 index 0000000..6fc8eb7 --- /dev/null +++ b/src/Services/RedeemableSkus.php @@ -0,0 +1,44 @@ +requestObj->get($this->getPrefix() . '/', $params); + } + + /** + * Get RedeemableSku details of a uuid + * + * @param array $params params for fetching details of a redeemable sku + * + * @return object + * + */ + public function get(array $params = array()) + { + return $this->requestObj->get($this->getPrefix() . '/' . $this->getRedeemableSkuId($params) . '/', $params); + } + +} diff --git a/src/Services/Redemptions.php b/src/Services/Redemptions.php new file mode 100644 index 0000000..fd1f0d4 --- /dev/null +++ b/src/Services/Redemptions.php @@ -0,0 +1,45 @@ +requestObj->get($this->getPrefix() . '/' . $this->getUserId($params) . $this->getSuffix() . '/', $params); + } + + /** + * Get Redemption details of a uuid + * + * @param array $params params for fetching details of a redemption + * + * @return object + * + */ + public function get(array $params = array()) + { + return $this->requestObj->get($this->getPrefix() . '/' . $this->getUserId($params) . $this->getSuffix() . '/' . $this->getRedemptionId($params) . '/', $params); + } + +} diff --git a/tests/Services/RedeemableSkusTest.php b/tests/Services/RedeemableSkusTest.php new file mode 100644 index 0000000..8c2a3b9 --- /dev/null +++ b/tests/Services/RedeemableSkusTest.php @@ -0,0 +1,47 @@ +ostObj->services->redeemableSkus; + $params = array(); + $params['redeemable_sku_id'] = $this->environmentVariables['redeemableSkuId']; + $response = $redeemableSkusService->get($params)->wait(); + $this->isSuccessResponse($response); + } + + /** + * + * Get all redeemableSkus + * + * @test + * + * @throws Exception + */ + public function getList() + { + $ostObj = $this->instantiateOSTSDKForV2Api(); + $redeemableSkusService = $ostObj->services->redeemableSkus; + $params = array(); + $response = $redeemableSkusService->getList($params)->wait(); + $this->isSuccessResponse($response); + } + +} diff --git a/tests/Services/RedemptionsTest.php b/tests/Services/RedemptionsTest.php new file mode 100644 index 0000000..5dff5af --- /dev/null +++ b/tests/Services/RedemptionsTest.php @@ -0,0 +1,49 @@ +ostObj->services->redemptions; + $params = array(); + $params['user_id'] = $this->environmentVariables['userId']; + $params['redemption_id'] = $this->environmentVariables['redemptionId']; + $response = $redemptionsService->get($params)->wait(); + $this->isSuccessResponse($response); + } + + /** + * + * Get all redemptions for a user + * + * @test + * + * @throws Exception + */ + public function getList() + { + $ostObj = $this->instantiateOSTSDKForV2Api(); + $redemptionsService = $ostObj->services->redemptions; + $params = array(); + $params['user_id'] = $this->environmentVariables['userId']; + $response = $redemptionsService->getList($params)->wait(); + $this->isSuccessResponse($response); + } + +} diff --git a/tests/Services/ServiceTestBase.php b/tests/Services/ServiceTestBase.php index b52a03c..157c16c 100644 --- a/tests/Services/ServiceTestBase.php +++ b/tests/Services/ServiceTestBase.php @@ -55,6 +55,8 @@ public function setEnvironmentVariables() $tempEnvironmentVariables['user2TokenHolderAddress'] = getenv('OST_KIT_USER2_TOKEN_HOLDER_ADDRESS'); $tempEnvironmentVariables['transactionId'] = getenv('OST_KIT_TRANSACTION_ID'); + $tempEnvironmentVariables['redemptionId'] = getenv('OST_KIT_REDEMPTION_ID'); + $tempEnvironmentVariables['redeemableSkuId'] = getenv('OST_KIT_REDEEMABLE_SKU_ID'); $tempEnvironmentVariables['companyUserId'] = getenv('OST_KIT_COMPANY_USER_ID'); return $tempEnvironmentVariables; } @@ -114,4 +116,4 @@ public function generateRandomAddress() { return "0x".$randomString; } -} \ No newline at end of file +}