Skip to content

Releases: EasyPost/easypost-php

v6.0.0

05 Jan 17:11
93ed472
Compare
Choose a tag to compare
  • Release final version of v6 that contains all the changes in the v6.0.0-rc1 listed below:

  • PHP 7.3 is no longer supported

  • Added a new EasyPostClient object which encapsulates the API key. All functions are called against this client allowing for thread-safety (eg: $client->shipment->create())

    • All instance methods and the ability to have objects update in-place has been removed due to this rearchitecture. When updating objects or performing actions on them (eg: creating a label/scanform), you will need to assign the return value to a variable and use that moving forward instead of relying on the object getting updated without capturing the new return value
    • ->save() instance methods are now update() static methods
    • Functions no longer accept an API key as an optional parameter
    • EasyPost objects no longer contain the logic associated with them; instead, we have Services for each EasyPost object. All the services are properties of an EasyPostClient. You can then call functions on a Service.
  • All function and parameter names are now camelCase. Previously we used a mix of camel and snake cases

  • Improves error exception handling (closes #7)

    • Introduced ~2 dozen new exception types that extend from either ApiException or EasyPostException
    • ApiExceptions will behave like the previous EasyPostException class did. They will include a message, errors, code, httpStatus and httpBody. This class extends the more generic EasyPostException which only contains a message, used for exceptions thrown directly from this library
    • The ecode property of an ApiException is now just code
  • Functions that previously returned true now return void as there is no response body from the API (eg: fundWallet, deletePaymentMethod, updateEmail, createList)

  • Adopts Guzzle as the HTTP client for this library. This should provide a much more consistent experience, better encoding, and faster request times in some cases

  • The results of calling allApiKeys is no longer double wrapped with the mode of the API key (these are still accessible inside of each object)

  • Requestor has moved to Http, constants from EasyPost now live in Constants, Error moved to Exception

  • Occurances of smartrate are now smartRate and Smartrate are now SmartRate to match the documentation and API expectations

  • Referral is now ReferralCustomer to better match documentation and API expectation

  • validateWebhook, getLowestSmartRate, and receiveEvent are now under EasyPost\Util\Util as they do not make any API calls and do not need the associated client object

    • The receive function previously in the namespace of Event is now called receiveEvent since it has been relocated to the generic Util namespace
    • Internal, library only utilities have been moved to EasyPost\Util\InternalUtil
  • The beta EndShipper class has been removed, please use the generally available EndShipper class

  • Various properties and functions that were previously intended for private/protected use but were public have been corrected

  • All phpdoc type hints, descriptions, return values, and throws references were corrected or updated

  • All dependencies were bumped

  • Various other bug fixes and improvements were made along with addressing deprecation warnings

v6.0.0-rc1

15 Dec 19:24
85e8721
Compare
Choose a tag to compare
v6.0.0-rc1 Pre-release
Pre-release
  • PHP 7.3 is no longer supported
  • Added a new EasyPostClient object which encapsulates the API key. All functions are called against this client allowing for thread-safety (eg: $client->shipment->create())
    • All instance methods and the ability to have objects update in-place has been removed due to this rearchitecture. When updating objects or performing actions on them (eg: creating a label/scanform), you will need to assign the return value to a variable and use that moving forward instead of relying on the object getting updated without capturing the new return value
    • ->save() instance methods are now update() static methods
    • Functions no longer accept an API key as an optional parameter
    • EasyPost objects no longer contain the logic associated with them; instead, we have Services for each EasyPost object. All the services are properties of an EasyPostClient. You can then call functions on a Service.
  • All function and parameter names are now camelCase. Previously we used a mix of camel and snake cases
  • Improves error exception handling (closes #7)
    • Introduced ~2 dozen new exception types that extend from either ApiException or EasyPostException
    • ApiExceptions will behave like the previous EasyPostException class did. They will include a message, errors, code, httpStatus and httpBody. This class extends the more generic EasyPostException which only contains a message, used for exceptions thrown directly from this library
    • The ecode property of an ApiException is now just code
  • Functions that previously returned true now return void as there is no response body from the API (eg: fundWallet, deletePaymentMethod, updateEmail, createList)
  • Adopts Guzzle as the HTTP client for this library. This should provide a much more consistent experience, better encoding, and faster request times in some cases
  • The results of calling allApiKeys is no longer double wrapped with the mode of the API key (these are still accessible inside of each object)
  • Requestor has moved to Http, constants from EasyPost now live in Constants, Error moved to Exception
  • Occurances of smartrate are now smartRate and Smartrate are now SmartRate to match the documentation and API expectations
  • Referral is now ReferralCustomer to better match documentation and API expectation
  • validateWebhook, getLowestSmartRate, and receiveEvent are now under EasyPost\Util\Util as they do not make any API calls and do not need the associated client object
    • The receive function previously in the namespace of Event is now called receiveEvent since it has been relocated to the generic Util namespace
    • Internal, library only utilities have been moved to EasyPost\Util\InternalUtil
  • The beta EndShipper class has been removed, please use the generally available EndShipper class
  • Various properties and functions that were previously intended for private/protected use but were public have been corrected
  • All phpdoc type hints, descriptions, return values, and throws references were corrected or updated
  • All dependencies were bumped
  • Various other bug fixes and improvements were made along with addressing deprecation warnings

v5.8.0

01 Dec 21:44
c746a0d
Compare
Choose a tag to compare
  • [ADDED] Carrier account creation routes requests correctly for carriers that require custom workflows
  • [FIXED] Instead of returning null when a list of child API keys cannot be returned (eg: when you call api_keys on a non-user object) it will return an empty list. The expected impact to end users is extremely low
  • [IMPROVED] Retrieving child user API keys for users with large numbers of child users should see much faster results as we now break on the match instead of iterating the entire list

v5.7.0

21 Sep 22:06
a5ef6c8
Compare
Choose a tag to compare
  • Adds Partner White Label (Referral) Support
    • Adds ability to create a referral user
    • Adds ability to update a referral user's email
    • Adds ability to retrieve all referral users
    • Adds ability to add a credit card to a referral user's account
  • Adds support to specify an $endShipperId on the buy call of a Shipment
  • Removes unreachable code in the address verification flow that checked for the existence of an address (errors will continue to be thrown on failure)

v5.6.0

25 Aug 19:05
bfa3891
Compare
Choose a tag to compare
  • Moves EndShipper out of beta into the general library namespace

v5.5.1

20 Aug 15:15
bc71007
Compare
Choose a tag to compare
  • Removes some extra imports that no longer exist causing errors when importing this library. Adds a regression test to protect against this in the future.

v5.5.0

02 Aug 19:08
9217258
Compare
Choose a tag to compare
  • Adds Carbon Offset support
    • Adds ability to create a shipment with carbon offset
    • Adds ability to buy a shipment with carbon offset
    • Adds ability to one-call-buy a shipment with carbon offset
    • Adds ability to rerate a shipment with carbon offset
  • Adds validateWebhook function that returns your webhook or raises an error if there is a webhookSecret mismatch
  • Fixes a bug that required the values of verify and verify_strict params on an Address creation call to be arrays since passing true as a boolean is also valid (passing an array will continue to work but is no longer required)

v5.4.0

18 Jul 19:32
932f641
Compare
Choose a tag to compare
  • Add ability to generate forms for shipments via generate_form() function

v5.3.0

07 Jul 22:58
16dd9f9
Compare
Choose a tag to compare
  • Adds Billing::retrieve_payment_methods(), Billing::fund_wallet(), and Billing::delete_payment_method() functions
  • Adds OS specific details to the User-Agent header
  • Applies a patch to coerce array error messages to strings where error mapping is done improperly (as is the case with carriers like GSO/GLS) (closes #181)

v4.0.3

29 Jun 16:50
fb6929c
Compare
Choose a tag to compare
  • Backports User-Agent header changes