@aurigma/axios-asset-storage-api-client
TypeScript icon, indicating that this package has built-in type declarations

2.62.14 • Public • Published

Aurigma Customer's Canvas SDK - Asset Storage API Client

This module is an Axios API client for Asset Storage API service which is a part of Customer's Canvas web-to-print system. It is supposed that you are familiar with its services and understand how to use its APIs. To learn more about Customer's Canvas and its services, refer the Getting Started section of its documentation.

The API client is automatically generated with NSwag tool. If for any reasons this API client does not work well for you, feel free to generate it yourself using Swagger document published at Customer's Canvas API Gateway.

Pre-requisites

To be able to use this package, you need to meet the following requirements:

  • You must have an account at Customer's Canvas.
  • You need to use it in Javascript\Typescript applications.

For other platforms, see the Backend services article in Customer's Canvas documentation.

Usage

Install it as a regular npm package:

npm install @aurigma/axios-asset-storage-api-client

NodeJs

Receive an access token through your backend as explained in the documentation and deliver it to your app.

const assetStorageApiClient = require("@aurigma/axios-asset-storage-api-client").AssetStorageApiClient;
const axios = require("axios").default;

// You need to create external app in BackOffice with required scopes to receive clientId\clientSecret
// https://customerscanvas.com/dev/getting-started/about-backend-services.html#authorization
const clientId = "";
const clientSecret = "";
const apiUrl = "https://api.customerscanvashub.com/";

const getToken = async (clientId, clientSecret) => {
  const requestConfig = {
    method: "post",
    url: apiUrl + "connect/token",
    headers: {
      "Content-Type": "application/x-www-form-urlencoded",
    },
    data: new URLSearchParams({
      client_id: clientId,
      client_secret: clientSecret,
      grant_type: "client_credentials",
    }),
  };

  const response = await axios(requestConfig);
  return response.data["access_token"];
};

const token = await getToken(clientId, clientSecret);

And then you can call ApiClients methods with this token:

const config = new assetStorageApiClient.ApiClientConfiguration();
config.apiUrl = apiUrl;
config.setAuthorizationToken(token);

const buildInfoClient = new assetStorageApiClient.BuildInfoApiClient(config);
const buildInfo = await buildInfoClient.getInfo();

const designsClient = new assetStorageApiClient.DesignsApiClient(config);
const designs = await designsClient.getAll();

console.log(token);
console.log(buildInfo);
console.log(designs);

Frontend

You should retrieve access token from your backend, how it's explained above.

import { AssetStorageApiClient } from "@aurigma/axios-asset-storage-api-client";

// get token on backend by clientId\clientSecret. Never use clientId\clientSecret on frontend!
// https://customerscanvas.com/dev/getting-started/about-backend-services.html#authorization
const token = "";

const config = new AssetStorageApiClient.ApiClientConfiguration();
config.apiUrl = "";
config.setAuthorizationToken(token);

const buildInfoClient = new AssetStorageApiClient.BuildInfoApiClient(config)
buildInfoClient.getInfo().then(data => console.log(data));

const designsClient = new AssetStorageApiClient.DesignsApiClient(config);
designsClient.getAll(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 1)
             .then(data => console.log(data));

To find out what other clients are available in this module, refer Asset Storage API Reference.

NOTE: The class name for each client is formed as ClientNameApiClient, e.g. BuildInfo -> BuildInfoApiClient, etc.

Package Sidebar

Install

npm i @aurigma/axios-asset-storage-api-client

Weekly Downloads

472

Version

2.62.14

License

SEE LICENSE IN License.md

Unpacked Size

4.02 MB

Total Files

9

Last publish

Collaborators

  • kirillaleut
  • asimontsev
  • stas.gusarov
  • t.vybornova