Skip to content

v6.0.0

Compare
Choose a tag to compare
@Justintime50 Justintime50 released this 05 Jan 17:25
· 149 commits to master since this release
9081e75

Includes all the changes from v6.0.0-rc1 listed below in addition to the following:

  • All constants are now defined in the top-level Constants class (com.easypost.Constants)
    • Users who are utilizing the constants for exception message parsing should account for the new namespace
  • Added support for creating/registering carrier accounts that require custom workflows (e.g. FedEx, UPS)
  • Swapped the parameters for the following functions, making id the first argument
    • Shipment.generateForm()
    • EndShipper.update()
    • CarrierAccount.update()
  • Fixed a typo, ServiceUnavailablError is now ServiceUnavailableError
  • Fixed a typo: Smartrate is now SmartRate, apikeys is now apiKey, scanform is now scanForm
  • Moved validateWebook, findLowestSmartrate, and getLowestSmartRate from Services to Utilities since it does not required an EasyPost client object
  • Added a root level APIException class for all HTTP exceptions

Breaking Changes

  • Library is now thread-safe
    • Initialize an EasyPostClient object with an API key. Optionally set connection and readtime params
    • All methods (i.e. create, retrieve, all) exist in services, accessed via property of the client (eg: client.shipment.create())
      • E.g. Static method -> Shipment shipment = client.address.create(params)
      • E.g. Instance methods are now static -> Shipment boughtShipment = client.shipment.buy(shipmentID, lowestRate)
    • All functions are now taking object ID instead of an object, which means the functions are returning the response value directly instead of updating the current object
      • E.g. Shipment boughtShipment = client.shipment.buy(shipmentID, lowestRate)
  • Improves error exception handling
    • Specific error types for each category of error
    • API error message may be an array rather than a string. Arrays will be concatenated (by comma) and returned as a string.
  • Removes createAndVerifyWithCarrier function
  • Removes verifyWithCarrier function
  • Removes getUpdate and setUpdate from Tracker class
  • Removes all beta features and corrsponding unit tests
  • Removes serviceCode from Rate class since this value is internal use only
  • Removes invalid function User.create() since creating a child-user requires a name
  • Removes deprecated class CreditCard and its associated classes PrimaryPaymentMethod, SecondaryPaymentMethod, and BaseCreditCard, please use alternative Billing class
  • Removes all the setters of each object
  • Removes the refresh() function in all classes, please use retrieve() function instead
  • Removes invalid functions that allow users to make an API request without providing required parameters
  • Changes the type of Insurance Amount from Float to String
  • Changes the type hasMore in ReferralCustomerCollection from boolean to Boolean
  • Renames some getters
    • Pickup class: getPickoutRates() -> getPickupRates()
    • PaymentMethod class: getPrimaryPaymentMethodObject() -> getPrimaryPaymentMethod()
    • PaymentMethod class: getSecondaryPaymentMethodObject() -> getSecondaryPaymentMethod()
  • Converts return type from a boolean to void when we receive an empty response body from the API
    • fundWallet() and deletePaymentMethod() in Billing class
    • createList() in Tracker class
    • updateEmail() in ReferralCustomer class
  • Changes the type result of Event from EasyPostResource to Map<String, Object>

Bug Fixes

  • Adds two missing attributes in the Event class: pendingUrls and completedUrls
  • AppEngine default timeout is now the same as connection timeout