AirtableFUN

node v10.24.1
version: 4.0.0
endpointsharetweet
const express = require('express'); const app = express() app.use(express.json()); var Airtable = require('airtable'); var base = new Airtable({apiKey: process.env.AIRTABLE_API_KEY}).base(process.env.CHATBOTFUN_BASE); app.listen(3000, () => console.log('Example app listening on port 3000!')) app.get('/', (req, res) => { var resp = ''; let responseJson = {}; responseJson.fulfillmentText = 'This is an endpoint published to RunKit'; // displayed response base('PrecioCiudad').select({ maxRecords: 1, filterByFormula: 'AND({Programa} = "Auxiliar contable",{Ciudad}="Sincelejo")', }).eachPage(function page(records, fetchNextPage) { records.forEach(function(record) { resp += 'El ' + record.get('Atributo')+' de '+ record.get('Programa')+ ' es: '+record.get('Inicio')+', el horario es '+record.get('Horario')+', la duracion es de '+record.get('Duracion')+', Se imparte en estas sedes '+record.get('Ciudad'); console.log('Retrieved', record.get('Inicio'+'Horario'+'Duracion'+'Ciudad')); }); fetchNextPage(); }, function done(err) { if (err) { console.error(err); return; } res.send(resp); }); }) app.post('/', function (req, res) { console.log(req); let action = req.body.queryResult.action; console.log(action); let responseJson = {}; responseJson.fulfillmentText = 'This is an endpoint published to RunKit'; // displayed response if(action === 'getProgramaAtributo'){ let programaName = req.body.queryResult.parameters.program; let atributoName = req.body.queryResult.parameters.attribute; let ciudadName = req.body.queryResult.parameters.CiudadSedes; var request = require("request"); let responseJson = {}; responseJson.fulfillmentText = 'This is an endpoint published to RunKit'; // displayed response base('PrecioCiudad2').select({ maxRecords: 1, filterByFormula: 'AND({Programa} = "'+programaName+'",{Ciudad}="'+ciudadName+'")', }).eachPage(function page(records, fetchNextPage) { records.forEach(function(record) { console.log('Retrieved', record.get('Tipo'+'Descripcion' +'Inicio' + 'Horario'+'Duracion'+'Ciudad')); responseJson.fulfillmentText = 'La información de '+ programaName+ ' es:\n '+' ➡ Tipo '+':'+record.get('Tipo')+ '\n '+record.get('Descripcion')+ '\n ➡ Fecha de inicio '+record.get('Inicio')+'\n ➡ el horario disponible es '+record.get('Horario')+'\n ➡la duracion es de '+record.get('Duracion')+'\n ➡Se imparte en estas sedes: '+record.get('Ciudad'); res.json(responseJson); }); fetchNextPage(); }, function done(err) { if (err) { console.error(err); return; } res.send(resp); }); } else if(action === 'getProgramaforCiudad'){ //let planetName = req.body.queryResult.parameters.planet; let programaName = req.body.queryResult.parameters.program; let contexts = req.body.queryResult.outputContexts; console.log(contexts); var item = contexts.find(item => item.name.endsWith('/contexts/ciudades')); var ciudadName = item.parameters.CiudadSedes; var request = require("request"); let responseJson = {}; responseJson.fulfillmentText = 'This is an endpoint published to RunKit'; // displayed response base('PrecioCiudad').select({ maxRecords: 1, filterByFormula: 'AND({Programa} = "'+programaName+'",{Ciudad}="'+ciudadName+'")', }).eachPage(function page(records, fetchNextPage) { records.forEach(function(record) { console.log('Retrieved', record.get('Tipo'+'Descripcion' +'Inicio' +'Horario'+'Duracion'+'Ciudad'+'Accion')); responseJson.fulfillmentText = 'La información de '+ programaName+ ' en '+record.get('Ciudad')+ ' es:\n '+' ➡ Tipo '+':'+record.get('Tipo')+ '\n '+record.get('Descripcion')+ '\n ➡ Fecha de inicio '+record.get('Inicio')+'\n ➡ el horario disponible es '+record.get('Horario')+'\n ➡la duracion es de '+record.get('Duracion')+'\n ➡Se imparte en estas sedes: '+record.get('Ciudad')+'\n ➡Asegurar tu cupo y empieza a estudiar hoy '+ programaName+'\n ➡Medios de pago: '+record.get('Accion') ; res.json(responseJson); }); fetchNextPage(); }, function done(err) { if (err) { console.error(err); return; } res.send(resp); }); } if(action === 'getCursoAtributo'){ let programaName = req.body.queryResult.parameters.CursosPracticos; let atributoName = req.body.queryResult.parameters.attribute; var request = require("request"); let responseJson = {}; responseJson.fulfillmentText = 'This is an endpoint published to RunKit'; // displayed response base('Programas').select({ maxRecords: 1, filterByFormula: 'AND({Programa} = "'+programaName+'",{Atributo}="Informacion")', }).eachPage(function page(records, fetchNextPage) { records.forEach(function(record) { console.log('Retrieved', record.get('Tipo'+'Inicio' + 'Precio'+'Horario'+'Duracion'+'Sede')); responseJson.fulfillmentText = 'La información de '+ programaName+ '\n es: '+'👉 Tipo ' +':'+record.get('Tipo')+ '\n 👉 Fecha de inicio '+record.get('Inicio')+'\n 👉 el precio es de '+record.get('Precio')+'\n 👉 el horario disponible es '+record.get('Horario')+'\n 👉 la duracion es de '+record.get('Duracion')+'\n 👉Se imparte en estas sedes:\n '+record.get('Sede'); res.json(responseJson); }); fetchNextPage(); }, function done(err) { if (err) { console.error(err); return; } res.send(resp); }); } if(action === 'getCiudadCursos'){ let ciudadName = req.body.queryResult.parameters.CiudadSedes; // let atributoName = req.body.queryResult.parameters.attribute; var request = require("request"); let responseJson = {}; responseJson.fulfillmentText = 'This is an endpoint published to RunKit'; // displayed response base('Ciudades').select({ maxRecords: 1, filterByFormula: 'AND({Ciudad} = "'+ciudadName+'",{Atributo}="Informacion")', }).eachPage(function page(records, fetchNextPage) { records.forEach(function(record) { console.log('Retrieved', record.get('Programas'+'Cursos' + 'Direccion'+'Horario'+'Telefonos'+'Email'+'Url')); responseJson.fulfillmentText = 'La información de '+ ciudadName+ ' es: '+'\n👉 Programas '+record.get('Programas')+ '\n 👉 Cursos '+record.get('Cursos'); res.json(responseJson); }); fetchNextPage(); }, function done(err) { if (err) { console.error(err); return; } res.send(resp); }); } else if(action === 'getProgramaforCiudad'){ //let planetName = req.body.queryResult.parameters.planet; let programaName = req.body.queryResult.parameters.program; let contexts = req.body.queryResult.outputContexts; console.log(contexts); var item = contexts.find(item => item.name.endsWith('/contexts/ciudades')); var ciudadName = item.parameters.CiudadSedes; var request = require("request"); let responseJson = {}; responseJson.fulfillmentText = 'This is an endpoint published to RunKit'; // displayed response base('PrecioCiudad').select({ maxRecords: 1, filterByFormula: 'AND({Programa} = "'+programaName+'",{Ciudad}="'+ciudadName+'")', }).eachPage(function page(records, fetchNextPage) { records.forEach(function(record) { console.log('Retrieved', record.get('Tipo'+'Descripcion' +'Inicio' +'Horario'+'Duracion'+'Ciudad'+'Accion')); responseJson.fulfillmentText = 'La información de '+ programaName+ ' en '+record.get('Ciudad')+ ' es:\n '+' ➡ Tipo '+':'+record.get('Tipo')+ '\n '+record.get('Descripcion')+ '\n ➡ Fecha de inicio '+record.get('Inicio')+'\n ➡ el horario disponible es '+record.get('Horario')+'\n ➡la duracion es de '+record.get('Duracion')+'\n ➡Se imparte en estas sedes: '+record.get('Ciudad')+'\n ➡Asegurar tu cupo y empieza a estudiar hoy '+ programaName+'\n ➡Medios de pago: '+record.get('Accion') ; res.json(responseJson); }); fetchNextPage(); }, function done(err) { if (err) { console.error(err); return; } res.send(resp); }); } if(action === 'getCiudadInfo'){ let ciudadName = req.body.queryResult.parameters.CiudadSedes; let atributoName = req.body.queryResult.parameters.any; var request = require("request"); let responseJson = {}; responseJson.fulfillmentText = 'This is an endpoint published to RunKit'; // displayed response base('Ciudades').select({ maxRecords: 1, filterByFormula: 'AND({Ciudad} = "'+ciudadName+'",{Atributo}="Informacion")', }).eachPage(function page(records, fetchNextPage) { records.forEach(function(record) { console.log('Retrieved', record.get(atributoName)); responseJson.fulfillmentText = 'La información de '+ ciudadName+ ' es: '+ '\n 🗺 La dirección es '+record.get('Direccion')+ '\n'+'\n ⏰ el horario disponible es '+record.get('Horario')+ '\n'+'\n 📞 los teléfonos de contacto son '+record.get('Telefonos'); res.json(responseJson); }); fetchNextPage(); }, function done(err) { if (err) { console.error(err); return; } res.send(resp); }); } })
Loading…

no comments

    sign in to comment