UNPKG

@shareactor/shareactor-sdk

Version:
183 lines (126 loc) 6.65 kB
[![Travis](https://img.shields.io/travis/shareactorIO/javascript-sdk/master.svg?style=flat-square)](https://travis-ci.org/shareactorIO/javascript-sdk.svg?branch=master) [![David](https://img.shields.io/david/shareactorIO/javascript-sdk.svg?style=flat-square)](https://david-dm.org/shareactorIO/javascript-sdk) [![Codacy](https://img.shields.io/codacy/grade/d19b1c3168204a07b0582303138d5cc4.svg?style=flat-square)](https://www.codacy.com/app/ShareActor/javascript-sdk) [![Codacy coverage](https://img.shields.io/codacy/coverage/d19b1c3168204a07b0582303138d5cc4.svg?style=flat-square)](https://www.codacy.com/app/ShareActor/javascript-sdk) [![GitHub release](https://img.shields.io/github/release/shareactorIO/javascript-sdk.svg?style=flat-square)](https://github.com/shareactorIO/javascript-sdk/releases) [![license](https://img.shields.io/github/license/shareactorIO/javascript-sdk.svg?style=flat-square)](LICENSE.md) # ShareActor SDK [ShareActor](https://www.shareactor.io) offers a platform as a service that digitizes core business functions and optimizes resource allocation with baked-in machine learning capabilities. This SDK gives you access to our platform's building blocks and will help you implement its API in a Javascript or browser environment. Get instant access to modules like Payments, Messaging Tools, User Management and Authentication, Scheduling, Resource Allocation and more. ![ShareActor logo](https://preview.ibb.co/eAqEfF/Artboard_1.png) ## Requirement - A ShareActor API Key ([request one](mailto:hello@shareactor.io)). - An [Auth0](https://auth0.com/) account. ## Install From the [unpkg](https://unpkg.com/) CDN ```html <script src="https://unpkg.com/@shareactor/shareactor-sdk@latest/dist/main.bundle.js"></script> ``` From [npm](https://npmjs.org) ```sh npm install @shareactor/shareactor-sdk ``` ## Getting started `new ShareActor({ apiKey, bearerToken, endpoint })` Initialises a new instance of `ShareActor` configured with your application `apiKey`, the `bearerToken` token from Auth0 (optional) and the endpoint of your choice (generally `https://qa.shareactor.io/` for our QA environment or `https://api.shareactor.io/` for our production one). - **apiKey {String}**: Your attributed ShareActor API Key. - **bearerToken {String}** - *(optional)*: Your JSON Web Token (JWT), generally from Auth0. - **endpoint {String}**: The endpoint for the environment of your choice (generally `https://api.shareactor.io/` or `https://qa.shareactor.io/`). *Note: Accessing the API without a bearerToken will limit the number of endpoints and information you can access.* ### Example (using the [Auth0's Lock library](https://github.com/auth0/lock)) ```js var clientId = "YOUR_AUTH0_APP_CLIENTID"; var domain = "YOUR_DOMAIN_AT.auth0.com"; var lock = new Auth0Lock(clientId, domain, { auth: { responseType: 'token id_token', params: {scope: 'openid app_metadata user_metadata'} }, allowedConnections: ['facebook'], container: 'auth0Root' }); lock.on("authenticated", function(authResult) { lock.getUserInfo(authResult.accessToken, function(err, profile) { if (err) { // Handle error return; } var shareactor = new ShareActor({ apiKey: 'YOUR_SHAREACTOR_API_KEY', bearerToken: authResult.idToken, endpoint: 'https://qa.shareactor.io/' }); var loginBody = { first_name: profile.given_name, last_name: profile.family_name, }; shareactor.user().login({ body: loginBody }, function(err, user, raw) { // The raw parameter contains the full response of the query, it's optional but can be useful to access the response's headers. if (err) { // Handle error return; } // Update DOM }); }); }); ``` ## Initialisation of a class A class can be constructed with either: - No parameter *(some methods may not be accessible)* - An **id {String}**, which represents the ID of the object you want to instantiate *(you will not be able to access any property of the object, until you `refresh` or `get` it)* - A **Json {Object}**, which represents an object *(this will create the full object with all its properties)* ###### Example: Creation of a Product object with no parameter **`product()`** Create an empty product. It is useful if you want to `create`, or get all the products with the `getAll` method. ```js // Example: Construct a product without any parameter. var product = shareactor.product(); console.log(product.name); // undefined // Example: Construct a product without any parameter, and call an accessible function. shareactor.product().getAll({}, function(err, products, raw) { // The raw parameter contains the full response of the query, it's optional but can be useful to access the response's headers. if (err) { // Handle error return; } console.log(products); // [Object Product] // Update DOM }); ``` ---- ###### Example: Creation of a Product object with an ID **`product(id)`** This creates a partially empty product. It contains the ID of the product you want to manipulate but doesn't contain all the properties of that product. It can be populated by calling `get` or `refresh`. - **id {String}**, product ID ```js // Example: Construct a product with an ID. var product = shareactor.product(productId); console.log(product.name); // undefined // Example: Construct a product with an ID and refresh it. shareactor.product(userId).get({}, function(err, product, raw) { // The raw parameter contains the full response of the query, it's optional but can be useful to access the response's headers. if (err) { // Handle error return; } console.log(product.name); // Bedroom cleaning // Update DOM }); ``` ---- ###### Example: Creation of a Product object with a JSON Object **`product(json)`** You can create a full product from a JSON object. This will create an object with all the properties accessible. - **Json {Object}**, JSON object representing a product ```js // Example: Construct a product with a JSON Object. var product = shareactor.product(productJson); console.log(product.name); // Bedroom cleaning ``` The methods and classes used here match those in the API. You can find more details about them in the [API documentation](https://shareactorio.github.io/slate/). ## Coverage of the SDK The coverage of this SDK can be found in the [COVERAGE](COVERAGE.md) file. ## Issue Reporting If you have found a bug or if you have a feature request, please report them to this repository's issues section. ## License This project is licensed under the MIT license. See the [LICENSE](LICENSE.md) file for more info.