Skip to content

Commit b59c28d

Browse files
committed
Updated LKG build and package.json version.
1 parent d795866 commit b59c28d

File tree

7 files changed

+54
-25
lines changed

7 files changed

+54
-25
lines changed

Node/core/lib/botbuilder.d.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -909,6 +909,10 @@ export interface IUniversalBotSettings {
909909

910910
/** Implemented by connector plugins for the UniversalBot. */
911911
export interface IConnector {
912+
913+
/** Used to register a handler for receiving incoming invoke events. */
914+
onInvoke?(handler: (event: IEvent, cb?: (err: Error, body: any, status?: number) => void) => void): void;
915+
912916
/** Called by the UniversalBot at registration time to register a handler for receiving incoming events from a channel. */
913917
onEvent(handler: (events: IEvent[], callback?: (err: Error) => void) => void): void;
914918

@@ -3040,6 +3044,9 @@ export class ChatConnector implements IConnector, IBotStorage {
30403044
/** Registers an Express or Restify style hook to listen for new messages. */
30413045
listen(): (req: any, res: any) => void;
30423046

3047+
/** Used to register a handler for receiving incoming invoke events. */
3048+
onInvoke(handler: (event: IEvent, cb?: (err: Error, body: any, status?: number) => void) => void): void;
3049+
30433050
/** Called by the UniversalBot at registration time to register a handler for receiving incoming events from a channel. */
30443051
onEvent(handler: (events: IEvent[], callback?: (err: Error) => void) => void): void;
30453052

@@ -3064,6 +3071,9 @@ export class ConsoleConnector implements IConnector {
30643071
/** Sends a message through the connector. */
30653072
processMessage(line: string): ConsoleConnector;
30663073

3074+
/** Used to register a handler for receiving incoming invoke events. */
3075+
onInvoke(handler: (event: IEvent, cb?: (err: Error, body: any, status?: number) => void) => void): void;
3076+
30673077
/** Called by the UniversalBot at registration time to register a handler for receiving incoming events from a channel. */
30683078
onEvent(handler: (events: IEvent[], callback?: (err: Error) => void) => void): void;
30693079

Node/core/lib/bots/ChatConnector.js

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,10 @@ var ChatConnector = (function () {
132132
}
133133
};
134134
ChatConnector.prototype.onEvent = function (handler) {
135-
this.handler = handler;
135+
this.onEventHandler = handler;
136+
};
137+
ChatConnector.prototype.onInvoke = function (handler) {
138+
this.onInvokeHandler = handler;
136139
};
137140
ChatConnector.prototype.send = function (messages, done) {
138141
var _this = this;
@@ -358,21 +361,36 @@ var ChatConnector = (function () {
358361
}
359362
}
360363
};
361-
ChatConnector.prototype.dispatch = function (messages, res) {
362-
var _this = this;
363-
var list = Array.isArray(messages) ? messages : [messages];
364-
list.forEach(function (msg) {
365-
try {
366-
_this.prepIncomingMessage(msg);
367-
logger.info(msg, 'ChatConnector: message received.');
368-
_this.handler([msg]);
364+
ChatConnector.prototype.dispatch = function (msg, res) {
365+
try {
366+
this.prepIncomingMessage(msg);
367+
logger.info(msg, 'ChatConnector: message received.');
368+
if (this.isInvoke(msg)) {
369+
this.onInvokeHandler(msg, function (err, body, status) {
370+
if (err) {
371+
res.status(500);
372+
res.end();
373+
logger.error('Received error from invoke handler: ', err.message || '');
374+
}
375+
else {
376+
res.send(status || 200, body);
377+
}
378+
});
369379
}
370-
catch (e) {
371-
console.error(e instanceof Error ? e.stack : e.toString());
380+
else {
381+
this.onEventHandler([msg]);
382+
res.status(202);
383+
res.end();
372384
}
373-
});
374-
res.status(202);
375-
res.end();
385+
}
386+
catch (e) {
387+
console.error(e instanceof Error ? e.stack : e.toString());
388+
res.status(500);
389+
res.end();
390+
}
391+
};
392+
ChatConnector.prototype.isInvoke = function (message) {
393+
return (message && message.type && message.type.toLowerCase() == consts.invokeType);
376394
};
377395
ChatConnector.prototype.postMessage = function (msg, cb) {
378396
logger.info(address, 'ChatConnector: sending message.');

Node/core/lib/bots/ConsoleConnector.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ var ConsoleConnector = (function () {
2323
return this;
2424
};
2525
ConsoleConnector.prototype.processMessage = function (line) {
26-
if (this.handler) {
26+
if (this.onEventHandler) {
2727
var msg = new Message_1.Message()
2828
.address({
2929
channelId: 'console',
@@ -33,12 +33,15 @@ var ConsoleConnector = (function () {
3333
})
3434
.timestamp()
3535
.text(line);
36-
this.handler([msg.toMessage()]);
36+
this.onEventHandler([msg.toMessage()]);
3737
}
3838
return this;
3939
};
4040
ConsoleConnector.prototype.onEvent = function (handler) {
41-
this.handler = handler;
41+
this.onEventHandler = handler;
42+
};
43+
ConsoleConnector.prototype.onInvoke = function (handler) {
44+
this.onInvokeHandler = handler;
4245
};
4346
ConsoleConnector.prototype.send = function (messages, done) {
4447
for (var i = 0; i < messages.length; i++) {

Node/core/lib/bots/Library.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,11 @@ var Library = (function (_super) {
4949
return this._localePath;
5050
};
5151
Library.prototype.recognize = function (context, callback) {
52-
var skipRecognize = (context.intent && context.libraryName === this.name);
53-
if (this.recognizers.length > 0 && !skipRecognize) {
52+
if (this.recognizers.length > 0 && context.libraryName !== this.name) {
5453
this.recognizers.recognize(context, callback);
5554
}
5655
else {
57-
callback(null, context.intent);
56+
callback(null, context.intent || { intent: 'None', score: 0.0 });
5857
}
5958
};
6059
Library.prototype.recognizer = function (plugin) {

Node/core/lib/bots/UniversalBot.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -326,10 +326,8 @@ var UniversalBot = (function (_super) {
326326
var _this = this;
327327
var context = session.toRecognizeContext();
328328
this.recognize(context, function (err, topIntent) {
329-
if (topIntent && topIntent.score > 0) {
330-
context.intent = topIntent;
331-
context.libraryName = _this.name;
332-
}
329+
context.intent = topIntent;
330+
context.libraryName = _this.name;
333331
var results = Library_1.Library.addRouteResult({ score: 0.0, libraryName: _this.name });
334332
async.each(_this.libraryList(), function (lib, cb) {
335333
lib.findRoutes(context, function (err, routes) {

Node/core/lib/consts.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"use strict";
22
exports.agent = 'botbuilder';
33
exports.messageType = 'message';
4+
exports.invokeType = 'invoke';
45
exports.defaultConnector = '*';
56
exports.emulatorChannel = 'emulator';
67
exports.Errors = {

Node/core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "botbuilder",
33
"author": "Microsoft Corp.",
44
"description": "Bot Builder is a dialog system for building rich bots on virtually any platform.",
5-
"version": "3.5.4",
5+
"version": "3.6.0",
66
"license": "MIT",
77
"keywords": [
88
"botbuilder",

0 commit comments

Comments
 (0)