0
Good Morning,
I’m trying to solve a problem but I’m not getting ...please I need help:
When trying to change a product registration, in Angular I get the API status 202 and the record is not saved in mysql database
Follow the application details:
service:
// GRAVAR PRODUTO
updateProduct(product: Iproduto): Observable {
return this.http.put<IProduto>(`${this.URL}/${produto.id}`, produto).pipe(
map(retorno => retorno),
catchError(erro => this.exibeErro(erro))
);
}
Interface:
export interface Iproduto {
id?: number;
id_grupo: number;
id_marca: number;
id_locacao: number;
status: string;
descricao: string;
estoque_min: number;
estoque_max: number;
} Component.:
import { Router, ActivatedRoute, ActivatedRouteSnapshot } from '@angular/router';
import { Iproduto } from './.. /.. /models/Iproduto.model'; import { Productosservice } from './.. /.. /services/products.service'; import { Component, Oninit } from '@angular/core';
@Component({ selector: 'app-update-product', templateUrl: './update-product.component.html', styleUrls: ['. /update-product.component.css'] }) export class Uprodutocomponent Oninit Mplements {
private token = bearer ${localStorage.getItem('token')}
;
//*** STATEMENT OF VARIABLES *** //
product: Iproduto = {
id_grupo: null,
id_marca: null,
id_locacao: null,
status: null,
descricao: null,
estoque_min: null,
estoque_max: null
}
constructor( private productsService: Productsservice, private router: Router, router private activatedRouter: Activatedroute) { }
ngOnInit(): void {
const id = Number(this.activatedRouter.snapshot.paramMap.get('id'));
this.produtosService.buscarPorId(id).subscribe(retorno => {
this.produto = retorno['produto'];
});
}
salvarProduto( ):void {
this.produtosService.atualizarProduto(this.produto).subscribe( retorno => {
this.produto = retorno;
this.produtosService.exibirMensagem(
'SISTEMA',
`${this.produto.descricao} foi atualizado com sucesso.`,
'toast-success'
);
this.router.navigate(['produtos/listar-produtos']);
});
}
}
The 'change' function in the API:
exports.updateProduto = (req, res, next) =>{
mysql.getConnection((error, conn) =>{
if(error){return res.status(500).send({ error : error })}
conn.query(
`UPDATE produtos SET
id_grupo = ?,
id_marca = ?,
id_locacao = ?,
status = ?,
descricao = ?,
estoque_min = ?,
estoque_max = ? WHERE id = ?;`,
[
req.body.id,
req.body.id_grupo,
req.body.id_marca,
req.body.id_locacao,
req.body.status,
req.body.descricao,
req.body.estoque_min,
req.body.estoque_max
],
(error, result, field) => {
conn.release();
if(error){return res.status(500).send({ error : error })}
const response = {
mensagem: 'Produto atualizado com sucesso',
produtoAtualizado:{
id: req.body.id,
id_grupo: req.body.id_grupo,
id_marca: req.body.id_marca,
id_locacao: req.body.id_locacao,
status: req.body.status,
descricao: req.body.descricao,
estoque_min: req.body.estoque_min,
estoque_max: req.body.estoque_max,
}
}
return res.status(202).send(response);
}
)
});
}
Return from browser console:
Xhrputhttp://localhost:3000/products/5 [HTTP/1.1 202 Accepted 85ms]
message "Product updated successfully" Product Updated Object { id: 5, id_group: 1, id_brand: 8, ... } id 5 id_group 1 id_mark 8 id_locacao 5 status "A" Description "BORR PAN PRESS SILIC ETERNA NIGRO 3-4,5-6L S/PQ CWA" estoque_min 5 stock_max 35
In the terminal:
PUT /produtos/5 202 86.677 ms - 227
GET /products 304 9,784 ms - - GET /products 304 26.792 ms - -
I already know what to do ...