Guest User

Untitled

a guest
Nov 10th, 2018
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.95 KB | None | 0 0
  1. //Importando a biblioteca do Restify
  2. var restify = require('restify');
  3. var mysql = require('mysql');
  4.  
  5. /*
  6. Criando objeto com as credenciais
  7. de conexão com o BD
  8. */
  9. var con = {
  10. host: 'localhost',
  11. user: 'root',
  12. password: 'password',
  13. database: 'ec021'
  14. };
  15.  
  16. /*
  17. Criando nossas funções do CRUD.
  18. */
  19. function inserir(req, res, next) {
  20. //Definindo o formato da response
  21. res.setHeader('Access-Control-Allow-Origin', '*');
  22. res.setHeader('content-type', 'application/json');
  23. res.charSet('UTF-8');
  24.  
  25. /**
  26. * Montando um objeto toddy com
  27. * os dados que vieram do body da request
  28. */
  29. var toddy = {
  30. lote: req.body.lote,
  31. conteudo: req.body.conteudo,
  32. validade: req.body.validade
  33. }
  34.  
  35. /** Abrindo a conexão com o BD */
  36. var connection = mysql.createConnection(con);
  37. connection.connect();
  38.  
  39. /** Escrevendo query que será executada */
  40. var strQuery = `INSERT INTO toddy (lote, conteudo, validade)
  41. VALUES ('${toddy.lote}',
  42. '${toddy.conteudo}',
  43. '${toddy.validade}');`;
  44.  
  45. /** Exibindo query no console */
  46. console.log(strQuery);
  47.  
  48. /** Executando query e processando resultados */
  49. connection.query(strQuery, function(err, rows, fields) {
  50. if (!err) { //Se não houver erros
  51. res.json(rows); //Retornamos as linhas
  52. } else { //Caso contrário
  53. res.json(err); //Retornamos dados sobre o erro
  54. }
  55. });
  56.  
  57. /** Encerrando conexão com o BD */
  58. connection.end();
  59.  
  60. /** Encerrando método da REST API */
  61. next();
  62. }
  63.  
  64. function listar(req, res, next) {
  65. //Definindo o formato da response
  66. res.setHeader('Access-Control-Allow-Origin', '*');
  67. res.setHeader('content-type', 'application/json');
  68. res.charSet('UTF-8');
  69.  
  70. /** Abrindo a conexão com o BD */
  71. var connection = mysql.createConnection(con);
  72. connection.connect();
  73.  
  74. /** Escrevendo query que será executada */
  75. var strQuery = "SELECT id, lote, conteudo, validade FROM toddy;";
  76.  
  77. /** Exibindo query no console */
  78. console.log(strQuery);
  79.  
  80. /** Executando query e processando resultados */
  81. connection.query(strQuery, function(err, rows, fields) {
  82. if (!err) { //Se não houver erros
  83. res.json(rows); //Retornamos as linhas
  84. } else { //Caso contrário
  85. res.json(err); //Retornamos dados sobre o erro
  86. }
  87. });
  88.  
  89. /** Encerrando conexão com o BD */
  90. connection.end();
  91.  
  92. /** Encerrando método da REST API */
  93. next();
  94. }
  95.  
  96. function listarVencidos(req, res, next) {
  97. //Definindo o formato da response
  98. res.setHeader('Access-Control-Allow-Origin', '*');
  99. res.setHeader('content-type', 'application/json');
  100. res.charSet('UTF-8');
  101.  
  102. /** Abrindo a conexão com o BD */
  103. var connection = mysql.createConnection(con);
  104. connection.connect();
  105.  
  106. /** Escrevendo query que será executada */
  107. var strQuery = "SELECT id, lote, conteudo, validade FROM toddy;";
  108.  
  109. /** Exibindo query no console */
  110. console.log(strQuery);
  111.  
  112. /** Executando query e processando resultados */
  113. connection.query(strQuery, function(err, rows, fields) {
  114. if (!err) { //Se não houver erros
  115. var dataHoje = new Date(); //Variável para armazenar a data corrente
  116. var vencidos = []; //Vetor para armazenar os vencidos
  117.  
  118. for(var i = 0; i < rows.length; i++) {//Percorrendo todas as rows
  119. var toddy = rows[i];
  120.  
  121. // Convertendo a string em data
  122. var parts = toddy.validade.split('/'); //Separando a data em um vetor DD MM AAAA
  123. // Atenção ao mês (parts[1]); JavaScript conta os meses a partir do 0:
  124. // Janeiro - 0, Fevereiro - 1, etc.
  125. var dataToddy = new Date(parts[2], parts[1]-1, parts[0]);
  126.  
  127. if(dataToddy < dataHoje) { //Se a data do produto for menor que a data de hoje, está vencido
  128. vencidos.push(toddy); //Adiciona elemento no vetor
  129. }
  130. }
  131. res.json(vencidos); //Retornamos as linhas com os produtos vencidos
  132. } else { //Caso contrário
  133. res.json(err); //Retornamos dados sobre o erro
  134. }
  135. });
  136.  
  137. /** Encerrando conexão com o BD */
  138. connection.end();
  139.  
  140. /** Encerrando método da REST API */
  141. next();
  142. }
  143.  
  144. function atualizar(req, res, next) {
  145. //Definindo o formato da response
  146. res.setHeader('Access-Control-Allow-Origin', '*');
  147. res.setHeader('content-type', 'application/json');
  148. res.charSet('UTF-8');
  149.  
  150. /**
  151. * Montando um objeto toddy com
  152. * os dados que vieram do body da request
  153. */
  154. var toddy = {
  155. id: req.body.id,
  156. lote: req.body.lote,
  157. conteudo: req.body.conteudo,
  158. validade: req.body.validade
  159. }
  160.  
  161. /** Abrindo a conexão com o BD */
  162. var connection = mysql.createConnection(con);
  163. connection.connect();
  164.  
  165. /** Escrevendo query que será executada */
  166. var strQuery = `UPDATE toddy SET
  167. lote = '${toddy.lote}',
  168. conteudo = '${toddy.conteudo}',
  169. validade = '${toddy.validade}'
  170. WHERE id = '${toddy.id}';`;
  171.  
  172. /** Exibindo query no console */
  173. console.log(strQuery);
  174.  
  175. /** Executando query e processando resultados */
  176. connection.query(strQuery, function(err, rows, fields) {
  177. if (!err) { //Se não houver erros
  178. res.json(rows); //Retornamos as linhas
  179. } else { //Caso contrário
  180. res.json(err); //Retornamos dados sobre o erro
  181. }
  182. });
  183.  
  184. /** Encerrando conexão com o BD */
  185. connection.end();
  186.  
  187. /** Encerrando método da REST API */
  188. next();
  189. }
  190.  
  191. function excluirPorId(req, res, next) {
  192. //Definindo o formato da response
  193. res.setHeader('Access-Control-Allow-Origin', '*');
  194. res.setHeader('content-type', 'application/json');
  195. res.charSet('UTF-8');
  196.  
  197. console.log(req.query)
  198.  
  199. /** Abrindo a conexão com o BD */
  200. var connection = mysql.createConnection(con);
  201. connection.connect();
  202.  
  203. /** Escrevendo query que será executada */
  204. var strQuery = `DELETE FROM toddy WHERE id = '${req.query.id}';`;
  205.  
  206. /** Exibindo query no console */
  207. console.log(strQuery);
  208.  
  209. /** Executando query e processando resultados */
  210. connection.query(strQuery, function(err, rows, fields) {
  211. if (!err) { //Se não houver erros
  212. res.json(rows); //Retornamos as linhas
  213. } else { //Caso contrário
  214. res.json(err); //Retornamos dados sobre o erro
  215. }
  216. });
  217.  
  218. /** Encerrando conexão com o BD */
  219. connection.end();
  220.  
  221. /** Encerrando método da REST API */
  222. next();
  223. }
  224.  
  225. function excluirPorMes(req, res, next) {
  226. //Definindo o formato da response
  227. res.setHeader('Access-Control-Allow-Origin', '*');
  228. res.setHeader('content-type', 'application/json');
  229. res.charSet('UTF-8');
  230.  
  231. /** Abrindo a conexão com o BD */
  232. var connection = mysql.createConnection(con);
  233. connection.connect();
  234.  
  235. /** Escrevendo query que será executada */
  236. var strQuery = `DELETE FROM toddy WHERE validade LIKE '%/${req.body.mes}/%';`;
  237.  
  238. /** Exibindo query no console */
  239. console.log(strQuery);
  240.  
  241. /** Executando query e processando resultados */
  242. connection.query(strQuery, function(err, rows, fields) {
  243. if (!err) { //Se não houver erros
  244. res.json(rows); //Retornamos as linhas
  245. } else { //Caso contrário
  246. res.json(err); //Retornamos dados sobre o erro
  247. }
  248. });
  249.  
  250. /** Encerrando conexão com o BD */
  251. connection.end();
  252.  
  253. /** Encerrando método da REST API */
  254. next();
  255. }
  256.  
  257. function excluirPorCriterio(req, res, next) {
  258. //Definindo o formato da response
  259. res.setHeader('Access-Control-Allow-Origin', '*');
  260. res.setHeader('content-type', 'application/json');
  261. res.charSet('UTF-8');
  262.  
  263. /** Abrindo a conexão com o BD */
  264. var connection = mysql.createConnection(con);
  265. connection.connect();
  266.  
  267. /** Escrevendo query que será executada */
  268. // DANGER: DO NOT TRY THIS AT PRODUCTION
  269. var strQuery = `DELETE FROM toddy WHERE ${req.body.criterio};`;
  270. // DANGER: DO NOT TRY THIS AT PRODUCTION
  271.  
  272. /** Exibindo query no console */
  273. console.log(strQuery);
  274.  
  275. /** Executando query e processando resultados */
  276. connection.query(strQuery, function(err, rows, fields) {
  277. if (!err) { //Se não houver erros
  278. res.json(rows); //Retornamos as linhas
  279. } else { //Caso contrário
  280. res.json(err); //Retornamos dados sobre o erro
  281. }
  282. });
  283.  
  284. /** Encerrando conexão com o BD */
  285. connection.end();
  286.  
  287. /** Encerrando método da REST API */
  288. next();
  289. }
  290.  
  291. //Configurando servidor
  292. var server = restify.createServer({
  293. name: 'CRUD - Parte 4'
  294. });
  295.  
  296. /**
  297. * Utilizando o bodyParser para
  298. * converter o body da request em
  299. * um jSON
  300. * */
  301. server.use(restify.plugins.bodyParser());
  302.  
  303. /**
  304. * Utilizando o queryParser para
  305. * permitir que métodos GET passem
  306. * parâmetros na URL
  307. */
  308. server.use(restify.plugins.queryParser());
  309.  
  310. /*
  311. Definindo endpoints (ou rotas) da minha aplicação.
  312. */
  313. var toddyPoint = '/toddy'; //Usaremos esta variável para padronizar as URI's
  314.  
  315. server.post(toddyPoint + '/inserir', inserir);
  316. server.get(toddyPoint + '/listar', listar);
  317. server.get(toddyPoint + '/listarVencidos', listarVencidos);
  318. server.post(toddyPoint + '/atualizar', atualizar);
  319. server.post(toddyPoint + '/excluirPorId', excluirPorId);
  320. server.post(toddyPoint + '/excluirPorMes', excluirPorMes);
  321. server.post(toddyPoint + '/excluirPorCriterio', excluirPorCriterio);
  322.  
  323. //Definindo porta em que subiremos o servidor
  324. var port = process.env.PORT || 5000;
  325.  
  326. //Subindo o servidor
  327. server.listen(port, function() {
  328. console.log('%s rodando', server.name);
  329. });
Add Comment
Please, Sign In to add comment