You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.5 KiB
77 lines
2.5 KiB
package erp.pedidos.pedido;
|
|
|
|
import java.lang.reflect.Field;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.web.bind.annotation.CrossOrigin;
|
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
import org.springframework.web.bind.annotation.PatchMapping;
|
|
import org.springframework.web.bind.annotation.PathVariable;
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
import org.springframework.web.bind.annotation.PutMapping;
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
@RestController
|
|
@RequestMapping("/api/pedido")
|
|
@CrossOrigin({"*"})
|
|
public class PedidoController {
|
|
|
|
@Autowired
|
|
PedidoService service;
|
|
|
|
@GetMapping("/{id}/")
|
|
public Pedido findById(@PathVariable Integer id){
|
|
return service.findById(id);
|
|
}
|
|
|
|
@GetMapping("/")
|
|
public List<Pedido> findAll(){
|
|
return service.findAll();
|
|
}
|
|
|
|
//Create
|
|
//Delimitador de acceso (public, private), tipo de dato de retorno, nombre del método, parametros de entrada { Sentencias }
|
|
@PostMapping("/")
|
|
public Pedido save (@RequestBody Pedido entity ){
|
|
return service.save(entity);
|
|
}
|
|
|
|
@PutMapping("/")
|
|
public Pedido update (@RequestBody Pedido entity){
|
|
return service.save(entity);
|
|
}
|
|
|
|
@DeleteMapping("/{id}/")
|
|
public void deleteById(@PathVariable Integer id){
|
|
service.deleteById(id);
|
|
}
|
|
|
|
@PatchMapping("/{id}/")
|
|
public Pedido partialUpdate(@PathVariable Integer id, @RequestBody Map<String, Object> fields){
|
|
|
|
Pedido entity = findById(id);
|
|
|
|
// itera sobre los campos que se desean actualizar
|
|
for (Map.Entry<String, Object> field : fields.entrySet()) {
|
|
String fieldName = field.getKey();
|
|
Object fieldValue = field.getValue();
|
|
|
|
// utiliza reflection para establecer el valor del campo en la entidad
|
|
try {
|
|
Field campoEntidad = Pedido.class.getDeclaredField(fieldName);
|
|
campoEntidad.setAccessible(true);
|
|
campoEntidad.set(entity, fieldValue);
|
|
} catch (NoSuchFieldException | IllegalAccessException ex) {
|
|
// maneja la excepción si ocurre algún error al acceder al campo
|
|
}
|
|
}
|
|
return update(entity);
|
|
}
|
|
|
|
}
|