From 37201c285c2e2c1f48f99d56ca36c88e4c394e39 Mon Sep 17 00:00:00 2001 From: prabhav-plivo Date: Wed, 26 Jul 2023 15:30:40 +0530 Subject: [PATCH 1/5] added cnam-storage changes --- src/Plivo/Resources/Number/Number.php | 1 + src/Plivo/Resources/Number/NumberInterface.php | 7 +++++++ .../PhoneNumber/PhoneNumberBuyResponse.php | 10 +++++++++- .../PhoneNumber/PhoneNumberInterface.php | 16 ++++++++++++++-- src/Plivo/Resources/ResponseUpdate.php | 10 +++++++++- 5 files changed, 40 insertions(+), 4 deletions(-) diff --git a/src/Plivo/Resources/Number/Number.php b/src/Plivo/Resources/Number/Number.php index 81c88794..215750a9 100644 --- a/src/Plivo/Resources/Number/Number.php +++ b/src/Plivo/Resources/Number/Number.php @@ -76,6 +76,7 @@ function __construct(BaseClient $client, array $response, $authId) 'tollFreeSMSVerification' => $response['toll_free_sms_verification'], 'renewalDate' => $response['renewal_date'], 'cnamLookup' => isset($response['cnam_lookup']) ? $response['cnam_lookup'] : null, + 'cnam' => isset($response['cnam']) ? $response['cnam'], ]; $this->pathParams = [ 'authId' => $authId, diff --git a/src/Plivo/Resources/Number/NumberInterface.php b/src/Plivo/Resources/Number/NumberInterface.php index 6811d062..672f1b85 100644 --- a/src/Plivo/Resources/Number/NumberInterface.php +++ b/src/Plivo/Resources/Number/NumberInterface.php @@ -134,6 +134,9 @@ public function get($number) * + [string] app_id - The application id of the application that is to be linked. * + [string] subaccount - The auth_id of the subaccount to which this number should be added. This can only be performed by a main account holder. * + [string] cnam_lookup - The cnam lookup value for the number (Valid values : enabled, disabled). + * + [string] cnam - The cnam attached to the number + * + [string] callback_method - method ot attach the cnam + * + [string] callback_url - url to call callback_method for attching cnam * @return ResponseUpdate */ public function update($number, $optionalArgs = []) @@ -144,11 +147,15 @@ public function update($number, $optionalArgs = []) ); $responseContents = $response->getContent(); + $newCNAM = isset($responseContents['new_cnam']) ? $responseContents['new_cnam'] : null; + $CnamUpdateStatus = isset($responseContents['cnam_update_status']) ? $responseContents['cnam_update_status'] : null; if(!array_key_exists("error",$responseContents)){ return new ResponseUpdate( $responseContents['api_id'], $responseContents['message'], + $newCNAM, + $CnamUpdateStatus, $response->getStatusCode() ); } else { diff --git a/src/Plivo/Resources/PhoneNumber/PhoneNumberBuyResponse.php b/src/Plivo/Resources/PhoneNumber/PhoneNumberBuyResponse.php index a58c6c24..c6ebb014 100644 --- a/src/Plivo/Resources/PhoneNumber/PhoneNumberBuyResponse.php +++ b/src/Plivo/Resources/PhoneNumber/PhoneNumberBuyResponse.php @@ -19,14 +19,22 @@ class PhoneNumberBuyResponse extends ResponseUpdate * PhoneNumberBuyResponse constructor. * @param $message * @param $number + * @param $newCNAM + * @param $CnamUpdateStatus * @param $numberStatus * @param $status */ - public function __construct($apiID, $message, $number, $numberStatus, $status, $statusCode) + public function __construct($apiID, $message, $number, $newCNAM, $CnamUpdateStatus, $numberStatus, $status, $statusCode) { parent::__construct($apiID, $message, $statusCode); $this->number = $number; + if ($newCNAM !== null){ + $this->newCNAM = $newCNAM; + } + if ($CnamUpdateStatus !== null){ + $this->CnamUpdateStatus = $CnamUpdateStatus; + } $this->numberStatus = $numberStatus; $this->status = $status; } diff --git a/src/Plivo/Resources/PhoneNumber/PhoneNumberInterface.php b/src/Plivo/Resources/PhoneNumber/PhoneNumberInterface.php index 930d70cc..00eac583 100644 --- a/src/Plivo/Resources/PhoneNumber/PhoneNumberInterface.php +++ b/src/Plivo/Resources/PhoneNumber/PhoneNumberInterface.php @@ -90,21 +90,33 @@ public function getList($countryIso, $optionalArgs = []) * @param number $phoneNumber * @param string|null $appId * @param string|null $cnamLookup + * @param string|null $cnam + * @param string|null $callbackMethod + * @param string|null callbackUrl * @return PhoneNumberBuyResponse output */ - public function buy($phoneNumber, $appId = null, $cnamLookup = null) + public function buy($phoneNumber, $appId = null, $cnamLookup = null, $cnam = null, $callbackMethod = null, $callbackUrl = null) { $response = $this->client->update( $this->uri . $phoneNumber . '/', - ['app_id'=>$appId,'cnam_lookup'=>$cnamLookup] + ['app_id'=>$appId,'cnam_lookup'=>$cnamLookup, 'cnam'=>$cnam, 'callback_url' =>$callbackMethod, 'callback_method'=>$callbackMethod] ); $responseContents = $response->getContent(); + + if (array_key_exists("numbers", $responseContents)) { + $numbers = $responseContents['numbers'][0]; + $newCNAM = isset($numbers['new_cnam']) ? $numbers['new_cnam'] : null; + $CnamUpdateStatus = isset($numbers['cnam_update_status']) ? $numbers['cnam_update_status'] : null; + } + if(!array_key_exists("error",$responseContents)){ return new PhoneNumberBuyResponse( $responseContents['api_id'], $responseContents['message'], $responseContents['numbers'][0]['number'], + $newCNAM, + $CnamUpdateStatus, $responseContents['numbers'][0]['status'], $responseContents['status'], $response->getStatusCode() diff --git a/src/Plivo/Resources/ResponseUpdate.php b/src/Plivo/Resources/ResponseUpdate.php index dd260465..deb98e27 100644 --- a/src/Plivo/Resources/ResponseUpdate.php +++ b/src/Plivo/Resources/ResponseUpdate.php @@ -28,12 +28,20 @@ class ResponseUpdate /** * ResponseUpdate constructor. * @param $message + * @param $newCNAM + * @param $CnamUpdateStatus */ - public function __construct($apiId, $message,$statusCode = 200) + public function __construct($apiId, $message, $newCNAM, $CnamUpdateStatus, $statusCode = 200) { $this->_message = $message; $this->apiId = $apiId; $this->statusCode = $statusCode; + if ($newCNAM !== null){ + $this->newCNAM = $newCNAM; + } + if ($CnamUpdateStatus !== null){ + $this->CnamUpdateStatus = $CnamUpdateStatus; + } } /** From 3de81c21996c35b9f174aafa799fb5298376047d Mon Sep 17 00:00:00 2001 From: prabhav-plivo Date: Wed, 26 Jul 2023 16:06:11 +0530 Subject: [PATCH 2/5] renamed CnamUpdateStatus to cnamUpdateStatus --- src/Plivo/Resources/Number/NumberInterface.php | 4 ++-- .../Resources/PhoneNumber/PhoneNumberBuyResponse.php | 8 ++++---- src/Plivo/Resources/PhoneNumber/PhoneNumberInterface.php | 4 ++-- src/Plivo/Resources/ResponseUpdate.php | 8 ++++---- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Plivo/Resources/Number/NumberInterface.php b/src/Plivo/Resources/Number/NumberInterface.php index 672f1b85..f5adc94b 100644 --- a/src/Plivo/Resources/Number/NumberInterface.php +++ b/src/Plivo/Resources/Number/NumberInterface.php @@ -148,14 +148,14 @@ public function update($number, $optionalArgs = []) $responseContents = $response->getContent(); $newCNAM = isset($responseContents['new_cnam']) ? $responseContents['new_cnam'] : null; - $CnamUpdateStatus = isset($responseContents['cnam_update_status']) ? $responseContents['cnam_update_status'] : null; + $cnamUpdateStatus = isset($responseContents['cnam_update_status']) ? $responseContents['cnam_update_status'] : null; if(!array_key_exists("error",$responseContents)){ return new ResponseUpdate( $responseContents['api_id'], $responseContents['message'], $newCNAM, - $CnamUpdateStatus, + $cnamUpdateStatus, $response->getStatusCode() ); } else { diff --git a/src/Plivo/Resources/PhoneNumber/PhoneNumberBuyResponse.php b/src/Plivo/Resources/PhoneNumber/PhoneNumberBuyResponse.php index c6ebb014..62cfc9af 100644 --- a/src/Plivo/Resources/PhoneNumber/PhoneNumberBuyResponse.php +++ b/src/Plivo/Resources/PhoneNumber/PhoneNumberBuyResponse.php @@ -20,11 +20,11 @@ class PhoneNumberBuyResponse extends ResponseUpdate * @param $message * @param $number * @param $newCNAM - * @param $CnamUpdateStatus + * @param $cnamUpdateStatus * @param $numberStatus * @param $status */ - public function __construct($apiID, $message, $number, $newCNAM, $CnamUpdateStatus, $numberStatus, $status, $statusCode) + public function __construct($apiID, $message, $number, $newCNAM, $cnamUpdateStatus, $numberStatus, $status, $statusCode) { parent::__construct($apiID, $message, $statusCode); @@ -32,8 +32,8 @@ public function __construct($apiID, $message, $number, $newCNAM, $CnamUpdateStat if ($newCNAM !== null){ $this->newCNAM = $newCNAM; } - if ($CnamUpdateStatus !== null){ - $this->CnamUpdateStatus = $CnamUpdateStatus; + if ($cnamUpdateStatus !== null){ + $this->cnamUpdateStatus = $cnamUpdateStatus; } $this->numberStatus = $numberStatus; $this->status = $status; diff --git a/src/Plivo/Resources/PhoneNumber/PhoneNumberInterface.php b/src/Plivo/Resources/PhoneNumber/PhoneNumberInterface.php index 00eac583..15ca3cf3 100644 --- a/src/Plivo/Resources/PhoneNumber/PhoneNumberInterface.php +++ b/src/Plivo/Resources/PhoneNumber/PhoneNumberInterface.php @@ -107,7 +107,7 @@ public function buy($phoneNumber, $appId = null, $cnamLookup = null, $cnam = nul if (array_key_exists("numbers", $responseContents)) { $numbers = $responseContents['numbers'][0]; $newCNAM = isset($numbers['new_cnam']) ? $numbers['new_cnam'] : null; - $CnamUpdateStatus = isset($numbers['cnam_update_status']) ? $numbers['cnam_update_status'] : null; + $cnamUpdateStatus = isset($numbers['cnam_update_status']) ? $numbers['cnam_update_status'] : null; } if(!array_key_exists("error",$responseContents)){ @@ -116,7 +116,7 @@ public function buy($phoneNumber, $appId = null, $cnamLookup = null, $cnam = nul $responseContents['message'], $responseContents['numbers'][0]['number'], $newCNAM, - $CnamUpdateStatus, + $cnamUpdateStatus, $responseContents['numbers'][0]['status'], $responseContents['status'], $response->getStatusCode() diff --git a/src/Plivo/Resources/ResponseUpdate.php b/src/Plivo/Resources/ResponseUpdate.php index deb98e27..43d4998c 100644 --- a/src/Plivo/Resources/ResponseUpdate.php +++ b/src/Plivo/Resources/ResponseUpdate.php @@ -29,9 +29,9 @@ class ResponseUpdate * ResponseUpdate constructor. * @param $message * @param $newCNAM - * @param $CnamUpdateStatus + * @param $cnamUpdateStatus */ - public function __construct($apiId, $message, $newCNAM, $CnamUpdateStatus, $statusCode = 200) + public function __construct($apiId, $message, $newCNAM, $cnamUpdateStatus, $statusCode = 200) { $this->_message = $message; $this->apiId = $apiId; @@ -39,8 +39,8 @@ public function __construct($apiId, $message, $newCNAM, $CnamUpdateStatus, $stat if ($newCNAM !== null){ $this->newCNAM = $newCNAM; } - if ($CnamUpdateStatus !== null){ - $this->CnamUpdateStatus = $CnamUpdateStatus; + if ($cnamUpdateStatus !== null){ + $this->cnamUpdateStatus = $cnamUpdateStatus; } } From 923ae8fbf4840473231114f33d715a270610d1d6 Mon Sep 17 00:00:00 2001 From: prabhav-plivo Date: Fri, 28 Jul 2023 12:35:01 +0530 Subject: [PATCH 3/5] new class for update response --- .../Resources/Number/NumberInterface.php | 4 +-- .../Resources/Number/NumberUpdateResponse.php | 34 +++++++++++++++++++ src/Plivo/Resources/ResponseUpdate.php | 10 +----- 3 files changed, 37 insertions(+), 11 deletions(-) create mode 100644 src/Plivo/Resources/Number/NumberUpdateResponse.php diff --git a/src/Plivo/Resources/Number/NumberInterface.php b/src/Plivo/Resources/Number/NumberInterface.php index f5adc94b..84a8ccc4 100644 --- a/src/Plivo/Resources/Number/NumberInterface.php +++ b/src/Plivo/Resources/Number/NumberInterface.php @@ -137,7 +137,7 @@ public function get($number) * + [string] cnam - The cnam attached to the number * + [string] callback_method - method ot attach the cnam * + [string] callback_url - url to call callback_method for attching cnam - * @return ResponseUpdate + * @return NumberUpdateResponse output */ public function update($number, $optionalArgs = []) { @@ -151,7 +151,7 @@ public function update($number, $optionalArgs = []) $cnamUpdateStatus = isset($responseContents['cnam_update_status']) ? $responseContents['cnam_update_status'] : null; if(!array_key_exists("error",$responseContents)){ - return new ResponseUpdate( + return new NumberUpdateResponse( $responseContents['api_id'], $responseContents['message'], $newCNAM, diff --git a/src/Plivo/Resources/Number/NumberUpdateResponse.php b/src/Plivo/Resources/Number/NumberUpdateResponse.php new file mode 100644 index 00000000..3a50d9f7 --- /dev/null +++ b/src/Plivo/Resources/Number/NumberUpdateResponse.php @@ -0,0 +1,34 @@ +newCNAM = $newCNAM; + } + if ($cnamUpdateStatus !== null){ + $this->cnamUpdateStatus = $cnamUpdateStatus; + } + } + + +} \ No newline at end of file diff --git a/src/Plivo/Resources/ResponseUpdate.php b/src/Plivo/Resources/ResponseUpdate.php index 43d4998c..dd260465 100644 --- a/src/Plivo/Resources/ResponseUpdate.php +++ b/src/Plivo/Resources/ResponseUpdate.php @@ -28,20 +28,12 @@ class ResponseUpdate /** * ResponseUpdate constructor. * @param $message - * @param $newCNAM - * @param $cnamUpdateStatus */ - public function __construct($apiId, $message, $newCNAM, $cnamUpdateStatus, $statusCode = 200) + public function __construct($apiId, $message,$statusCode = 200) { $this->_message = $message; $this->apiId = $apiId; $this->statusCode = $statusCode; - if ($newCNAM !== null){ - $this->newCNAM = $newCNAM; - } - if ($cnamUpdateStatus !== null){ - $this->cnamUpdateStatus = $cnamUpdateStatus; - } } /** From 36576038d77a76597a9c8fbda297d0afcdfb5ba4 Mon Sep 17 00:00:00 2001 From: prabhav-plivo Date: Fri, 28 Jul 2023 12:38:55 +0530 Subject: [PATCH 4/5] added cnam field in tests --- tests/Mocks/numberGetResponse.json | 1 + tests/Mocks/numberListResponse.json | 3 +++ 2 files changed, 4 insertions(+) diff --git a/tests/Mocks/numberGetResponse.json b/tests/Mocks/numberGetResponse.json index 03d0b660..4226b8d7 100644 --- a/tests/Mocks/numberGetResponse.json +++ b/tests/Mocks/numberGetResponse.json @@ -19,6 +19,7 @@ "voice_rate": "0.00850", "mms_enabled": true, "mms_rate": "0.00750", + "cnam": "plivo", "cnam_lookup": "enabled", "compliance_application_id": "20372631212782797", "compliance_status": "submitted", diff --git a/tests/Mocks/numberListResponse.json b/tests/Mocks/numberListResponse.json index 370ded1f..57d281e5 100644 --- a/tests/Mocks/numberListResponse.json +++ b/tests/Mocks/numberListResponse.json @@ -28,6 +28,7 @@ "voice_rate": "0.00850", "mms_enabled": true, "mms_rate": "0.00950", + "cnam": "plivo", "cnam_lookup": "enabled", "compliance_application_id": "20372631212782797", "compliance_status": "submitted", @@ -56,6 +57,7 @@ "voice_rate": "0.00850", "mms_enabled": true, "mms_rate": "0.00750", + "cnam": null, "cnam_lookup": "enabled", "compliance_application_id": "20372631212782797", "compliance_status": "submitted", @@ -84,6 +86,7 @@ "voice_rate": "0.00850", "mms_enabled": true, "mms_rate": "0.00850", + "cnam": "plivo", "cnam_lookup": "disabled", "compliance_application_id": "20372631212782799", "compliance_status": "submitted", From 5facdd43410114b922b8454580bbb255f7f0adef Mon Sep 17 00:00:00 2001 From: prabhav-plivo Date: Fri, 28 Jul 2023 12:44:07 +0530 Subject: [PATCH 5/5] added cnam field in tests --- src/Plivo/Resources/Number/Number.php | 2 +- tests/Mocks/numberListResponse.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Plivo/Resources/Number/Number.php b/src/Plivo/Resources/Number/Number.php index 215750a9..3475ef8d 100644 --- a/src/Plivo/Resources/Number/Number.php +++ b/src/Plivo/Resources/Number/Number.php @@ -76,7 +76,7 @@ function __construct(BaseClient $client, array $response, $authId) 'tollFreeSMSVerification' => $response['toll_free_sms_verification'], 'renewalDate' => $response['renewal_date'], 'cnamLookup' => isset($response['cnam_lookup']) ? $response['cnam_lookup'] : null, - 'cnam' => isset($response['cnam']) ? $response['cnam'], + 'cnam' => isset($response['cnam']) ? $response['cnam'] : null, ]; $this->pathParams = [ 'authId' => $authId, diff --git a/tests/Mocks/numberListResponse.json b/tests/Mocks/numberListResponse.json index 57d281e5..d75980a6 100644 --- a/tests/Mocks/numberListResponse.json +++ b/tests/Mocks/numberListResponse.json @@ -57,7 +57,7 @@ "voice_rate": "0.00850", "mms_enabled": true, "mms_rate": "0.00750", - "cnam": null, + "cnam": "", "cnam_lookup": "enabled", "compliance_application_id": "20372631212782797", "compliance_status": "submitted",