M3nin0/posso-faltar-bot

View on GitHub
dialogs/getCollegeMatters.js

Summary

Maintainability
A
0 mins
Test Coverage
/*
  Módulo resposável em tratar os dados do usuário para
  responder as perguntas feitas

  Autores:
    Lucas Varlesse
    Felipe Menino
    Filipe Meneses
*/

const builder = require('botbuilder');
const library = new builder.Library('getCollegeMatters');
const PossoFaltar = require('fatec-posso-faltar');
const utils = require('../utils/utils.js');
const functions = require('../utils/statistic');
const getIntention = require('./getIntention');
const helpUser = require('./helpUser');

const intents = utils.intents;

library.library(getIntention);
library.library(helpUser);

// Verifica as faltas que o aluno tem nas matérias e diz se ele pode ou não faltar
library.dialog('possoFaltarHoje', [
  (session) => {
    session.send(functions.verifyAbsences(session.userData.collegeMatters));
    session.send('Se quiser outra informação, diz ai');
    session.replaceDialog('getRealIntent:/');
    }
])

// Informa ao usuário as faltas que ele tem nas matérias em que é cadastrado
library.dialog('faltasTotal', [
  (session) => {

    /*
      retorno[0] = Mensagem que será exibida ao usuário;
      retorno[1] = Pontos positivos
      retorno[2] = Pontos negativos
    */

    var retorno = functions.verifyTotal(session.userData.collegeMatters);
    var probabilidade = functions.calcProbabilidade();

    session.send(retorno[0]);
    if (retorno[1] > retorno[2]){
      session.send({
        text: "😎",
              attachments: [{
                contentType: 'image/png',
                contentUrl: 'http://4.bp.blogspot.com/-N61FXUGwlow/VloMabeY8nI/AAAAAAAABFA/zJPO3fnkols/s1600/Memes_Chorando-300x300.jpg',
                name: 'Eu Feliz'
          }]
      });
    } else {
      session.send({
        text: "😟",
              attachments: [{
                contentType: 'image/png',
                contentUrl: 'http://i0.kym-cdn.com/photos/images/original/000/145/104/130998629900120110725-22047-o4ie3r.png',
                name: 'Eu triste'
          }]
      })
    }
    session.send('Apenas lembrando que você tem ' + probabilidade + '% chance de ser aprovado');

    if (parseInt(probabilidade) < 70){
      builder.Prompts.choice(session, 'Posso tentar ajudar você', ['Sim', 'Não'], { listStyle: builder.ListStyle.button});
    } else {
      session.send('Você sabe né ? Se precisar de mais alguma coisa é só falar');
      session.replaceDialog('getRealIntent:/');
    }
  },
  (session, results) => {
    if (results.response.entity == 'Sim'){
      session.beginDialog('helpUser:muitasFaltas');
    } else {
      session.send('Tudo bem então. Se precisar de outras informações, estarei aqui');
      session.replaceDialog('getRealIntent:/');
    }
  }
])

library.dialog('faltasPerMateria', [
  (session) => {

    dump = session.userData.collegeMatters;
    let allMetters = [];

    for(var i in dump){
      allMetters.push(
        dump[i].nome
      )
    }
    builder.Prompts.choice(session, 'Matérias do dia de hoje', allMetters, { listStyle: builder.ListStyle.button});
  },
  (session, results) => {
    session.send(functions.verifyEspec(results.response.entity, dump));
    builder.Prompts.choice(session, 'Deseja verificar outra matéria ?', ['Sim', 'Não'], { listStyle: builder.ListStyle.button});
  },
  (session, results) => {
    if (results.response.entity == 'Sim')
      session.replaceDialog('faltasPerMateria');
    else{
      session.send('Certo, precisando de mais alguma coisa, só mandar');
      session.replaceDialog('getIntention:/');
    }

  }
])
module.exports = library