Skip to content

Commit

Permalink
feat(starters): meta memory base template added
Browse files Browse the repository at this point in the history
feat(starters): meta memory base template added
  • Loading branch information
leifermendez committed Dec 30, 2022
2 parents 41e95a6 + e8d6252 commit 11c784f
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 15 deletions.
27 changes: 18 additions & 9 deletions packages/provider/src/meta/server.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
const { EventEmitter } = require('node:events')
const polka = require('polka')
const { urlencoded } = require('body-parser')
const { urlencoded, json } = require('body-parser')

class MetaWebHookServer extends EventEmitter {
metaServer
metaPort
token
constructor(_token, _metaPort) {
super()
this.metaServer = this.buildHTTPServer()
this.metaServer = polka()
this.metaPort = _metaPort
this.token = _token

this.buildHTTPServer()
}

/**
Expand All @@ -21,8 +23,14 @@ class MetaWebHookServer extends EventEmitter {
*/
incomingMsg = (req, res) => {
const { body } = req
const message = body.entry[0].changes[0].value.messages[0]

const messages = body.entry[0].changes[0].value?.messages

if (!messages) return

const [message] = messages
const to = body.entry[0].changes[0].value.metadata.display_phone_number

this.emit('message', {
from: message.from,
to,
Expand Down Expand Up @@ -55,16 +63,16 @@ class MetaWebHookServer extends EventEmitter {
const challenge = query['hub.challenge']

if (!mode || !token) {
return res.sendStatus(403)
return (res.statusCode = 403), res.end('No token!')
}

if (this.tokenIsValid(mode, token)) {
console.log('Webhook verified--->馃槑馃槑馃槑馃槑')
res.status(200).send(challenge)
return (res.statusCode = 200), res.end(challenge)
}

if (!this.tokenIsValid(mode, token)) {
res.sendStatus(403)
return (res.statusCode = 403), res.end('No token!')
}
}

Expand All @@ -73,12 +81,13 @@ class MetaWebHookServer extends EventEmitter {
* @returns
*/
buildHTTPServer = () => {
polka()
this.metaServer
.use(urlencoded({ extended: true }))
.get('/webhook', this.verifyToken)

return polka()
this.metaServer
.use(urlencoded({ extended: true }))
.use(json())
.post('/webhook', this.incomingMsg)
}

Expand All @@ -91,7 +100,7 @@ class MetaWebHookServer extends EventEmitter {
console.log(``)
console.log(`[meta]: Agregar esta url "WHEN A MESSAGE COMES IN"`)
console.log(
`[meta]: POST http://localhost:${this.metaPort}/meta-hook`
`[meta]: POST http://localhost:${this.metaPort}/webhook`
)
console.log(`[meta]: M谩s informaci贸n en la documentacion`)
console.log(``)
Expand Down
10 changes: 5 additions & 5 deletions starters/apps/base-meta-memory/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ const {
addChild,
} = require('@bot-whatsapp/bot')

const TwilioProvider = require('@bot-whatsapp/provider/twilio')
const MetaProvider = require('@bot-whatsapp/provider/meta')
const MockAdapter = require('@bot-whatsapp/database/mock')

/**
Expand Down Expand Up @@ -79,10 +79,10 @@ const main = async () => {
const adapterDB = new MockAdapter()
const adapterFlow = createFlow([flowPrincipal])

const adapterProvider = createProvider(TwilioProvider, {
accountSid: 'YOUR_ACCOUNT_SID',
authToken: 'YOUR_ACCOUNT_TOKEN',
vendorNumber: '+14155238886',
const adapterProvider = createProvider(MetaProvider, {
jwtToken: 'jwtToken',
numberId: 'numberId',
verifyToken: 'verifyToken',
})

createBot({
Expand Down
3 changes: 2 additions & 1 deletion starters/apps/base-meta-memory/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
"@bot-whatsapp/bot": "latest",
"@bot-whatsapp/cli": "latest",
"@bot-whatsapp/database": "latest",
"@bot-whatsapp/provider": "latest"
"@bot-whatsapp/provider": "latest",
"axios": "^1.2.1"
},
"author": "",
"license": "ISC"
Expand Down

0 comments on commit 11c784f

Please sign in to comment.