Skip to content

Commit 091e0f4

Browse files
committed
Prompts methods verification for session parameter
1 parent df9e9a7 commit 091e0f4

File tree

2 files changed

+26
-8
lines changed

2 files changed

+26
-8
lines changed

Node/core/lib/dialogs/Prompts.js

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -263,21 +263,21 @@ var Prompts = (function (_super) {
263263
}
264264
};
265265
Prompts.text = function (session, prompt, options) {
266-
if (!session || typeof session != 'object') {
267-
throw 'Session should be provided to Prompts.Text as first parameter.';
268-
}
266+
Prompts.validateSession(session);
269267
var args = options || {};
270268
args.promptType = PromptType.text;
271269
args.prompt = prompt;
272270
beginPrompt(session, args);
273271
};
274272
Prompts.number = function (session, prompt, options) {
273+
Prompts.validateSession(session);
275274
var args = options || {};
276275
args.promptType = PromptType.number;
277276
args.prompt = prompt;
278277
beginPrompt(session, args);
279278
};
280279
Prompts.confirm = function (session, prompt, options) {
280+
Prompts.validateSession(session);
281281
var locale = session.preferredLocale();
282282
var args = options || {};
283283
args.promptType = PromptType.confirm;
@@ -290,6 +290,7 @@ var Prompts = (function (_super) {
290290
beginPrompt(session, args);
291291
};
292292
Prompts.choice = function (session, prompt, choices, options) {
293+
Prompts.validateSession(session);
293294
var args = options || {};
294295
args.promptType = PromptType.choice;
295296
args.prompt = prompt;
@@ -303,24 +304,32 @@ var Prompts = (function (_super) {
303304
beginPrompt(session, args);
304305
};
305306
Prompts.time = function (session, prompt, options) {
307+
Prompts.validateSession(session);
306308
var args = options || {};
307309
args.promptType = PromptType.time;
308310
args.prompt = prompt;
309311
beginPrompt(session, args);
310312
};
311313
Prompts.attachment = function (session, prompt, options) {
314+
Prompts.validateSession(session);
312315
var args = options || {};
313316
args.promptType = PromptType.attachment;
314317
args.prompt = prompt;
315318
beginPrompt(session, args);
316319
};
317320
Prompts.disambiguate = function (session, prompt, choices, options) {
321+
Prompts.validateSession(session);
318322
session.beginDialog(consts.DialogId.Disambiguate, {
319323
prompt: prompt,
320324
choices: choices,
321325
options: options
322326
});
323327
};
328+
Prompts.validateSession = function (session) {
329+
if (!session || typeof session != 'object') {
330+
throw 'Session should be provided as first parameter.';
331+
}
332+
};
324333
return Prompts;
325334
}(Dialog_1.Dialog));
326335
Prompts.options = {

Node/core/src/dialogs/Prompts.ts

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -354,25 +354,23 @@ export class Prompts extends Dialog {
354354

355355
static text(session: Session, prompt: string|string[]|IMessage|IIsMessage, options?: IPromptOptions): void {
356356

357-
// Make sure that the session is passed, otherwise throw a clear error
358-
if (!session || typeof session != 'object') {
359-
throw 'Session should be provided to Prompts.Text as first parameter.';
360-
}
361-
357+
Prompts.validateSession(session);
362358
var args: IPromptArgs = <any>options || {};
363359
args.promptType = PromptType.text;
364360
args.prompt = prompt;
365361
beginPrompt(session, args);
366362
}
367363

368364
static number(session: Session, prompt: string|string[]|IMessage|IIsMessage, options?: IPromptOptions): void {
365+
Prompts.validateSession(session);
369366
var args: IPromptArgs = <any>options || {};
370367
args.promptType = PromptType.number;
371368
args.prompt = prompt;
372369
beginPrompt(session, args);
373370
}
374371

375372
static confirm(session: Session, prompt: string|string[]|IMessage|IIsMessage, options?: IPromptOptions): void {
373+
Prompts.validateSession(session);
376374
var locale:string = session.preferredLocale();
377375
var args: IPromptArgs = <any>options || {};
378376
args.promptType = PromptType.confirm;
@@ -386,6 +384,7 @@ export class Prompts extends Dialog {
386384
}
387385

388386
static choice(session: Session, prompt: string|string[]|IMessage|IIsMessage, choices: string|Object|string[], options?: IPromptOptions): void {
387+
Prompts.validateSession(session);
389388
var args: IPromptArgs = <any>options || {};
390389
args.promptType = PromptType.choice;
391390
args.prompt = prompt;
@@ -400,26 +399,36 @@ export class Prompts extends Dialog {
400399
}
401400

402401
static time(session: Session, prompt: string|string[]|IMessage|IIsMessage, options?: IPromptOptions): void {
402+
Prompts.validateSession(session);
403403
var args: IPromptArgs = <any>options || {};
404404
args.promptType = PromptType.time;
405405
args.prompt = prompt;
406406
beginPrompt(session, args);
407407
}
408408

409409
static attachment(session: Session, prompt: string|string[]|IMessage|IIsMessage, options?: IPromptOptions): void {
410+
Prompts.validateSession(session);
410411
var args: IPromptArgs = <any>options || {};
411412
args.promptType = PromptType.attachment;
412413
args.prompt = prompt;
413414
beginPrompt(session, args);
414415
}
415416

416417
static disambiguate(session: Session, prompt: string|string[]|IMessage|IIsMessage, choices: IDisambiguateChoices, options?: IPromptOptions): void {
418+
Prompts.validateSession(session);
417419
session.beginDialog(consts.DialogId.Disambiguate, {
418420
prompt: prompt,
419421
choices: choices,
420422
options: options
421423
});
422424
}
425+
426+
private static validateSession(session: Session): void {
427+
// Make sure that the session is passed, otherwise throw a clear error
428+
if (!session || typeof session != 'object') {
429+
throw 'Session should be provided as first parameter.';
430+
}
431+
}
423432
}
424433
systemLib.dialog(consts.DialogId.Prompts, new Prompts());
425434

0 commit comments

Comments
 (0)