diff --git a/dialogflow/listTrainingPhrases.js b/dialogflow/listTrainingPhrases.js new file mode 100644 index 0000000000..876a793a83 --- /dev/null +++ b/dialogflow/listTrainingPhrases.js @@ -0,0 +1,43 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +'use strict'; + +async function main(projectId, intentId) { + // [START dialogflow_list_training_phrases] + const {IntentsClient} = require('@google-cloud/dialogflow'); + + // Create the intents client + const intentClient = new IntentsClient(); + + // Specify working intent + const intentName = `projects/${projectId}/agent/intents/${intentId}`; + + // Compose the get-intent request + const getIntentRequest = { + name: intentName, + intentView: 'INTENT_VIEW_FULL', + }; + + const intent = await intentClient.getIntent(getIntentRequest); + + console.log(intent[0].trainingPhrases); + // [END dialogflow_list_training_phrases] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/dialogflow/system-test/listTrainingPhrases.test.js b/dialogflow/system-test/listTrainingPhrases.test.js new file mode 100644 index 0000000000..bfcd6b3657 --- /dev/null +++ b/dialogflow/system-test/listTrainingPhrases.test.js @@ -0,0 +1,38 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +'use strict'; + +const {assert} = require('chai'); +const {describe, before, it} = require('mocha'); +const dialogflow = require('@google-cloud/dialogflow'); +const execSync = require('child_process').execSync; +const exec = cmd => execSync(cmd, {encoding: 'utf8'}); + +describe('list training phrases', () => { + const intentId = 'e8f6a63e-73da-4a1a-8bfc-857183f71228'; + const intentClient = new dialogflow.IntentsClient(); + const cmd = 'node listTrainingPhrases.js'; + let [projectId] = ''; + + before('get intent ID', async () => { + // The path to identify the agent that owns the intent. + projectId = await intentClient.getProjectId(); + }); + + it('should list training phrases in an intent', async () => { + const output = exec(`${cmd} ${projectId} ${intentId}`); + assert.include(output, 'EXAMPLE'); + }); +});