Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
BREAKING CHANGE: Update and streamline SDKs
BREAKING CHANGE: Update and streamline SDKs This is a major release consisting of multiple usability improvements and additional features. We have aimed to streamline the SDK with the Smartcar API interfaces in a way that the objects returned are closer to the API interface documented in [API Docs](https://smartcar.com/docs/api#smartcar-api-reference). For ex. `vehicle.odometer()` will now return an object that looks like the [response in the documentation](https://smartcar.com/docs/api#get-odometer) and additionally the body will contain response headers [defined in the documentation](https://smartcar.com/docs/api#headers) as a part of a `meta` attribute. The methods to be used are broadly divided into three namespaces : - `AuthClient` - This class is used for all OAuth related operations - `Smartcar` - This class is used for all application level operations - `Vehicle` - This class is used for all vehicle operations/actions. **NOTE - According to the changes made to the terms of [nodejs versions support](https://github.com/smartcar/node-sdk#supported-nodejs-versions), NodeJS 6 and 8 are no longer supported.** - Environment variables - The SDK now supports usage of environment variables for client id (`SMARTCAR_CLIENT_ID`), client secret(`SMARTCAR_CLIENT_SECRET`) and redirect URL(`SMARTCAR_REDIRECT_URL`). These can be used instead of having to pass these as arguments. - `hashChallenge` - Additional utility method defined in `Smartcar` namespace to generate hash challenge for webhooks. - `verifyPayload` - Additional utility method defined in `Smartcar` namespace to verify the payload returned by webhooks. - `getApiVersion` - Method defined in `Smartcar` namespace to return the api version set globally. - `subscribe` - Additional method defined in `Vehicle` namespace to subscribe to a webhook. - `unsubscribe` - Additional method defined in `Vehicle` namespace to unsubscribe from a webhook. - Default API version to 2.0 - The default version for the APIs is now `2.0` instead of `1.0` . This can be overridden globally by using the `setApiVersion` method or by using optional arguments in different methods. Following are the improvements made to the interfaces by namespace. For in-depth details of the interface please refer to the [SDK documentation](https://github.com/smartcar/node-sdk/tree/master/doc). - `Constructor` - This only requires the set of parameters required by all of the functions defined in the class. Previously this was also taking in all the arguments used for generating auth URL. This has not been separated and streamlined. - `getAuthUrl` - Takes in scope as required argument and all the other optional arguments required to generate the Smartcar Connect URL as defined in the [docs](https://smartcar.com/docs/api?version=v2.0&language=cURL#smartcar-connect) - `exchangeCode` - Added additional support for optional flags parameter for future usage. - `exchangeRefreshToken` - Added additional support for optional flags parameter for future usage. - `getVehicles` - Renamed from `getVehicleIds` and changes in interface. - `getUser` - Moved and renamed from `Vehicle#getUserIds` and changes in interface. - `getCompatibility` - Moved and renamed from `AuthClient#isCompatible` and changes in interface. - `Constructor` - Updated to now support a version parameter. Look at the interface for more details. - `attributes` - Renamed from `info` . - `batch` - The return value of the method has been changed. This now returns a function for each attributes requested that either returns an object of the requested attribute OR throws an error if the attribute returned an error. All the errors have been converged to a single `SmartcarError` class. This class can now support the error fields returned by v2.0 and v1.0. For detailed breakdown of both the error types, refer to the to the [API Reference Errors section](https://smartcar.com/docs/api/#errors).
- Loading branch information