0.1.1 • Published 3 years ago

qlik-saas v0.1.1

Weekly downloads
4
License
MIT
Repository
github
Last release
3 years ago

ko-fi

UNDER DEVELOPMENT!

Description

NodeJS package to communicate with Qlik Sense Saas edition.

The official documentation about each endpoint parameters can be found on qlik.dev

Install

yet to be published to npm

Usage

Using the package is quite similar to qrs-interact

The package expose 5 methods:

  • Get
    • params
      • path (string, mandatory) (spaces, spaces/space-id etc)
  • Delete
    • params
      • path (sting, mandatory)
  • Patch
    • params
      • TBA
  • Post
    • params
      • path (sting, mandatory) (spaces, spaces/space-id etc)
      • data (json, mandatory) (see each endpoint for the required format)
      • contentType (string, optional) (default is application/json)
  • Put
    • params
      • path (sting, mandatory) (spaces, spaces/space-id etc)
      • data (json, mandatory) (see each endpoint for the required format)
      • contentType (string, optional) (default is application/json)

Before usage the instance should be initialized:

let config = {
  url: `tenant.eu.qlikcloud.com`,
  token: `api-key-generated-from-the-admin-console `,
  version: X, // optional. default is: 1
};

let saasInstance = new qlikSaas(config);

Get method

// Get all available spaces
let allSpaces = await saasInstance.Get("spaces");

Delete method

// Delete single space
let deletedSpace = await saasInstance.Delete("spaces/1a002233cdd44555566ee77f");

Patch method

// TBA

Post method

// Create new space
let data = {
  name: "My new space",
  description: "New space for more apps",
  type: "shared",
};

let createSpace = await saasInstance.Post({
  path: "spaces",
  data: data,
  contentType: "application/json",
});

Put method

// Update space
let data = {
  name: "New name for old space",
};

let updateSpace = await saasInstance.Put({
  path: `spaces/1a002233cdd44555566ee77f`,
  data: data,
  contentType: "application/json",
});

Paging

When requesting data Qlik will page it by default (max 100 items can be returned in a single call). If there are more records to be returned, the package will extract them all before returning the result

Errors

Each method returns promise. Errors can be handled using the usual way:

// Update space
let data = {
  name: "New name for old space",
};

let updateSpace = await saasInstance
  .Put({
    path: `spaces/1a002233cdd44555566ee77f`,
    data,
    contentType: "application/json",
  })
  .catch(function (e) {
    // do something with the error here
    // if Qlik is raising the error then the format of the error will be { status: XXX, statusText: XXXXY, message: XXXXXXX }
    // if Qlik is NOT raising the error then the format is: { message: XXXXXXX } (no status)
  });

Authentication

At the moment the package interact with Qlik only via API keys

To be added

  • patch method
  • test cases (in progress)
  • proper error handling
  • published to npm
  • more methods?
  • more testing with the paging functionality
  • support browser based authentication headers?
  • able to use the package in browsers?