1
- const mysql = require ( '../mysql' ) . pool ;
1
+ const mysql = require ( '../mysql' ) ;
2
2
3
- exports . getpedidos = ( req , res , next ) => {
4
- mysql . getConnection ( ( error , conn ) => {
5
- if ( error ) { return res . status ( 500 ) . send ( { error : error } ) }
6
- conn . query (
7
- `SELECT pedidos.id_pedido,
8
- pedidos.quantidade,
9
- produtos.id_produto,
10
- produtos.nome_produto,
11
- produtos.preco_produto
12
- FROM pedidos
13
- INNER JOIN produtos
14
- ON produtos.id_produto = pedidos.id_produto;` ,
15
- ( error , result , fields ) => {
16
- if ( error ) { return res . status ( 500 ) . send ( { error : error } ) }
17
- const response = {
18
- pedidos : result . map ( pedido => {
19
- return {
20
- id_pedido : pedido . id_pedido ,
21
- quantidade : pedido . quantidade ,
22
- produto :{
23
- id_produtos : pedido . id_produtos ,
24
- nome_produto : pedido . nome_produto ,
25
- preco_produto : pedido . preco_produto
26
- } ,
27
- request : {
28
- tipo : 'GET' ,
29
- descicao : 'Retorna os detalhes de um pedido especifico' ,
30
- url : process . env . URL_API + '/pedidos/' + pedido . id_pedido
31
- }
32
- }
33
- } )
3
+ exports . getpedidos = async ( req , res , next ) => {
4
+ try {
5
+ const query = `SELECT pedidos.id_pedido,
6
+ pedidos.quantidade,
7
+ produtos.id_produto,
8
+ produtos.nome_produto,
9
+ produtos.preco_produto
10
+ FROM pedidos
11
+ INNER JOIN produtos
12
+ ON produtos.id_produto = pedidos.id_produto;`
13
+ const result = await mysql . execute ( query ) ;
14
+ const response = {
15
+ pedidos : result . map ( pedido => {
16
+ return {
17
+ id_pedido : pedido . id_pedido ,
18
+ quantidade : pedido . quantidade ,
19
+ produto :{
20
+ id_produtos : pedido . id_produtos ,
21
+ nome_produto : pedido . nome_produto ,
22
+ preco_produto : pedido . preco_produto
23
+ } ,
24
+ request : {
25
+ tipo : 'GET' ,
26
+ descicao : 'Retorna os detalhes de um pedido especifico' ,
27
+ url : process . env . URL_API + 'pedidos/' + pedido . id_pedido
34
28
}
35
- return res . status ( 200 ) . send ( { response } )
36
29
}
37
- )
38
- } ) ;
30
+ } )
31
+ }
32
+ return res . status ( 200 ) . send ( { response } )
33
+ } catch ( error ) {
34
+ return res . status ( 500 ) . send ( { error : error } )
35
+ }
39
36
} ;
40
37
41
- exports . postPedidos = ( req , res , next ) => {
42
- mysql . getConnection ( ( error , conn ) => {
43
- if ( error ) { return res . status ( 500 ) . send ( { error : error } ) }
44
- conn . query ( 'SELECT * FROM produtos WHERE id_produto = ?' ,
45
- [ req . body . id_produto ] ,
46
- ( error , result , field ) => {
47
- if ( error ) { return res . status ( 500 ) . send ( { error : error } ) }
48
- if ( result . length == 0 ) {
49
- return res . status ( 404 ) . send ( {
50
- mensagem : 'Produto não encontrado!!'
51
- } )
52
- }
53
- conn . query (
54
- 'INSERT INTO pedidos(id_produto, quantidade) VALUES (?,?)' ,
55
- [ req . body . id_produto , req . body . quantidade ] ,
56
- ( error , result , field ) => {
57
- conn . release ( ) ;
58
- if ( error ) { return res . status ( 500 ) . send ( { error : error } ) }
59
- const response = {
60
- mensagem : 'Pedido inserido com sucesso!!' ,
61
- pedidoCriado : {
62
- id_pedido : result . id_pedido ,
63
- id_produto : req . body . id_produto ,
64
- quantidade : req . body . quantidade ,
65
- request : {
66
- tipo : 'GET' ,
67
- descicao : 'Retorna todos os pedidos' ,
68
- url : process . env . URL_API + '/pedidos'
69
- }
70
- }
71
- }
72
- return res . status ( 201 ) . send ( response ) ;
38
+ exports . postPedidos = async ( req , res , next ) => {
39
+
40
+ try {
41
+ const queryProduto = 'SELECT * FROM produtos WHERE id_produto = ?' ;
42
+ const resultProduto = await mysql . execute ( queryProduto , [ req . body . id_produto ] ) ;
43
+ if ( resultProduto . length == 0 ) {
44
+ return res . status ( 404 ) . send ( { mensagem : 'Produto não encontrado!!' } )
45
+ }
46
+
47
+ const queryPedido = 'INSERT INTO pedidos(id_produto, quantidade) VALUES (?,?)' ;
48
+ const resultPedidos = await mysql . execute ( queryPedido , [ req . body . id_produto , req . body . quantidade ] ) ;
49
+ const response = {
50
+ mensagem : 'Pedido inserido com sucesso!!' ,
51
+ pedidoCriado : {
52
+ id_pedido : resultPedidos . id_pedido ,
53
+ id_produto : req . body . id_produto ,
54
+ quantidade : req . body . quantidade ,
55
+ request : {
56
+ tipo : 'GET' ,
57
+ descicao : 'Retorna todos os pedidos' ,
58
+ url : process . env . URL_API + '/pedidos'
59
+ }
73
60
}
74
- )
75
- } ) ;
76
- } ) ;
61
+ }
62
+ return res . status ( 201 ) . send ( response ) ;
63
+
64
+ } catch ( error ) {
65
+ return res . status ( 500 ) . send ( { error : error } )
66
+ }
77
67
} ;
78
68
79
- exports . getUmPedido = ( req , res , next ) => {
80
- mysql . getConnection ( ( error , conn ) => {
81
- if ( error ) { return res . status ( 500 ) . send ( { error : error } ) }
82
- conn . query (
83
- 'SELECT * FROM pedidos WHERE id_pedido = ?;' ,
84
- [ req . params . id_pedido ] ,
85
- ( error , result , fields ) => {
86
- if ( error ) { return res . status ( 500 ) . send ( { error : error } ) }
87
- if ( result . length == 0 ) {
88
- return res . status ( 404 ) . send ( {
89
- mensagem : 'Não foi encontrado pedido com esse ID'
90
- } )
91
- }
92
- const response = {
93
- produto : {
94
- id_pedido : result [ 0 ] . id_pedido ,
95
- id_produto : result [ 0 ] . id_produto ,
96
- quantidade : result [ 0 ] . quantidade ,
97
- request : {
98
- tipo : 'GET' ,
99
- descicao : 'Retorna todos os pedidos' ,
100
- url : process . env . URL_API + '/pedidos'
101
- }
102
- }
69
+ exports . getUmPedido = async ( req , res , next ) => {
70
+
71
+ try {
72
+ const query = 'SELECT * FROM pedidos WHERE id_pedido = ?;' ;
73
+ const result = await mysql . execute ( query , [ req . params . id_pedido ] ) ;
74
+
75
+ if ( result . length == 0 ) {
76
+ return res . status ( 404 ) . send ( { mensagem : 'Não foi encontrado pedido com esse ID' } )
77
+ }
78
+
79
+ const response = {
80
+ produto : {
81
+ id_pedido : result [ 0 ] . id_pedido ,
82
+ id_produto : result [ 0 ] . id_produto ,
83
+ quantidade : result [ 0 ] . quantidade ,
84
+ request : {
85
+ tipo : 'GET' ,
86
+ descicao : 'Retorna todos os pedidos' ,
87
+ url : process . env . URL_API + '/pedidos'
103
88
}
104
- return res . status ( 201 ) . send ( response ) ;
105
89
}
106
- )
107
- } ) ;
90
+ }
91
+ return res . status ( 201 ) . send ( response ) ;
92
+
93
+ } catch ( error ) {
94
+ return res . status ( 500 ) . send ( { error : error } )
95
+ }
108
96
} ;
109
97
110
- exports . deletePedido = ( req , res , next ) => {
111
- mysql . getConnection ( ( error , conn ) => {
112
- if ( error ) { return res . status ( 500 ) . send ( { error : error } ) }
113
- conn . query (
114
- 'DELETE FROM pedidos WHERE id_pedido = ?' , [ req . body . id_pedido ] ,
115
- ( error , result , field ) => {
116
- conn . release ( ) ;
117
- if ( error ) { return res . status ( 500 ) . send ( { error : error } ) }
118
- const response = {
119
- mensagem : 'Pedido removido com sucesso' ,
120
- request : {
121
- tipo : 'POST' ,
122
- descricao : 'Insere um pedido' ,
123
- url : process . env . URL_API + '/pedidos' ,
124
- body : {
125
- id_produto : 'Number' ,
126
- quantidade : 'Number'
127
- }
128
- }
98
+ exports . deletePedido = async ( req , res , next ) => {
99
+ try {
100
+ const query = 'DELETE FROM pedidos WHERE id_pedido = ?' ;
101
+ await mysql . execute ( query , [ req . body . id_pedido ] ) ;
102
+
103
+ const response = {
104
+ mensagem : 'Pedido removido com sucesso' ,
105
+ request : {
106
+ tipo : 'POST' ,
107
+ descricao : 'Insere um pedido' ,
108
+ url : process . env . URL_API + '/pedidos' ,
109
+ body : {
110
+ id_produto : 'Number' ,
111
+ quantidade : 'Number'
129
112
}
130
- return res . status ( 202 ) . send ( response ) ;
113
+ }
131
114
}
132
- )
133
- } ) ;
115
+ return res . status ( 202 ) . send ( response ) ;
116
+
117
+ } catch ( error ) {
118
+
119
+ return res . status ( 500 ) . send ( { error : error } )
120
+ }
134
121
} ;
0 commit comments