UNPKG

node-nlp

Version:

Library for NLU (Natural Language Understanding) done in Node.js

96 lines (87 loc) 3.45 kB
/** * @module botbuilder */ /** * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */ /** * CredentialProvider interface. This interface allows Bots to provide their own * implementation of what is, and what is not, a valid appId and password. This is * useful in the case of multi-tenant bots, where the bot may need to call * out to a service to determine if a particular appid/password pair * is valid. * * For Single Tenant bots (the vast majority) the simple static providers * are sufficient. */ export interface ICredentialProvider { /** * Validate AppId. * * This method is async to enable custom implementations * that may need to call out to serviced to validate the appId / password pair. * @param {string} appId bot appid * @returns {Promise<boolean>} true if it is a valid AppId */ isValidAppId(appId: string): Promise<boolean>; /** * Get the app password for a given bot appId, if it is not a valid appId, return Null * * This method is async to enable custom implementations * that may need to call out to serviced to validate the appId / password pair. * @param {string} appId bot appid * @returns {Promise<string|null>} password or null for invalid appid */ getAppPassword(appId: string): Promise<string|null>; /** * Checks if bot authentication is disabled. * Return true if bot authentication is disabled. * * This method is async to enable custom implementations * that may need to call out to serviced to validate the appId / password pair. * @returns {Promise<boolean>} true if bot authentication is disabled. */ isAuthenticationDisabled(): Promise<boolean>; } export class SimpleCredentialProvider implements ICredentialProvider { private readonly appId: string; private readonly appPassword: string; constructor(appId: string, appPassword: string) { this.appId = appId; this.appPassword = appPassword; } /** * Validate AppId. * * This method is async to enable custom implementations * that may need to call out to serviced to validate the appId / password pair. * @param {string} appId bot appid * @returns {Promise<boolean>} true if it is a valid AppId */ public isValidAppId(appId: string): Promise<boolean> { return Promise.resolve(this.appId === appId); } /** * Get the app password for a given bot appId, if it is not a valid appId, return Null * * This method is async to enable custom implementations * that may need to call out to serviced to validate the appId / password pair. * @param {string} appId bot appid * @returns {Promise<string|null>} password or null for invalid appid */ public getAppPassword(appId: string): Promise<string|null> { return Promise.resolve((this.appId === appId) ? this.appPassword : null); } /** * Checks if bot authentication is disabled. * Return true if bot authentication is disabled. * * This method is async to enable custom implementations * that may need to call out to serviced to validate the appId / password pair. * @returns {Promise<boolean>} true if bot authentication is disabled. */ public isAuthenticationDisabled(): Promise<boolean> { return Promise.resolve(!this.appId); } }