Created
April 4, 2017 16:50
-
-
Save adamjuhasz/183864dbd8be872f334008a06425dc8d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
bp.hear(), (event, next) => { | |
bp.db.kvs.get(event.user.id) | |
.then(user => { | |
if (!user || user.step === 0) { | |
bp.messenger.sendText(event.user.id, 'Hello, what would you like me to call you?'); | |
return bp.db.kvs.set(event.user.id, defaultUser); | |
} | |
if (user.step > 2) { | |
// already registered user do somethign else here | |
} | |
switch (user.step) { | |
case 1: | |
user.nickname = event.text; | |
bp.messenger.sendText(event.user.id, `Ok ${user.nickname}, how old are you?`); | |
break; | |
case 2: | |
user.age = parseInt(event.text, 10); | |
bp.messenger.sendTemplate(event.user.id, { | |
template_type: 'button', | |
text: `Ok ${user.nickname}, pick an interest`, | |
buttons: [ | |
{ type: 'postback', title: 'Business', payload: 'BUSINESS'}, | |
{ type: 'postback', title: 'Politics', payload: 'POLITICS'}, | |
{ type: 'postback', title: 'Sports', payload: 'SPORTS'}, | |
] | |
}); | |
break; | |
} | |
user.step++; | |
return bp.db.kvs.set(event.user.id, user); | |
}) | |
}) | |
bp.hear({ | |
type: 'postback', | |
text: 'BUSINESS' | |
}, (event, next) => { | |
bp.messenger.sendText(event.user.id, 'Subscribing you to business news.'); | |
return bp.db.kvs.set(event.user.id, 'BUSINESS', 'interest'); | |
}): | |
bp.hear({ | |
type: 'postback', | |
text: 'POLITICS' | |
}, (event, next) => { | |
bp.messenger.sendText(event.user.id, 'Subscribing you to political news.'); | |
return bp.db.kvs.set(event.user.id, 'POLITICS', 'interest'); | |
}): | |
bp.hear({ | |
type: 'postback', | |
text: 'SPORTS' | |
}, (event, next) => { | |
bp.messenger.sendText(event.user.id, 'Subscribing you to sports news.'); | |
return bp.db.kvs.set(event.user.id, 'SPORTS', 'interest'); | |
}): | |
const defaultUser = { | |
step: 1, | |
nickname: null, | |
age: 0, | |
interest: null, | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment