1
resposta

pedidoId NULL

Boa noite a todos

Estou recebendo um NullPointerException para o pedidoId, mas não entendi porque. Alguém teria alguma sogestão?

Agradeço desde já

<!DOCTYPE html>
<html lang="en">
<head th:replace="~{base :: head}"></head>
<body onload="onLoad()">

    <div th:replace="~{base :: logo}"></div>
    <div class="container" id="ofertas">
        <div th:replace="~{base :: titulo('Faça Sua Oferta')}"></div>

        <div class="card mb-3 mt-3" v-for="pedido in pedidos">
            <div class="card-header alert alert-dark">{{pedido.nomeProduto}}</div>

            <div class="card-body">
                <div class="row">
                    <div class="col-12 col-sm-8 mb-3">

                    <div>Produto</div>
                        <div class="mb-4">
                            <a v-bind:href="pedido.urlProduto" target="_blank">{{pedido.nomeProduto}}</a>
                        </div>

                        <div>Descrição</div>
                        <div>
                            <textarea disabled="disabled" class="form-control">{{pedido.descricao}}</textarea>
                        </div>
                        <div class="row mt-5">
                            <div class="col-md-5">
                                Valor: <input class="form-control" v-model="pedido.valorNegociado"/>
                            </div>
                            <div class="col-md-7">
                                Data de entrega: <input class="form-control" v-model="pedido.dataEntrega" />
                            </div>
                        </div>
                        <div class="mt-5">
                            <label>Comentário</label>
                            <textarea class="form-control" v-model="pedido.comentario"></textarea>
                        </div>
                        <button v-on:click="enviarOferta(pedido)"  class="btn btn-primary mt-5">Enviar oferta</button>
                    </div>
                    <div class="col-12 col-sm-4">
                        <div>
                            <img class="img-thumbnail" v-bind:src="pedido.urlImagem" />
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <script>

        function onLoad(){
            var app = new Vue({
             el: '#ofertas',
             data : {
                 pedidos: []
             },
             mounted(){
                 axios
                 .get('http://localhost:8080/api/pedidos/aguardando')
                 .then(response => (this.pedidos = response.data))
             },
             methods:{
                 enviarOferta : function(pedido){
                     axios
                     .post('http://localhost:8080/api/ofertas', {
                         pedidoId: pedido.id,
                         valor: pedido.valorNegociado,
                         dataEntrega: pedido.dataEntrega,
                         comentario: pedido.comentario

                     })
                     .then(resonpse => console.log(response));
                 }
             }

            });
            }
    </script>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>



</body>
</html>
package br.com.dominio.mvc.mudi.api;

import java.util.Optional;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import br.com.dominio.mvc.mudi.dto.RequisicaoNovaOfeta;
import br.com.dominio.mvc.mudi.model.Oferta;
import br.com.dominio.mvc.mudi.model.Pedido;
import br.com.dominio.mvc.mudi.repository.PedidoRepository;

@RestController
@RequestMapping("/api/ofertas")
public class OfertasRest {

    @Autowired
    private PedidoRepository pedidoRepository;

    @PostMapping
    public Oferta criaOferta (@RequestBody RequisicaoNovaOfeta requisicao) {
        Optional<Pedido> pedidoBuscado = pedidoRepository.findById(requisicao.getPedidoId());
        if(!pedidoBuscado.isPresent()) {
            return null;
        }

        Pedido pedido = pedidoBuscado.get();
        Oferta nova = requisicao.toOferta();
        nova.setPedido(pedido);
        pedido.getOfertas().add(nova);
        pedidoRepository.save(pedido);
        return nova;
    }

}
1 resposta

Blz Amigo?

Posta ai a trace do erro por favor.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software