Skip to content
This repository has been archived by the owner on Aug 16, 2023. It is now read-only.

Latest commit

 

History

History
90 lines (73 loc) · 3.22 KB

README.md

File metadata and controls

90 lines (73 loc) · 3.22 KB

Actions API Node.js Client Library

⚠️ Warning: Conversational Actions will be deprecated on June 13, 2023. For more information, see Conversational Actions Sunset.

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.