diff --git a/functions/index.js b/functions/index.js index 9cdf36f..3891467 100644 --- a/functions/index.js +++ b/functions/index.js @@ -2,6 +2,8 @@ const functions = require('firebase-functions'); const watson = require('watson-developer-cloud/assistant/v1') require('dotenv').config() +const cors = require('cors')({ origin: true }); + // // Create and Deploy Your First Cloud Functions // // https://firebase.google.com/docs/functions/write-firebase-functions @@ -18,18 +20,20 @@ const chatbot = new watson({ const workspace_id = process.env.WORKSPACE_ID; exports.conversa = functions.https.onRequest((req, res) => { - let payload = { - workspace_id, - context: req.body.context || {}, - input: req.body.input || {} - }; - - chatbot.message(payload, (err, data) => { - if (err) { - return res.status(err.code || 500).json(err); - } - - return res.json(trataResposta(payload, data)); + cors(req, res, () => { + let payload = { + workspace_id, + context: req.body.context || {}, + input: req.body.input || {} + }; + + chatbot.message(payload, (err, data) => { + if (err) { + return res.status(err.code || 500).json(err); + } + + return res.json(trataResposta(payload, data)); + }) }) }) diff --git a/functions/package.json b/functions/package.json index b797360..68ce973 100644 --- a/functions/package.json +++ b/functions/package.json @@ -10,6 +10,7 @@ "logs": "firebase functions:log" }, "dependencies": { + "cors": "^2.8.4", "dotenv": "^6.0.0", "firebase-admin": "~6.0.0", "firebase-functions": "^2.0.3", diff --git a/src/Componentes/chat/ChatMensagem.js b/src/Componentes/chat/ChatMensagem.js index dee1709..419645b 100644 --- a/src/Componentes/chat/ChatMensagem.js +++ b/src/Componentes/chat/ChatMensagem.js @@ -1,8 +1,9 @@ import React, { Component } from 'react' import { InputGroup, InputGroupAddon, Input, Button } from 'reactstrap' -import {connect} from 'react-redux' +import { connect } from 'react-redux' -import {enviaMensagem} from './../../store/actions/chat' +import { enviaMensagem } from './../../store/actions/chat' +import { conversaWatson } from './../../store/actions/watson' class ChatMensagem extends Component { constructor(props) { @@ -11,7 +12,7 @@ class ChatMensagem extends Component { this.inputEnviaTexto = this.inputEnviaTexto.bind(this) } - inputEnviaTexto(e){ + inputEnviaTexto(e) { if (e.keyCode === 13) { console.log(e.target.value) const mensagem = { @@ -19,6 +20,7 @@ class ChatMensagem extends Component { origem: 'user' } this.props.enviaTexto(mensagem) + this.props.conversaWatson(mensagem) e.target.value = '' } } @@ -40,7 +42,8 @@ class ChatMensagem extends Component { const mapDispatchToProps = (dispatch) => { return { - enviaTexto: (msg) => dispatch(enviaMensagem(msg)) + enviaTexto: (msg) => dispatch(enviaMensagem(msg)), + conversaWatson: (msg) =>dispatch(conversaWatson(msg, '')) } } diff --git a/src/store/actions/watson.js b/src/store/actions/watson.js index 742968d..bc89229 100644 --- a/src/store/actions/watson.js +++ b/src/store/actions/watson.js @@ -31,7 +31,7 @@ export const conversaWatson = ((mensagem, contexto) => { //chama o backend do watson (Firebase cloud functions) const url = 'https://us-central1-chatbot-em-react.cloudfunctions.net/conversa' axios - .post(url, {mensagem, contexto}) + .get(url) .then((data) => dispatch(conversaWatsonSucess(data))) .catch(() => dispatch(conversaWatsonError())) } diff --git a/src/store/index.js b/src/store/index.js index 264e037..d3402f1 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1,10 +1,14 @@ -import {createStore} from 'redux' +import {createStore, applyMiddleware, compose} from 'redux' +import thunk from 'redux-thunk' import reducers from './reducers' +const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; +const middlewares = [thunk] + const store = createStore( - reducers, - window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__() -) + reducers,composeEnhancers( + applyMiddleware(...middlewares) + )); export default store \ No newline at end of file