From 7134863395c48acad45e972893cf9d0cfafab05f Mon Sep 17 00:00:00 2001 From: Akintilerewa oreoluwa Date: Sat, 7 Aug 2021 17:42:36 +0100 Subject: [PATCH 01/20] Update composer.json --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 6abe3de..f47cf72 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,7 @@ "license": "MIT", "require": { "php": "^7.2.5", - "illuminate/support": "^7.0" + "illuminate/support": "^8.0" }, "autoload": { "psr-4": { From ff1397c98874a848d3068e3992daab59abe44edd Mon Sep 17 00:00:00 2001 From: Akintilerewa oreoluwa Date: Sat, 7 Aug 2021 17:45:05 +0100 Subject: [PATCH 02/20] Testing for laravel 8.0* --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0377fd0..eb09d30 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ Laravel-USPS is a composer package that allows you to integrate the USPS Address / Shipping API. This package is ported from @author Vincent Gabriel https://github.com/VinceG/USPS-php-api - Requires a valid USPS API Username - - Tested on Laravel 7 + - Tested on Laravel 8 ## Installation From 5f4377d4b420e8ffb7eabdeec9ca9a53e542c616 Mon Sep 17 00:00:00 2001 From: Akintilerewa oreoluwa Date: Sat, 7 Aug 2021 18:31:31 +0100 Subject: [PATCH 03/20] Update Usps.php --- src/Usps.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/Usps.php b/src/Usps.php index b3342d8..4aef280 100644 --- a/src/Usps.php +++ b/src/Usps.php @@ -81,4 +81,21 @@ public function trackConfirm($ids, $sourceId = null) return $trackConfirm->getArrayResponse(); } + + public function ratepackage(){ + $rate = new Rate($this->config['username']); + $ratepackage = new RatePackage(); + $ratepackage->setService((array_key_exists('Service', $request) ? $request['Service'] : null )); + $ratepackage->setFirstClassMailType((array_key_exists('FirstClassMailType', $request) ? $request['FirstClassMailType'] : null )); + $ratepackage->setZipOrigination((array_key_exists('ZipOrigination', $request) ? $request['ZipOrigination'] : null )); + $ratepackage->setZipDestination((array_key_exists('ZipDestination', $request) ? $request['ZipDestination'] : null )); + $ratepackage->setPounds((array_key_exists('Pounds', $request) ? $request['Pounds'] : null )); + $ratepackage->setOunces((array_key_exists('Ounces', $request) ? $request['Ounces'] : null )); + $ratepackage->setContainer((array_key_exists('Container', $request) ? $request['Container'] : null )); + $ratepackage->setSize((array_key_exists('Size', $request) ? $request['Size'] : null )); + + // Add the Package object to the Rate Package class + $rate->addPackage() + + } } From f69a227e7186a6a539239ab1d0645e81e4b7d9ee Mon Sep 17 00:00:00 2001 From: Akintilerewa oreoluwa Date: Sat, 7 Aug 2021 18:32:20 +0100 Subject: [PATCH 04/20] Update Usps.php --- src/Usps.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Usps.php b/src/Usps.php index 4aef280..2fb21bd 100644 --- a/src/Usps.php +++ b/src/Usps.php @@ -82,7 +82,7 @@ public function trackConfirm($ids, $sourceId = null) return $trackConfirm->getArrayResponse(); } - public function ratepackage(){ + public function ratepackage($request){ $rate = new Rate($this->config['username']); $ratepackage = new RatePackage(); $ratepackage->setService((array_key_exists('Service', $request) ? $request['Service'] : null )); From 86cb158eb551378492fe0450f0064ea324b03a25 Mon Sep 17 00:00:00 2001 From: Akintilerewa oreoluwa Date: Sat, 7 Aug 2021 21:22:24 +0100 Subject: [PATCH 05/20] Test Rate Calculator added Test Rate calculator api added --- src/Usps.php | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/Usps.php b/src/Usps.php index 2fb21bd..0760359 100644 --- a/src/Usps.php +++ b/src/Usps.php @@ -82,7 +82,7 @@ public function trackConfirm($ids, $sourceId = null) return $trackConfirm->getArrayResponse(); } - public function ratepackage($request){ + public function rate($request){ $rate = new Rate($this->config['username']); $ratepackage = new RatePackage(); $ratepackage->setService((array_key_exists('Service', $request) ? $request['Service'] : null )); @@ -95,7 +95,21 @@ public function ratepackage($request){ $ratepackage->setSize((array_key_exists('Size', $request) ? $request['Size'] : null )); // Add the Package object to the Rate Package class - $rate->addPackage() + $rate->addPackage($ratepackage); + + // Perform the request and return result + $val1 = $rate->getRate(); + $val2 = $rate->getArrayResponse(); + + // var_dump($verify->isError()); + + // See if it was successful + if ($rate->isSuccess()) { + return ['rate' => $val2['RateValidateResponse']['Rate']]; + } else { + return ['error' => $verify->getErrorMessage()]; + } + } } From 43c3b0abf306fdfc1b1819197817758b8e03512f Mon Sep 17 00:00:00 2001 From: Akintilerewa oreoluwa Date: Sat, 7 Aug 2021 21:38:48 +0100 Subject: [PATCH 06/20] Update composer.json --- composer.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index f47cf72..104c6e9 100644 --- a/composer.json +++ b/composer.json @@ -1,11 +1,11 @@ { "name": "johnpaulmedina/laravel-usps", - "description": "USPS API for Laravel 7", + "description": "USPS API for Laravel 8", "type": "library", "keywords": [ "usps", "laravel", - "laravel7", + "laravel8", "laravel usps" ], "authors": [ @@ -21,7 +21,7 @@ "homepage":"https://github.com/johnpaulmedina/laravel-usps/", "license": "MIT", "require": { - "php": "^7.2.5", + "php": "^7.3|^8.0", "illuminate/support": "^8.0" }, "autoload": { From 5cc883efcfbf3caf4deda5abd56e3aa1f51d9afe Mon Sep 17 00:00:00 2001 From: Akintilerewa oreoluwa Date: Sun, 8 Aug 2021 00:23:27 +0100 Subject: [PATCH 07/20] Update Usps.php --- src/Usps.php | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Usps.php b/src/Usps.php index 0760359..1d71269 100644 --- a/src/Usps.php +++ b/src/Usps.php @@ -82,17 +82,17 @@ public function trackConfirm($ids, $sourceId = null) return $trackConfirm->getArrayResponse(); } - public function rate($request){ + public function rate(Request $request){ $rate = new Rate($this->config['username']); $ratepackage = new RatePackage(); - $ratepackage->setService((array_key_exists('Service', $request) ? $request['Service'] : null )); - $ratepackage->setFirstClassMailType((array_key_exists('FirstClassMailType', $request) ? $request['FirstClassMailType'] : null )); - $ratepackage->setZipOrigination((array_key_exists('ZipOrigination', $request) ? $request['ZipOrigination'] : null )); - $ratepackage->setZipDestination((array_key_exists('ZipDestination', $request) ? $request['ZipDestination'] : null )); - $ratepackage->setPounds((array_key_exists('Pounds', $request) ? $request['Pounds'] : null )); - $ratepackage->setOunces((array_key_exists('Ounces', $request) ? $request['Ounces'] : null )); - $ratepackage->setContainer((array_key_exists('Container', $request) ? $request['Container'] : null )); - $ratepackage->setSize((array_key_exists('Size', $request) ? $request['Size'] : null )); + $ratepackage->setService($request->Service); + $ratepackage->setFirstClassMailType($request->FirstClassMailType); + $ratepackage->setZipOrigination($request->ZipOrigination); + $ratepackage->setZipDestination($request->ZipDestination); + $ratepackage->setPounds($request->Pounds); + $ratepackage->setOunces($request->Ounces); + $ratepackage->setContainer($request->Container); + $ratepackage->setSize($request->Size); // Add the Package object to the Rate Package class $rate->addPackage($ratepackage); From c9b1126e83adce96721d07d307bd45bed025041b Mon Sep 17 00:00:00 2001 From: Akintilerewa oreoluwa Date: Sun, 8 Aug 2021 00:27:15 +0100 Subject: [PATCH 08/20] Update Usps.php --- src/Usps.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Usps.php b/src/Usps.php index 1d71269..1d68876 100644 --- a/src/Usps.php +++ b/src/Usps.php @@ -82,7 +82,7 @@ public function trackConfirm($ids, $sourceId = null) return $trackConfirm->getArrayResponse(); } - public function rate(Request $request){ + public function rate$request){ $rate = new Rate($this->config['username']); $ratepackage = new RatePackage(); $ratepackage->setService($request->Service); From d06432364af14ff92eec16ddc8285509186e9b7b Mon Sep 17 00:00:00 2001 From: Akintilerewa oreoluwa Date: Sun, 8 Aug 2021 00:27:57 +0100 Subject: [PATCH 09/20] Create Usps.php --- src/Usps.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Usps.php b/src/Usps.php index 1d68876..f5f184a 100644 --- a/src/Usps.php +++ b/src/Usps.php @@ -82,7 +82,7 @@ public function trackConfirm($ids, $sourceId = null) return $trackConfirm->getArrayResponse(); } - public function rate$request){ + public function rate($request){ $rate = new Rate($this->config['username']); $ratepackage = new RatePackage(); $ratepackage->setService($request->Service); From 230d06282b385d6ac8a9b8250a06f330a22a1a2e Mon Sep 17 00:00:00 2001 From: Akintilerewa oreoluwa Date: Sun, 8 Aug 2021 00:46:04 +0100 Subject: [PATCH 10/20] Update Usps.php --- src/Usps.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Usps.php b/src/Usps.php index f5f184a..0e47e27 100644 --- a/src/Usps.php +++ b/src/Usps.php @@ -85,14 +85,14 @@ public function trackConfirm($ids, $sourceId = null) public function rate($request){ $rate = new Rate($this->config['username']); $ratepackage = new RatePackage(); - $ratepackage->setService($request->Service); - $ratepackage->setFirstClassMailType($request->FirstClassMailType); - $ratepackage->setZipOrigination($request->ZipOrigination); - $ratepackage->setZipDestination($request->ZipDestination); - $ratepackage->setPounds($request->Pounds); - $ratepackage->setOunces($request->Ounces); - $ratepackage->setContainer($request->Container); - $ratepackage->setSize($request->Size); + $ratepackage->setService((array_key_exists('Service', $request) ? $request['Service'] : null ); + $ratepackage->setFirstClassMailType((array_key_exists('FirstClassMailType', $request) ? $request['FirstClassMailType'] : null )); + $ratepackage->setZipOrigination((array_key_exists('ZipOrigination', $request) ? $request['ZipOrigination'] : null )); + $ratepackage->setZipDestination($(array_key_exists('ZipDestination', $request) ? $request['ZipDestination'] : null )); + $ratepackage->setPounds((array_key_exists('Pounds', $request) ? $request['Pounds'] : null )); + $ratepackage->setOunces((array_key_exists('Ounces', $request) ? $request['Ounces'] : null )); + $ratepackage->setContainer((array_key_exists('Container', $request) ? $request['Container'] : null )); + $ratepackage->setSize((array_key_exists('Size', $request) ? $request['Size'] : null )); // Add the Package object to the Rate Package class $rate->addPackage($ratepackage); From 02631651faacea98c691417dbd71e1b2afb17e75 Mon Sep 17 00:00:00 2001 From: Akintilerewa oreoluwa Date: Sun, 8 Aug 2021 00:49:10 +0100 Subject: [PATCH 11/20] Update Usps.php --- src/Usps.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Usps.php b/src/Usps.php index 0e47e27..80452e4 100644 --- a/src/Usps.php +++ b/src/Usps.php @@ -85,7 +85,7 @@ public function trackConfirm($ids, $sourceId = null) public function rate($request){ $rate = new Rate($this->config['username']); $ratepackage = new RatePackage(); - $ratepackage->setService((array_key_exists('Service', $request) ? $request['Service'] : null ); + $ratepackage->setService((array_key_exists('Service', $request) ? $request['Service'] : null )); $ratepackage->setFirstClassMailType((array_key_exists('FirstClassMailType', $request) ? $request['FirstClassMailType'] : null )); $ratepackage->setZipOrigination((array_key_exists('ZipOrigination', $request) ? $request['ZipOrigination'] : null )); $ratepackage->setZipDestination($(array_key_exists('ZipDestination', $request) ? $request['ZipDestination'] : null )); From cbfa6106337439f82502f1f0c3ddb628ffb0b4bd Mon Sep 17 00:00:00 2001 From: Akintilerewa oreoluwa Date: Sun, 8 Aug 2021 00:50:50 +0100 Subject: [PATCH 12/20] Update Usps.php --- src/Usps.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Usps.php b/src/Usps.php index 80452e4..0760359 100644 --- a/src/Usps.php +++ b/src/Usps.php @@ -88,7 +88,7 @@ public function rate($request){ $ratepackage->setService((array_key_exists('Service', $request) ? $request['Service'] : null )); $ratepackage->setFirstClassMailType((array_key_exists('FirstClassMailType', $request) ? $request['FirstClassMailType'] : null )); $ratepackage->setZipOrigination((array_key_exists('ZipOrigination', $request) ? $request['ZipOrigination'] : null )); - $ratepackage->setZipDestination($(array_key_exists('ZipDestination', $request) ? $request['ZipDestination'] : null )); + $ratepackage->setZipDestination((array_key_exists('ZipDestination', $request) ? $request['ZipDestination'] : null )); $ratepackage->setPounds((array_key_exists('Pounds', $request) ? $request['Pounds'] : null )); $ratepackage->setOunces((array_key_exists('Ounces', $request) ? $request['Ounces'] : null )); $ratepackage->setContainer((array_key_exists('Container', $request) ? $request['Container'] : null )); From 9ce4ac400522c01eb7df76ab33f777ad157b7bba Mon Sep 17 00:00:00 2001 From: Akintilerewa oreoluwa Date: Sun, 8 Aug 2021 00:57:52 +0100 Subject: [PATCH 13/20] Update Usps.php --- src/Usps.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Usps.php b/src/Usps.php index 0760359..4494983 100644 --- a/src/Usps.php +++ b/src/Usps.php @@ -107,7 +107,7 @@ public function rate($request){ if ($rate->isSuccess()) { return ['rate' => $val2['RateValidateResponse']['Rate']]; } else { - return ['error' => $verify->getErrorMessage()]; + return ['error' => $rate->getErrorMessage()]; } From 2fe92149af399c001bb31f9188d25af5eb941b89 Mon Sep 17 00:00:00 2001 From: Akintilerewa oreoluwa Date: Sun, 8 Aug 2021 01:16:22 +0100 Subject: [PATCH 14/20] Update Usps.php --- src/Usps.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Usps.php b/src/Usps.php index 4494983..2c86315 100644 --- a/src/Usps.php +++ b/src/Usps.php @@ -105,7 +105,7 @@ public function rate($request){ // See if it was successful if ($rate->isSuccess()) { - return ['rate' => $val2['RateValidateResponse']['Rate']]; + return ['rate' => $val2; } else { return ['error' => $rate->getErrorMessage()]; } From 3867fee8f5fee70a76704aa8dfdaabc81a9fff61 Mon Sep 17 00:00:00 2001 From: Akintilerewa oreoluwa Date: Sun, 8 Aug 2021 01:18:15 +0100 Subject: [PATCH 15/20] Update Usps.php --- src/Usps.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Usps.php b/src/Usps.php index 2c86315..a5ad158 100644 --- a/src/Usps.php +++ b/src/Usps.php @@ -105,7 +105,7 @@ public function rate($request){ // See if it was successful if ($rate->isSuccess()) { - return ['rate' => $val2; + return ['rate' => $val2]; } else { return ['error' => $rate->getErrorMessage()]; } From a7774664fb207888ae2f928ecd7b1700944162ae Mon Sep 17 00:00:00 2001 From: Akintilerewa oreoluwa Date: Sun, 8 Aug 2021 01:26:54 +0100 Subject: [PATCH 16/20] Update RatePackage.php --- src/RatePackage.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/RatePackage.php b/src/RatePackage.php index da21c41..814066b 100755 --- a/src/RatePackage.php +++ b/src/RatePackage.php @@ -158,6 +158,11 @@ public function setSize($value) { return $this->setField('Size', $value); } + + public function setMachinable($value) + { + return $this->setField('Size', $value); + } /** * Add an element to the stack From 2c9f6ff324edd987021481661bd04a092354c2da Mon Sep 17 00:00:00 2001 From: Akintilerewa oreoluwa Date: Sun, 8 Aug 2021 01:28:14 +0100 Subject: [PATCH 17/20] Update Usps.php --- src/Usps.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Usps.php b/src/Usps.php index a5ad158..8e49fc9 100644 --- a/src/Usps.php +++ b/src/Usps.php @@ -93,6 +93,8 @@ public function rate($request){ $ratepackage->setOunces((array_key_exists('Ounces', $request) ? $request['Ounces'] : null )); $ratepackage->setContainer((array_key_exists('Container', $request) ? $request['Container'] : null )); $ratepackage->setSize((array_key_exists('Size', $request) ? $request['Size'] : null )); + $ratepackage->setMachinable((array_key_exists('Machinable', $request) ? $request['Machinable'] : null )); + // Add the Package object to the Rate Package class $rate->addPackage($ratepackage); From c02e1fb4c8c82397be0fd6ae0d32dda1656a1703 Mon Sep 17 00:00:00 2001 From: Akintilerewa oreoluwa Date: Sun, 8 Aug 2021 01:35:44 +0100 Subject: [PATCH 18/20] Update RatePackage.php --- src/RatePackage.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/RatePackage.php b/src/RatePackage.php index 814066b..f5e6777 100755 --- a/src/RatePackage.php +++ b/src/RatePackage.php @@ -161,7 +161,7 @@ public function setSize($value) public function setMachinable($value) { - return $this->setField('Size', $value); + return $this->setField('Machinable', $value); } /** From e07c8ef062645c150743d67e4ce829e8c2a01b78 Mon Sep 17 00:00:00 2001 From: Akintilerewa oreoluwa Date: Sun, 8 Aug 2021 02:22:58 +0100 Subject: [PATCH 19/20] Update README.md --- README.md | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index eb09d30..42d2b45 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Add your USPS username config in `config/services.php`. ``` ## Example Controller Usage -The only method completed for Laravel is the `Usps::validate` which is defined in `vendor/johnpaulmedina/laravel-usps/src/Usps/Usps.php`. As this package was developed for internal use I did not bring over all the features but you are more than welcome to contribute the methods you need and I will merge them. I suggest looking at the original PHP-Wrapper by @VinceG [USPS PHP-Api](https://github.com/VinceG/USPS-php-api "USPS PHP-Api by VinceG") as I ported those clases and autoloaded them to use in the `Usps.php` file. +The only method completed for Laravel is the `Usps::validate`, `Usps::rate` which is defined in `vendor/johnpaulmedina/laravel-usps/src/Usps/Usps.php`. As this package was developed for internal use I did not bring over all the features but you are more than welcome to contribute the methods you need and I will merge them. I suggest looking at the original PHP-Wrapper by @VinceG [USPS PHP-Api](https://github.com/VinceG/USPS-php-api "USPS PHP-Api by VinceG") as I ported those clases and autoloaded them to use in the `Usps.php` file. ```php $request->input('Service', 'PRIORITY COMMERCIAL'), + 'FirstClassMailType' => $request->input('FirstClassMailType', ''), + 'ZipOrigination' => $request->input('ZipOrigination', '91601'), + 'ZipDestination' => $request->input('ZipDestination', $zipcode), + 'Pounds' => $request->input('Pounds', $weight), + 'Ounces' => $request->input('Ounces', 0), + 'Container' => $request->input('Container', 'VARIABLE'), + 'Machinable' => $request->input('Machinable', 'True'), + ] + ); + + + $usps_return_rate = Arr::get($usps_rate, 'rate.RateV4Response.Package.Postage.Rate'); + $usps_return_weight = Arr::get($usps_rate, 'rate.RateV4Response.Package.Pounds'); + + + return response()->json([ + 'rate' => $usps_return_rate, + 'weight'=> $usps_return_weight, + 'usps' => $usps_rate + ]); + + } + } ``` @@ -88,6 +117,7 @@ Contributors @pdbreen @bredmor @scs-ben +@daveore090 @VinceG Original README.MD @@ -112,6 +142,7 @@ Requirements - PHP >= 7.2.5 configured with the following extensions: - cURL - USPS API Username +- - Laravel 8 Authors From 634e15a30b5f66eba8d8cc7eeb0eb4af6c28f861 Mon Sep 17 00:00:00 2001 From: Akintilerewa oreoluwa Date: Sun, 8 Aug 2021 02:26:25 +0100 Subject: [PATCH 20/20] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 42d2b45..5e4b587 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Laravel-USPS -Laravel-USPS is a composer package that allows you to integrate the USPS Address / Shipping API. This package is ported from @author Vincent Gabriel https://github.com/VinceG/USPS-php-api +Laravel-USPS is a composer package that allows you to integrate the USPS Address / Shipping API / Rates Calculator. This package is ported from @author Vincent Gabriel https://github.com/VinceG/USPS-php-api - Requires a valid USPS API Username - Tested on Laravel 8 @@ -81,7 +81,7 @@ class USPSController extends Controller ); } - public function rate() { + public function rate(Request $request) { $usps_rate = Usps::rate( [