File

src/SessionAttributesManager/SessionAttributesManager.service.ts

Constructor

constructor(undefined: { attributesManager: AttributesManager; })

Methods

Protected updateSessionAttributes
updateSessionAttributes(key: string, data: Data)

update talkyjs sessionAttributes

Parameters :
  • key
  • data
Returns: void
Protected getSessionAttributes
getSessionAttributes(key: string)

Get talkyjs sessionAttributes

Parameters :
  • key
Returns: Data

Properties

Protected attributesManager
attributesManager: AttributesManager
Protected prefix
prefix: "__talkyjs"
Default value: __talkyjs
import { AttributesManager } from 'ask-sdk-core';
export abstract class SessionAttributesManager {
  protected readonly prefix = '__talkyjs';
  protected readonly attributesManager: AttributesManager;
  constructor({ attributesManager }: { attributesManager: AttributesManager }) {
    this.attributesManager = attributesManager;
  }

  /**
   * update talkyjs sessionAttributes
   * @param key
   * @param data
   */
  protected updateSessionAttributes<Data = any>(key: string, data: Data) {
    const attributes = this.attributesManager.getSessionAttributes();
    const att = attributes[this.prefix] || {};
    attributes[this.prefix] = {
      ...att,
      [key]: data,
    };
    this.attributesManager.setSessionAttributes(attributes);
  }

  /**
   * Get talkyjs sessionAttributes
   * @param key
   */
  protected getSessionAttributes<Data = any>(key: string): Data | null {
    const data = this.attributesManager.getSessionAttributes();
    if (!data || !Object.prototype.hasOwnProperty.call(data, this.prefix))
      return null;
    const record = data[this.prefix];
    return record[key] || null;
  }
}

results matching ""

    No results matching ""