Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import * as botbuilder from 'botbuilder';
- import * as teams from 'botbuilder-teams';
- import express from 'express';
- import request from 'request-promise-native';
- import dotenv from 'dotenv';
- dotenv.config();
- var qumuUrl = process.env.QumuUrl;
- var adapter = new botbuilder.BotFrameworkAdapter({
- appId: process.env.MicrosoftAppId,
- appPassword: process.env.MicrosoftAppPassword
- });
- var server = express();
- server.set('port', process.env.PORT || 5000);
- server.listen(server.get('port'), () => {
- console.log('Node app is running at localhost:' + server.get('port'));
- console.log('appid = ' + process.env.MicrosoftAppId);
- });
- server.post('/api/messages', (req, res) => {
- adapter.processActivity(req, res, async turnContext => {
- switch (turnContext.activity.type) {
- case botbuilder.ActivityTypes.Message:
- await handleMessage(turnContext);
- break;
- case botbuilder.ActivityTypes.Invoke:
- await handleComposeExtension(turnContext);
- break;
- default:
- console.log('Error occured in process activity.');
- break;
- }
- });
- });
- const handleMessage = async turnContext => {
- let utterance = turnContext.activity.text;
- await turnContext.sendActivity('You said ' + utterance + '!');
- };
- const handleComposeExtension = async turnContext => {
- let searchTerm = turnContext.activity.value.parameters.find(obj => {
- return obj.name === 'searchTerm';
- }).value;
- console.log('Search term: ' + searchTerm);
- let url =
- qumuUrl +
- '&search=title,contains,' +
- searchTerm +
- '&search=description,contains,' +
- searchTerm;
- await request(url, {
- json: true,
- auth: {
- user: process.env.QumuUser,
- pass: process.env.QumuPass,
- sendImmediately: true
- }
- }).then(
- data => {
- var qumuData = data['kulus'].filter(obj => {
- return obj.passwordProtected === false;
- });
- let attachments = [];
- qumuData.forEach(obj => {
- attachments.push(
- botbuilder.CardFactory.heroCard(obj.title, [obj.thumbnail.url])
- );
- });
- let response = teams.ComposeExtensionResponse.result('list')
- .attachments(attachments)
- .toResponse();
- console.log('Compose Extension JSON: ' + JSON.stringify(response));
- return turnContext.sendActivity(JSON.stringify(response));
- },
- error => {
- console.warn('Request error: ' + error);
- }
- );
- };
Add Comment
Please, Sign In to add comment