Advertisement
Guest User

Untitled

a guest
Nov 26th, 2016
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 35.07 KB | None | 0 0
  1. var express = require('express');
  2.  
  3. var bodyParser = require('body-parser');
  4. var cookieParser = require('cookie-parser');
  5. var expressSession = require('express-session');
  6. var expressValidator = require('express-validator');
  7.  
  8. var core_use = require('cors');
  9. var jsonParser = bodyParser.json();
  10. var urlencodedParser = bodyParser.urlencoded({extended:true})
  11. var pg = require('pg');
  12. var app = express();
  13. var User = {id:-1};
  14.  
  15.  
  16. app.listen(3000);
  17.  
  18. app.use(core_use());
  19.  
  20. app.use( bodyParser.urlencoded({extended: false}))
  21. app.use(bodyParser.json())
  22.  
  23. // configura express-session
  24. app.use(expressSession({
  25.  
  26. secret: process.env.SESSION_SECRET || 'secret',
  27. saveUninitialized:false,
  28. resave:false,
  29.  
  30. }));
  31.  
  32. app.use(expressValidator());
  33.  
  34.  
  35. // Configure o acesso ao banco
  36. var config = {
  37. user: 'gmello',
  38. database: 'Organize',
  39. password: '123456',
  40. port: 5432,
  41. max: 10,
  42. idleTimeoutMillis: 30000,
  43. };
  44.  
  45. var pool = new pg.Pool(config);
  46.  
  47.  
  48.  
  49. // Rota Login
  50. app.post('/login', urlencodedParser, function (req, res) {
  51.  
  52. var username=req.body.username;
  53. var senha=req.body.senha;
  54.  
  55. console.log('username: ', username);
  56. console.log('senha: ', senha);
  57.  
  58. //var User = {id:-1};
  59. var usuario_existe;
  60. req.session.id_usuario = -1; // o usuario ainda não está logado na sessão
  61.  
  62. // Validação dos Dados
  63. //req.check('username', 'Nome de usuário Inválido.').isEmail();
  64. req.check('senha', 'Senha inválida').isLength({min:4});
  65.  
  66. // Verificar se houve erros na validação
  67. // se não procurar pelo usuario no banco
  68.  
  69. var errors = req.validationErrors();
  70. if(errors){
  71. req.session.erros = errors;
  72. console.log(errors);
  73. res.send('0');
  74. }
  75. else{
  76. //res.send('Working');
  77.  
  78. // verificar se o usuario existe no banco
  79. pool.connect(function(err, client, done){
  80.  
  81. if(err) {
  82. return console.error('error fetching client from pool', err);
  83. }
  84.  
  85. var query = client.query("SELECT COUNT(*) FROM tb_usuarios where tb_usuarios.username = $1 and tb_usuarios.senha = $2", [username, senha], function(err,row){
  86. done();
  87.  
  88. if(err){
  89. return console.error('error running query', err);
  90. }
  91.  
  92. }); // end query
  93.  
  94. query.on('row', function(row){
  95.  
  96. usuario_existe = row.count;
  97.  
  98. // Usuario existe
  99. console.log('usuario existe: ' + usuario_existe);
  100. if( usuario_existe == 1){
  101.  
  102. // Criar objeto User para a sessão
  103. var query = client.query("SELECT id_usuario FROM tb_usuarios where tb_usuarios.username = $1", [username], function(err, result){
  104. done();
  105.  
  106. if(err){
  107. return console.error('error running query', err);
  108. }
  109.  
  110. console.log('id_usuario no banco:' + result.rows[0].id_usuario);
  111. User.id = result.rows[0].id_usuario;
  112. console.log('User.id', User.id);
  113. req.session.id_usuario = result.rows[0].id_usuario;
  114.  
  115.  
  116. res.send('1');
  117. });
  118.  
  119. }
  120. else{
  121. res.send('2');
  122. }
  123. });
  124.  
  125. }); // end connect
  126. } // end else
  127. }); // end rota login
  128.  
  129. app.get('/dashboard', function(req, res){
  130.  
  131. console.log('Dashboard User.id: ' + User.id);
  132.  
  133. //Verifica se o usuario não está logado
  134. if(User.id == -1 ){
  135. res.status(404).send("Não está logado.");
  136. }
  137. res.status(200).send("Deu certo, vc está logado !! ");
  138. });
  139.  
  140. app.get('/logout', function(req, res){
  141.  
  142. User.id = -1;
  143.  
  144. req.session.destroy( function(err){
  145. if(err){
  146. return console.error('erro na hora de destruir a sessão', err);
  147. }
  148. });
  149.  
  150. res.send("1");
  151.  
  152. });
  153.  
  154. //////////// CRUD Projetos
  155.  
  156. // Seleciona todos os projetos do Usuario -- Funciona
  157. app.get('/retrieveProjetos_Usuario', function(req, res) {
  158.  
  159. var id = User.id;
  160.  
  161. pool.connect(function(err, client, done) {
  162.  
  163. if(err) {
  164. done();
  165. console.log(err);
  166. return res.status(500).json({ success: false, data: err});
  167. }
  168.  
  169. client.query('SELECT p.id_projeto, p.id_usuario, p.nome, p.descricao, p.data_inicio, p.data_entrega, p.fg_ativo FROM tb_projetos p inner join tb_usuarios u on ( p.id_usuario = u.id_usuario and u.id_usuario = $1) where p.fg_ativo = 1 order by 1 ASC', [id], function(err,result){
  170.  
  171. done();
  172.  
  173. if(err){
  174. return console.error('error running query', err);
  175. }
  176.  
  177. res.setHeader('Access-Control-Allow-Origin', '*');
  178. res.json(result.rows);
  179.  
  180. });
  181.  
  182. });
  183.  
  184. });
  185.  
  186.  
  187. // Seleciona todos os Projetos já finalizados -- Funciona
  188. app.get('/retrieveProjetosFinalizados_Usuario', function(req, res) {
  189.  
  190. //var username = req.body.username;
  191. var id = User.id;
  192.  
  193.  
  194. pool.connect(function(err, client, done) {
  195.  
  196. if(err) {
  197. done();
  198. console.log(err);
  199. return res.status(500).json({ success: false, data: err});
  200. }
  201.  
  202. client.query('select p.id_projeto, p.id_usuario, p.nome, p.descricao, p.data_inicio, p.data_entrega, p.fg_ativo from tb_projetos p inner join tb_usuarios u on ( p.id_usuario = u.id_usuario ) and u.id_usuario = $1 and p.fg_ativo = 0', [id], function(err,result){
  203.  
  204. done();
  205.  
  206. if(err){
  207. return console.error('error running query', err);
  208. }
  209.  
  210. res.setHeader('Access-Control-Allow-Origin', '*');
  211. res.json(result.rows);
  212.  
  213. });
  214.  
  215. });
  216.  
  217. });
  218.  
  219.  
  220.  
  221. // Cancela um Projeto de um Usuario incluindo todas suas Tarefas e Subtarefas
  222. // -- Funciona
  223. app.put('/finalizarProjeto_Usuario', urlencodedParser, function(req, res) {
  224.  
  225. //var id_usuario = req.body.id_usuario;
  226. var id = User.id;
  227. var id_projeto = req.body.id_projeto;
  228.  
  229.  
  230. pool.connect(function(err, client, done) {
  231.  
  232. if(err) {
  233. done();
  234. console.log(err);
  235. return res.status(500).json({ success: false, data: err});
  236. }
  237.  
  238. client.query('update tb_projetos set fg_ativo = 0 from tb_usuarios where tb_usuarios.id_usuario = tb_projetos.id_usuario and tb_usuarios.id_usuario = $1 and tb_projetos.id_projeto = $2',[id, id_projeto], function(err,result){
  239. done();
  240. if(err){
  241. return console.error('error running query', err);
  242. }
  243. });
  244.  
  245. client.query('update tb_tarefas set fg_ativo = 0 from tb_projetos where tb_projetos.id_projeto = tb_tarefas.id_projeto and tb_projetos.id_usuario = $1 and tb_projetos.id_projeto = $2',[id, id_projeto], function(err,result){
  246. done();
  247. if(err){
  248. return console.error('error running query', err);
  249. }
  250. });
  251.  
  252. client.query('update tb_subtarefas set fg_ativo = 0 from tb_tarefas where tb_subtarefas.id_tarefa = tb_tarefas.id_tarefa and tb_tarefas.id_usuario = $1 and tb_tarefas.id_projeto = $2',[id, id_projeto], function(err,result){
  253. done();
  254. if(err){
  255. return console.error('error running query', err);
  256. }
  257. });
  258.  
  259. });
  260.  
  261. res.send("Projeto finalizado");
  262.  
  263. });
  264.  
  265. // Reativa um Projeto de um Usuario incluindo todas suas Tarefas e Subtarefas
  266. // -- Funciona
  267. app.put('/reativarProjeto_Usuario', urlencodedParser, function(req, res) {
  268.  
  269. //var id_usuario = req.body.id_usuario;
  270. var id = User.id;
  271. var id_projeto = req.body.id_projeto;
  272.  
  273.  
  274. pool.connect(function(err, client, done) {
  275.  
  276. if(err) {
  277. done();
  278. console.log(err);
  279. return res.status(500).json({ success: false, data: err});
  280. }
  281.  
  282. client.query('update tb_projetos set fg_ativo = 1 from tb_usuarios where tb_usuarios.id_usuario = tb_projetos.id_usuario and tb_usuarios.id_usuario = $1 and tb_projetos.id_projeto = $2',[id, id_projeto], function(err,result){
  283. done();
  284. if(err){
  285. return console.error('error running query', err);
  286. }
  287. });
  288.  
  289. client.query('update tb_tarefas set fg_ativo = 1 from tb_projetos where tb_projetos.id_projeto = tb_tarefas.id_projeto and tb_projetos.id_usuario = $1 and tb_projetos.id_projeto = $2',[id, id_projeto], function(err,result){
  290. done();
  291. if(err){
  292. return console.error('error running query', err);
  293. }
  294. });
  295.  
  296. client.query('update tb_subtarefas set fg_ativo = 1 from tb_tarefas where tb_subtarefas.id_tarefa = tb_tarefas.id_tarefa and tb_tarefas.id_usuario = $1 and tb_tarefas.id_projeto = $2',[id, id_projeto], function(err,result){
  297. done();
  298. if(err){
  299. return console.error('error running query', err);
  300. }
  301. });
  302.  
  303. });
  304.  
  305. res.send("Projeto Reativado");
  306.  
  307. });
  308.  
  309.  
  310. // Create -- Funciona
  311. app.post('/createProjeto', urlencodedParser, function (req, res) {
  312.  
  313. var data = { id_usuario: User.id, nome: req.body.nome, fg_ativo: 1,
  314. descricao: req.body.descricao, data_inicio: req.body.data_inicio, data_entrega: req.body.data_entrega
  315. }
  316.  
  317. pool.connect(function(err, client, done) {
  318.  
  319. if(err) {
  320. return console.error('error fetching client from pool', err);
  321. }
  322.  
  323. client.query( "INSERT INTO tb_projetos( id_usuario, nome, descricao, data_inicio, data_entrega, fg_ativo) values($1,$2,$3,$4,$5, $6)",
  324. [ data.id_usuario, data.nome, data.descricao, data.data_inicio, data.data_entrega, data.fg_ativo])
  325.  
  326. done();
  327.  
  328. if(err) {
  329. return console.error('error running query', err);
  330. }
  331.  
  332. });
  333.  
  334. res.send('Projeto criado com sucesso');
  335. });
  336.  
  337. // Retrieve -- Não Usar
  338. app.get('/retrieveProjetos', function(req, res) {
  339.  
  340. pool.connect(function(err, client, done) {
  341.  
  342. if(err) {
  343. done();
  344. console.log(err);
  345. return res.status(500).json({ success: false, data: err});
  346. }
  347.  
  348. client.query('SELECT * FROM tb_projetos ORDER BY id_projeto ASC', function(err,result){
  349.  
  350. done();
  351.  
  352. if(err){
  353. return console.error('error running query', err);
  354. }
  355.  
  356. res.setHeader('Access-Control-Allow-Origin', '*');
  357. res.json(result.rows);
  358. });
  359.  
  360. });
  361.  
  362. });
  363.  
  364. // Update
  365. app.put('/updateProjeto', urlencodedParser, function(req, res) {
  366.  
  367. var id = req.body.id_projeto;
  368. var data = { nome: req.body.nome, descricao: req.body.descricao, data_inicio: req.body.data_inicio, data_entrega:req.body.data_entrega, fg_ativo:req.body.fg_ativo };
  369.  
  370. // Get a Postgres client from the connection pool
  371. pool.connect(function(err, client, done) {
  372.  
  373. if(err) {
  374. done();
  375. console.log(err);
  376. return res.status(500).send(json({ success: false, data: err}));
  377. }
  378.  
  379. client.query('update tb_projetos set nome = \'' + data.nome + '\', descricao = \'' +
  380. data.descricao + '\', data_inicio = \'' + data.data_inicio +
  381. '\', data_entrega = \'' + data.data_entrega + '\' where tb_projetos.id_projeto = ' + id, function(err, result){
  382. done();
  383. if(err){
  384. return console.error('error running query', err);
  385. }
  386.  
  387. });
  388. });
  389. res.send('Projeto Atualizado com sucesso');
  390. });
  391.  
  392.  
  393. // Delete
  394. app.delete('/deleteProjeto/:id_projeto', function(req, res) {
  395.  
  396.  
  397. var id = req.params.id_projeto;
  398.  
  399. pool.connect(function(err, client, done) {
  400.  
  401. if(err) {
  402. done();
  403. console.log(err);
  404. return res.status(500).json({ success: false, data: err});
  405. }
  406.  
  407. client.query('DELETE FROM tb_subtarefas USING tb_tarefas where tb_tarefas.id_tarefa = tb_subtarefas.id_tarefa and tb_tarefas.id_projeto = ' + id, function(err, result) {
  408. done();
  409. if( err ){
  410. return console.error('error running query', err);
  411. }
  412. });
  413.  
  414. client.query('DELETE FROM tb_tarefas WHERE tb_tarefas.id_projeto = ' + id, function(err, result) {
  415. done();
  416. if( err ){
  417. return console.error('error running query', err);
  418. }
  419. });
  420.  
  421. client.query('DELETE FROM tb_projetos WHERE tb_projetos.id_projeto = ' + id, function(err, result) {
  422. done();
  423. if( err ){
  424. return console.error('error running query', err);
  425. }
  426. });
  427.  
  428. });
  429.  
  430. res.send("Projeto deletado com Sucesso");
  431. });
  432.  
  433. // Delete Finalizado
  434. app.delete('/deleteProjeto_Finalizado/:id_projeto', function(req, res) {
  435.  
  436.  
  437. var id = req.params.id_projeto;
  438.  
  439. pool.connect(function(err, client, done) {
  440.  
  441. if(err) {
  442. done();
  443. console.log(err);
  444. return res.status(500).json({ success: false, data: err});
  445. }
  446.  
  447. client.query('DELETE FROM tb_subtarefas USING tb_tarefas where tb_tarefas.id_tarefa = tb_subtarefas.id_tarefa and tb_subrarefa.fg_ativo = 0 and tb_tarefas.id_projeto = ' + id, function(err, result) {
  448. done();
  449. if( err ){
  450. return console.error('error running query', err);
  451. }
  452. });
  453.  
  454. client.query('DELETE FROM tb_tarefas WHERE tb_tarefas.fg_ativo = 0 and tb_tarefas.id_projeto = ' + id, function(err, result) {
  455. done();
  456. if( err ){
  457. return console.error('error running query', err);
  458. }
  459. });
  460.  
  461. client.query('DELETE FROM tb_projetos WHERE tb_projetos.fg_ativo = 0 and tb_projetos.id_projeto = ' + id, function(err, result) {
  462. done();
  463. if( err ){
  464. return console.error('error running query', err);
  465. }
  466. });
  467.  
  468. });
  469.  
  470. res.send("Projeto deletado com Sucesso");
  471. });
  472.  
  473.  
  474. //////////////////////////////////////////////////////////////////////////////////////////////////
  475.  
  476.  
  477. //////////////////// CRUD Tarefas
  478.  
  479.  
  480. // Seleciona todas Tarefas do Usuario ordenando por Prioridade -- Funciona
  481. app.get('/retrieveTarefas_Usuario', function(req, res) {
  482.  
  483. var id = User.id;
  484.  
  485. pool.connect(function(err, client, done) {
  486.  
  487. if(err) {
  488. done();
  489. console.log(err);
  490. return res.status(500).json({ success: false, data: err});
  491. }
  492.  
  493. client.query('SELECT t.id_tarefa, t.id_projeto, t.id_usuario, t.prioridade, t.nome, t.descricao, t.data_inicio, t.data_entrega from tb_tarefas t inner join tb_usuarios u on ( u.id_usuario = t.id_usuario and u.id_usuario = $1 and t.fg_ativo = 1) order by t.prioridade desc',[id], function(err,result){
  494.  
  495. done();
  496.  
  497. if(err){
  498. return console.error('error running query', err);
  499. }
  500.  
  501. res.setHeader('Access-Control-Allow-Origin', '*');
  502. res.json(result.rows);
  503.  
  504. });
  505.  
  506. });
  507.  
  508. });
  509.  
  510.  
  511. // Seleciona todas as Tarefas já finalizadas pelo Usuario -- Funciona
  512. app.get('/retrieveTarefasFinalizadas_Usuario', function(req, res) {
  513.  
  514. var id = User.id;
  515.  
  516. pool.connect(function(err, client, done) {
  517.  
  518. if(err) {
  519. done();
  520. console.log(err);
  521. return res.status(500).json({ success: false, data: err});
  522. }
  523.  
  524. client.query('SELECT t.nome, t.descricao, t.data_inicio, t.data_entrega from tb_tarefas t inner join tb_usuarios u on (t.id_usuario = u.id_usuario) and u.id_usuario = $1 and t.fg_ativo = 0',[id], function(err,result){
  525.  
  526. done();
  527.  
  528. if(err){
  529. return console.error('error running query', err);
  530. }
  531.  
  532. res.setHeader('Access-Control-Allow-Origin', '*');
  533. res.json(result.rows);
  534.  
  535. });
  536.  
  537. });
  538.  
  539. });
  540.  
  541.  
  542. // Seleciona todas as Tarefas já finalizadas pelo Usuario dentro de um Projeto
  543. // -- Funciona
  544. app.post('/retrieveTarefasFinalizadasUsuario_Projeto', urlencodedParser, function(req, res) {
  545.  
  546. //var username = req.body.username;
  547. var id = User.id;
  548. var proj_nome = req.body.proj_nome;
  549.  
  550.  
  551. pool.connect(function(err, client, done) {
  552.  
  553. if(err) {
  554. done();
  555. console.log(err);
  556. return res.status(500).json({ success: false, data: err});
  557. }
  558.  
  559. client.query('SELECT t.nome, t.descricao, t.data_inicio, t.data_entrega from tb_tarefas t inner join tb_usuarios u on (t.id_usuario = u.id_usuario) inner join tb_projetos p on ( p.id_usuario = u.id_usuario) where u.id_usuario = $1 and p.nome = $2 and t.fg_ativo = 0',[id, proj_nome], function(err,result){
  560.  
  561. done();
  562.  
  563. if(err){
  564. return console.error('error running query', err);
  565. }
  566.  
  567. res.setHeader('Access-Control-Allow-Origin', '*');
  568. res.json(result.rows);
  569.  
  570. });
  571.  
  572. });
  573.  
  574. });
  575.  
  576. // Seleciona todas as Tarefas do Usuario dentro de um Projeto
  577. // -- Funciona
  578. app.post('/retrieveTarefasUsuario_Projeto', urlencodedParser, function(req, res) {
  579.  
  580. var id = User.id;
  581. var id_projeto = req.body.id_projeto;
  582.  
  583. console.log('User.id: ', id);
  584. console.log('id_projeto: ', id_projeto);
  585.  
  586. pool.connect(function(err, client, done) {
  587.  
  588. if(err) {
  589. done();
  590. console.log(err);
  591. return res.status(500).json({ success: false, data: err});
  592. }
  593.  
  594. client.query('SELECT t.id_tarefa, t.id_projeto, t.id_usuario, t.nome, t.prioridade, t.descricao, t.data_inicio, t.data_entrega from tb_tarefas t inner join tb_projetos p on (p.id_projeto = t.id_projeto ) where p.id_usuario = $1 and p.id_projeto = $2 and p.fg_ativo = 1',[id, id_projeto], function(err,result){
  595.  
  596. done();
  597.  
  598. if(err){
  599. return console.error('error running query', err);
  600. }
  601.  
  602. res.setHeader('Access-Control-Allow-Origin', '*');
  603. res.json(result.rows);
  604.  
  605. });
  606.  
  607. });
  608.  
  609. });
  610.  
  611.  
  612.  
  613. // finaliza uma Tarefa de um Usuario dentro de um Projeto, incluindo todas suas
  614. // subtarefas -- Funciona
  615. app.put('/finalizarTarefa_Usuario', urlencodedParser, function(req, res) {
  616.  
  617. var id_usuario = User.id;
  618. var id_projeto = req.body.id_projeto;
  619. var id_tarefa = req.body.id_tarefa;
  620.  
  621.  
  622. pool.connect(function(err, client, done) {
  623.  
  624. if(err) {
  625. done();
  626. console.log(err);
  627. return res.status(500).json({ success: false, data: err});
  628. }
  629.  
  630. client.query('update tb_tarefas set fg_ativo = 0 from tb_projetos where tb_projetos.id_projeto = tb_tarefas.id_projeto and tb_projetos.id_usuario = $1 and tb_projetos.id_projeto = $2 and tb_tarefas.id_tarefa = $3',[id_usuario, id_projeto, id_tarefa], function(err,result){
  631. done();
  632. if(err){
  633. return console.error('error running query', err);
  634. }
  635. });
  636.  
  637. client.query('update tb_subtarefas set fg_ativo = 0 from tb_tarefas where tb_subtarefas.id_tarefa = tb_tarefas.id_tarefa and tb_tarefas.id_usuario = $1 and tb_tarefas.id_projeto = $2',[id_usuario, id_projeto], function(err,result){
  638. done();
  639. if(err){
  640. return console.error('error running query', err);
  641. }
  642. });
  643.  
  644. res.send("Tarefas finalizadas");
  645.  
  646. });
  647.  
  648. });
  649.  
  650. // Create -- Funciona
  651. app.post('/createTarefa', urlencodedParser, function (req, res) {
  652.  
  653. var data = { id_projeto: req.body.id_projeto, id_usuario: User.id, nome: req.body.nome, fg_ativo: 1,
  654. prioridade: req.body.prioridade, descricao: req.body.descricao, data_inicio: req.body.data_inicio, data_entrega: req.body.data_entrega,
  655. }
  656.  
  657. pool.connect(function(err, client, done) {
  658.  
  659. if(err) {
  660. return console.error('error fetching client from pool', err);
  661. }
  662.  
  663. client.query( "INSERT INTO tb_tarefas( id_projeto, id_usuario, nome, prioridade, descricao, data_inicio, data_entrega, fg_ativo) values($1,$2,$3,$4,$5,$6,$7, $8)",
  664. [data.id_projeto, data.id_usuario, data.nome, data.prioridade, data.descricao, data.data_inicio, data.data_entrega, data.fg_ativo])
  665.  
  666. done();
  667.  
  668. if(err) {
  669. return console.error('error running query', err);
  670. }
  671.  
  672. });
  673.  
  674. res.send('Tarefa criada com sucesso');
  675.  
  676. });
  677.  
  678. // Retrieve -- Não usar
  679. app.get('/retrieveTarefas', function(req, res) {
  680.  
  681.  
  682. pool.connect(function(err, client, done) {
  683.  
  684. if(err) {
  685. done();
  686. console.log(err);
  687. return res.status(500).json({ success: false, data: err});
  688. }
  689.  
  690. client.query('SELECT * FROM tb_tarefas ORDER BY id_tarefa ASC', function(err,result){
  691.  
  692. done();
  693.  
  694. if(err){
  695. return console.error('error running query', err);
  696. }
  697.  
  698. res.setHeader('Access-Control-Allow-Origin', '*');
  699. res.json(result.rows);
  700.  
  701. });
  702.  
  703. });
  704.  
  705. });
  706.  
  707. // Update -- Funciona
  708. app.put('/updateTarefa', urlencodedParser, function(req, res) {
  709.  
  710.  
  711. var id = req.body.id_tarefa;
  712.  
  713. var data = { nome: req.body.descricao, descricao: req.body.descricao, data_inicio: req.body.data_inicio, data_entrega:req.body.data_entrega, prioridade: req.body.prioridade, fg_ativo: req.body.fg_ativo};
  714.  
  715. pool.connect(function(err, client, done) {
  716. // Handle connection errors
  717. if(err) {
  718. done();
  719. console.log(err);
  720. return res.status(500).send(json({ success: false, data: err}));
  721. }
  722.  
  723. client.query('update tb_tarefas set nome = \'' + data.nome + '\', descricao = \'' + data.descricao + '\', prioridade = '+data.prioridade+', data_inicio = \'' + data.data_inicio + '\', data_entrega = \'' + data.data_entrega + '\' where id_tarefa = ' + id,
  724. function(err, result){
  725.  
  726. done();
  727.  
  728. if(err){
  729. return console.error('error running query', err);
  730. }
  731.  
  732. });
  733. });
  734.  
  735. res.send('Tarefa atualizada com sucesso');
  736. });
  737.  
  738.  
  739. // Delete -- Funciona
  740. app.delete('/deleteTarefa/:id_tarefa', function(req, res) {
  741.  
  742. //var id = req.body.id_tarefa;
  743. var id = req.params.id_tarefa;
  744.  
  745. // Get a Postgres client from the connection pool
  746. pool.connect(function(err, client, done) {
  747.  
  748. // Handle connection errors
  749. if(err) {
  750. done();
  751. console.log(err);
  752. return res.status(500).json({ success: false, data: err});
  753. }
  754.  
  755. client.query('DELETE FROM tb_subtarefas USING tb_tarefas WHERE tb_tarefas.id_tarefa = tb_subtarefas.id_tarefa and tb_subtarefas.id_tarefa = ' + id, function(err, result) {
  756. done();
  757. if( err ){
  758. return console.error('error running query', err);
  759. }
  760. });
  761.  
  762. client.query('DELETE FROM tb_tarefas WHERE tb_tarefas.id_tarefa = ' + id, function(err, result) {
  763. done();
  764. if( err ){
  765. return console.error('error running query', err);
  766. }
  767. });
  768.  
  769. });
  770.  
  771. res.send('Tarefa deletada com sucesso');
  772. });
  773. //////////////////////////////////////////////////////////////////////////////////////////////////
  774.  
  775.  
  776.  
  777.  
  778. /////////////////////CRUD Subtarefas
  779.  
  780.  
  781. // Seleciona todas Subtarefas do Usuario ordenando por Prioridade -- Funciona
  782. app.get('/retrieveSubtarefas_Usuario', function(req, res) {
  783.  
  784. //var username = req.body.username;
  785. var id = User.id;
  786.  
  787. pool.connect(function(err, client, done) {
  788.  
  789. if(err) {
  790. done();
  791. console.log(err);
  792. return res.status(500).json({ success: false, data: err});
  793. }
  794.  
  795. client.query('SELECT st.id_subtarefa, st.id_tarefa, st.id_usuario, st.nome, st.prioridade, st.descricao, st.data_inicio, st.data_entrega, st.fg_ativo from tb_subtarefas st inner join tb_usuarios u on ( u.id_usuario = st.id_usuario and u.id_usuario = $1 and st.fg_ativo = 1) order by st.prioridade desc',[id], function(err,result){
  796.  
  797. done();
  798.  
  799. if(err){
  800. return console.error('error running query', err);
  801. }
  802.  
  803. res.setHeader('Access-Control-Allow-Origin', '*');
  804. res.json(result.rows);
  805.  
  806. });
  807.  
  808. });
  809.  
  810. });
  811.  
  812.  
  813.  
  814. // Seleciona todas as Subtarefas já finalizadas pelo Usuario -- Funciona
  815. app.get('/retrieveSubtarefasFinalizadas_Usuario', function(req, res) {
  816.  
  817. //var username = req.body.username;
  818. var id = User.id;
  819.  
  820. pool.connect(function(err, client, done) {
  821.  
  822. if(err) {
  823. done();
  824. console.log(err);
  825. return res.status(500).json({ success: false, data: err});
  826. }
  827.  
  828. client.query('SELECT st.id_usuario, st.nome, st.descricao, st.data_inicio, st.data_entrega from tb_subtarefas st inner join tb_usuarios u on (st.id_usuario = u.id_usuario) and u.id_usuario = $1 and st.fg_ativo = 0',[id], function(err,result){
  829.  
  830. done();
  831.  
  832. if(err){
  833. return console.error('error running query', err);
  834. }
  835.  
  836. res.setHeader('Access-Control-Allow-Origin', '*');
  837. res.json(result.rows);
  838.  
  839. });
  840.  
  841. });
  842.  
  843. });
  844.  
  845.  
  846.  
  847. // Seleciona todas as Subtarefas do Usuario dentro de um
  848. // Tarefa -- Funciona
  849. app.post('/retrieveSubtarefas_Tarefa_Usuario', urlencodedParser, function(req, res) {
  850. //app.get('/retrieveSubtarefas_Tarefa_Usuario', function(req, res) {
  851.  
  852. //var username = req.body.username;
  853. var id = User.id;
  854. var id_tarefa = req.body.id_tarefa;
  855. //var id_tarefa = req.params.id_tarefa;
  856.  
  857.  
  858. pool.connect(function(err, client, done) {
  859.  
  860. if(err) {
  861. done();
  862. console.log(err);
  863. return res.status(500).json({ success: false, data: err});
  864. }
  865.  
  866. client.query('SELECT st.id_subtarefa, st.id_tarefa, st.id_usuario, st.nome, st.prioridade, st.descricao, st.data_inicio, st.data_entrega, st.fg_ativo from tb_subtarefas st inner join tb_tarefas t on ( st.id_tarefa = t.id_tarefa) inner join tb_usuarios u on ( t.id_usuario = u.id_usuario ) where u.id_usuario = $1 and t.id_tarefa = $2 and st.fg_ativo = 1',[User.id, id_tarefa], function(err,result){
  867. done();
  868.  
  869. if(err){
  870. return console.error('error running query', err);
  871. }
  872.  
  873. res.setHeader('Access-Control-Allow-Origin', '*');
  874. res.json(result.rows);
  875.  
  876. });
  877.  
  878. });
  879.  
  880. });
  881.  
  882.  
  883. // Cancela uma Subtarefas -- Funciona
  884. app.put('/finalizarSubtarefa', urlencodedParser, function(req, res) {
  885.  
  886. var id = User.id;
  887. var id_subtarefa = req.body.id_subtarefa;
  888.  
  889. pool.connect(function(err, client, done) {
  890.  
  891. if(err) {
  892. done();
  893. console.log(err);
  894. return res.status(500).json({ success: false, data: err});
  895. }
  896.  
  897. client.query("update tb_subtarefas set fg_ativo = 0 where id_usuario = $1 and id_subtarefa = $2", [id, id_subtarefa], function(err,result){
  898. done();
  899.  
  900. if(err){
  901. return console.error('error running query', err);
  902. }
  903. });
  904. res.send("Subtarefa cancelada com sucesso");
  905.  
  906. });
  907.  
  908. });
  909.  
  910. // Create SubTarefa para uma Tarefa de um usuário logado -- Funciona
  911. app.post('/createSubTarefa', urlencodedParser, function (req, res) {
  912.  
  913. var id = User.id;
  914.  
  915. if( User.id == -1 ){
  916. res.send("Vc não esta logado");
  917. }
  918.  
  919. var data = { id_tarefa: req.body.id_tarefa, id_usuario: id, nome: req.body.nome,
  920. descricao: req.body.descricao, data_inicio: req.body.data_inicio, data_entrega: req.body.data_entrega,
  921. }
  922.  
  923. pool.connect(function(err, client, done) {
  924.  
  925. if(err) {
  926. return console.error('error fetching client from pool', err);
  927. }
  928.  
  929. client.query( "INSERT INTO tb_subtarefas(id_tarefa, id_usuario, nome, descricao, data_inicio, data_entrega) values($1,$2,$3,$4,$5,$6)",
  930. [ data.id_tarefa, data.id_usuario, data.nome, data.descricao, data.data_inicio, data.data_entrega])
  931.  
  932. done();
  933.  
  934. if(err) {
  935. return console.error('error running query', err);
  936. }
  937.  
  938. });
  939.  
  940. res.send('Subtarefa criada com sucesso');
  941. });
  942.  
  943. // Retrieve todas tarefas de todos usuarios -- Funciona
  944. app.get('/retrieveSubTarefas', function(req, res) {
  945.  
  946. pool.connect(function(err, client, done) {
  947.  
  948. if(err) {
  949. done();
  950. console.log(err);
  951. return res.status(500).json({ success: false, data: err});
  952. }
  953.  
  954. client.query('SELECT * FROM tb_subtarefas ORDER BY id_subtarefa ASC', function(err,result){
  955.  
  956. done();
  957.  
  958. if(err){
  959. return console.error('error running query', err);
  960. }
  961.  
  962. res.setHeader('Access-Control-Allow-Origin', '*');
  963. res.json(result.rows);
  964.  
  965. });
  966.  
  967. });
  968.  
  969. });
  970.  
  971. // Update uma SubTarefa de um Usuário -- Funciona
  972. app.put('/updateSubTarefa', urlencodedParser, function(req, res) {
  973.  
  974.  
  975. var id = req.body.id_subtarefa;
  976. console.log('id_subtarefa: ', id);
  977. var data = { nome: req.body.nome, descricao: req.body.descricao, prioridade: req.body.prioridade, data_inicio: req.body.data_inicio, data_entrega:req.body.data_entrega};
  978. console.log('data: ', data);
  979.  
  980.  
  981. // Get a Postgres client from the connection pool
  982. pool.connect(function(err, client, done) {
  983. // Handle connection errors
  984. if(err) {
  985. done();
  986. console.log(err);
  987. return res.status(500).send(json({ success: false, data: err}));
  988. }
  989.  
  990. client.query('update tb_subtarefas set nome = \'' + data.nome + '\', descricao = \'' + data.descricao + '\', prioridade = '+data.prioridade+', data_inicio = \'' + data.data_inicio + '\', data_entrega = \'' + data.data_entrega + '\' where id_subtarefa = ' + id,
  991. function(err, result){
  992.  
  993. done();
  994.  
  995. if(err){
  996. return console.error('error running query', err);
  997. }
  998.  
  999. });
  1000. });
  1001.  
  1002. res.send('Subtarefa atualizada com sucesso');
  1003. });
  1004.  
  1005. // Delete -- Funciona
  1006. app.delete('/deleteSubTarefa/:id_subtarefa', function(req, res) {
  1007.  
  1008. var id = req.params.id_subtarefa;
  1009.  
  1010. // Get a Postgres client from the connection pool
  1011. pool.connect(function(err, client, done) {
  1012.  
  1013. // Handle connection errors
  1014. if(err) {
  1015. done();
  1016. console.log(err);
  1017. return res.status(500).json({ success: false, data: err});
  1018. }
  1019.  
  1020. client.query('DELETE FROM tb_subtarefas WHERE id_subtarefa = ' + id, function(err, result) {
  1021.  
  1022. done();
  1023.  
  1024. if( err ){
  1025. return console.error('error running query', err);
  1026. }
  1027.  
  1028. });
  1029.  
  1030. });
  1031.  
  1032. res.send('Subtarefa deletada com sucesso');
  1033. });
  1034.  
  1035.  
  1036. ////////////////////////////CRUD Usuario
  1037.  
  1038.  
  1039. // Cadastro -- Funciona
  1040. app.post('/cadastroUsuario', urlencodedParser, function (req, res) {
  1041.  
  1042. var nome = req.body.nome;
  1043. var sobrenome = req.body.sobrenome;
  1044. var username=req.body.username;
  1045. var senha=req.body.senha;
  1046. var confirmaSenha =req.body.confirmaSenha;
  1047.  
  1048. //var User = {id:-1};
  1049. var usuario_existe;
  1050. req.session.id_usuario = -1; // o usuario ainda não está logado na sessão
  1051.  
  1052. // Validação dos Dados
  1053. req.check('username', 'Nome de usuário Inválido.').isEmail();
  1054. req.check('senha', 'Senha inválida').isLength({min:4}).equals(confirmaSenha);
  1055. req.check('senha', 'Senha inválida').isLength({min:4});
  1056.  
  1057. // Verificar se houve erros na validação
  1058. // se não procurar pelo usuario no banco
  1059.  
  1060. var errors = req.validationErrors();
  1061. if(errors){
  1062. req.session.erros = errors;
  1063. console.log(errors);
  1064. //res.send('Not Working');
  1065. res.send('0');
  1066. }
  1067. else{
  1068.  
  1069. // verificar se o usuario ja existe no banco
  1070. pool.connect(function(err, client, done){
  1071.  
  1072. if(err) {
  1073. return console.error('error fetching client from pool', err);
  1074. }
  1075.  
  1076. var query = client.query("SELECT COUNT(*) FROM tb_usuarios where tb_usuarios.username = $1 and tb_usuarios.senha = $2", [username, senha], function(err,row){
  1077. done();
  1078.  
  1079. if(err){
  1080. return console.error('error running query', err);
  1081. }
  1082.  
  1083. }); // end query
  1084.  
  1085. query.on('row', function(row){
  1086.  
  1087. usuario_existe = row.count;
  1088.  
  1089. // Usuario não existe, cadastrar usuario
  1090. if( usuario_existe == 0){
  1091.  
  1092. var data = { nome: req.body.nome, sobrenome: req.body.sobrenome,
  1093. username: req.body.username, senha: req.body.senha, fg_ativo: 1};
  1094.  
  1095. pool.connect(function(err, client, done) {
  1096.  
  1097. if(err) {
  1098. return console.error('error fetching client from pool', err);
  1099. }
  1100.  
  1101. client.query( "INSERT INTO tb_usuarios( nome, sobrenome, username, senha, fg_ativo ) values($1,$2,$3,$4,$5)",
  1102. [ data.nome, data.sobrenome, data.username, data.senha, data.fg_ativo ])
  1103.  
  1104. done();
  1105.  
  1106. if(err) {
  1107. return console.error('error running query', err);
  1108. }
  1109.  
  1110. });
  1111.  
  1112. res.send('1');
  1113. }
  1114. else{
  1115. res.send('2');
  1116. }
  1117. });
  1118.  
  1119. }); // end connect
  1120. } // end else
  1121. });
  1122.  
  1123. // Minha Conta
  1124. app.get('/retrieveMinhaConta', function(req, res) {
  1125.  
  1126. var id = User.id;
  1127.  
  1128. pool.connect(function(err, client, done) {
  1129.  
  1130. if(err) {
  1131. done();
  1132. console.log(err);
  1133. return res.status(500).json({ success: false, data: err});
  1134. }
  1135.  
  1136. client.query('SELECT * FROM tb_usuarios where id_usuario = $1',[id], function(err,result){
  1137.  
  1138. done();
  1139.  
  1140. if(err){
  1141. return console.error('error running query', err);
  1142. }
  1143.  
  1144. res.setHeader('Access-Control-Allow-Origin', '*');
  1145. res.json(result.rows);
  1146.  
  1147. });
  1148.  
  1149. });
  1150.  
  1151. });
  1152.  
  1153. app.get('/retrieveUsuarios', function(req, res) {
  1154.  
  1155. pool.connect(function(err, client, done) {
  1156.  
  1157. if(err) {
  1158. done();
  1159. console.log(err);
  1160. return res.status(500).json({ success: false, data: err});
  1161. }
  1162.  
  1163. client.query('SELECT * FROM tb_usuarios', function(err,result){
  1164.  
  1165. done();
  1166.  
  1167. if(err){
  1168. return console.error('error running query', err);
  1169. }
  1170.  
  1171. res.setHeader('Access-Control-Allow-Origin', '*');
  1172. res.json(result.rows);
  1173.  
  1174. });
  1175.  
  1176. });
  1177.  
  1178. });
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184. // Update -- Funciona
  1185. app.put('/updateUsuario', urlencodedParser, function(req, res) {
  1186.  
  1187. var id = User.id;
  1188.  
  1189. var data = { nome: req.body.nome, sobrenome: req.body.sobrenome, username: req.body.username, senha:req.body.senha };
  1190.  
  1191. pool.connect(function(err, client, done) {
  1192. // Handle connection errors
  1193. if(err) {
  1194. done();
  1195. console.log(err);
  1196. return res.status(500).send(json({ success: false, data: err}));
  1197. }
  1198.  
  1199. client.query('update tb_usuarios set nome = \'' + data.nome + '\', sobrenome = \'' + data.sobrenome + '\', username = \'' + data.username+ '\', senha= \'' + data.senha + '\' where id_usuario = ' + id,
  1200. function(err, result){
  1201.  
  1202. done();
  1203.  
  1204. if(err){
  1205. return console.error('error running query', err);
  1206. }
  1207.  
  1208. });
  1209. });
  1210.  
  1211. res.send('Usuario atualizado com sucesso');
  1212.  
  1213. });
  1214.  
  1215. // Update Senha
  1216. app.put('/updateNovaSenha', urlencodedParser, function(req, res) {
  1217.  
  1218. var id = User.id;
  1219. var senha = req.body.nova_senha;
  1220. var confirmaSenha = req.body.confirma_nova_senha;
  1221. console.log('senha: ', senha);
  1222. console.log('confirma senha: ', confirmaSenha);
  1223.  
  1224. // Validação dos Dados
  1225. if( senha != confirmaSenha ){
  1226. res.send('0');
  1227. }
  1228. else{
  1229.  
  1230. pool.connect(function(err, client, done) {
  1231. // Handle connection errors
  1232. if(err) {
  1233. done();
  1234. console.log(err);
  1235. return res.status(500).send(json({ success: false, data: err}));
  1236. }
  1237.  
  1238. client.query('update tb_usuarios set senha= \'' + senha + '\' where id_usuario = ' + id,
  1239. function(err, result){
  1240.  
  1241. done();
  1242.  
  1243. if(err){
  1244. return console.error('error running query', err);
  1245. }
  1246.  
  1247. });
  1248. });
  1249.  
  1250. res.send('1');
  1251. }
  1252. });
  1253.  
  1254.  
  1255. // Delete -- Funciona
  1256. app.delete('/deleteUsuario/:id_usuario', function(req, res) {
  1257.  
  1258. var id = req.params.id_usuario;
  1259.  
  1260. // Get a Postgres client from the connection pool
  1261. pool.connect(function(err, client, done) {
  1262.  
  1263. // Handle connection errors
  1264. if(err) {
  1265. done();
  1266. console.log(err);
  1267. return res.status(500).json({ success: false, data: err});
  1268. }
  1269.  
  1270. client.query('DELETE FROM tb_subtarefas USING tb_tarefas where tb_tarefas.id_usuario = tb_subtarefas.id_usuario and tb_tarefas.id_usuario = ' + id, function(err, result) {
  1271. done();
  1272. if( err ){
  1273. return console.error('error running query', err);
  1274. }
  1275. });
  1276.  
  1277. client.query('DELETE FROM tb_tarefas WHERE tb_tarefas.id_usuario = ' + id, function(err, result) {
  1278. done();
  1279. if( err ){
  1280. return console.error('error running query', err);
  1281. }
  1282. });
  1283.  
  1284. client.query('DELETE FROM tb_projetos WHERE tb_projetos.id_usuario = ' + id, function(err, result) {
  1285. done();
  1286. if( err ){
  1287. return console.error('error running query', err);
  1288. }
  1289. });
  1290. client.query('DELETE FROM tb_usuarios WHERE id_usuario = ' + id, function(err, result) {
  1291.  
  1292. done();
  1293.  
  1294. if( err ){
  1295. return console.error('error running query', err);
  1296. }
  1297.  
  1298. });
  1299.  
  1300. });
  1301.  
  1302. res.send('Usuario deletado com sucesso');
  1303. });
  1304.  
  1305. //////////////////////////////////////////////////////////////////////////////////////////////////
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement