1.1.0 • Published 3 years ago

@assistant/actions v1.1.0

Weekly downloads
14
License
Apache-2.0
Repository
github
Last release
3 years ago

Actions API Node.js Client Library

This library provides an easy way to call the Actions API. The library wraps the Actions API.

Quickstart

Installing the client library

npm install @assistant/actions

Using the client library

The code below makes a call to the sendInteraction endpoint to play one round of conversation of a user's Action, using the provided query text:

import {ActionsTestingClient} from '@assistant/actions';

/**
 * Make request to Actions API to send a query to an Action for the
 * given project ID.
 */
async function sendInteraction(projectId = 'your-project-id', queryText = 'example query text') {
  const request = {
    parent: `projects/${projectId}`,
    input: {query: queryText}
  };
  // Create client
  const actionsTestingClient = new ActionsTestingClient();
  // Send request to sendInteraction endpoint to play one round of conversation
  const res = await actionsTestingClient.sendInteraction(request);
  return res[0];
}

The code below makes a call to the writePreview endpoint to updates a user's project preview from draft:

import {ActionsSdkClient} from '@assistant/actions';

/**
 * Make request to Actions API to write preview from draft for the
 * given project ID.
 */
async function writePreviewFromDraft(projectId = 'your-project-id') {
  // Create request payload
  const request = {
    parent: `projects/${projectId}`,
    reviewSettings: {sandbox: {value: true}},
    draft: {}
  };
  const [responsePromise, responseCallback] = getStreamResponsePromise();
  // Create client
  const actionsSdkClient = new ActionsSdkClient();
  // Send write preview request to stream endpoint
  const writePreviewStream = actionsSdkClient.writePreview(responseCallback);
  writePreviewStream.write(request);
  writePreviewStream.end();
  return await responsePromise;
}

/** Gets a resonse promise and callback for a stream request. */
function getStreamResponsePromise() {
  let writeSuccess: any, writeFailure: any;
  const responsePromise = new Promise((resolve, reject) => {
    writeSuccess = resolve;
    writeFailure = reject;
  });
  const responseCallback = (err: any, resp: any) => {
      !err ? writeSuccess(resp) : writeFailure(err);
  }
  return [responsePromise, responseCallback]
}

References & Issues

Make Contributions

Please read and follow the steps in the CONTRIBUTING.md.

License

See LICENSE.