Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Error no Resource

Bom dia turma, fiz uma api de cadastro de empresa com o padrão DTO, estou conseguindo pegar a lista de todas as empresas e cadastrar a empresa no padrão DTO, mas na parte de update e fazer um GET por ID fico com um erro na parte do retorno da resposta.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas

Esse é como esta meu controller

package com.example.spring.resource;

import com.example.spring.dtos.inputs.EmpresaInputDTO;
import com.example.spring.dtos.outputs.EmpresaOutputDTO;
import com.example.spring.entities.Empresa;
import com.example.spring.services.EmpresaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;

import static org.springframework.http.ResponseEntity.ok;

@RequestMapping("/empresa")
@RestController
public class EmpresaResource {

    private  final EmpresaService empresaService;

    @Autowired
    public EmpresaResource(EmpresaService empresaService){
        this.empresaService = empresaService;
    }

    @GetMapping
    public List<EmpresaOutputDTO> getAllEmpresa(){
        return this.empresaService.getAllEmpresa();
    }

    @GetMapping("{id}")
    public ResponseEntity<EmpresaInputDTO> getEmpresaById(@PathVariable(value = "id") Long empresaid){
        Empresa empresa = empresaService.getEmpresaById(empresaid);
        return ResponseEntity<EmpresaInputDTO>.ok().body(empresa);
    }



    @PostMapping
    public ResponseEntity<EmpresaOutputDTO> createEmpresa(@RequestBody EmpresaInputDTO dto){
        Empresa empresa = empresaService.createEmpresa(dto.transformaDTO());
        return new ResponseEntity<>(EmpresaOutputDTO.transformaEmDTO(empresa), HttpStatus.CREATED);
    }

    @PutMapping("/{id}")
    public ResponseEntity<Empresa> updateEmpresa(@PathVariable(value = "id") Long empresaId, @RequestBody Empresa dto){
        Empresa empresa = empresaService.updateEmpresa(empresaId,dto);
        return ok().body(empresa);
    }


}
solução!

E esse é meu Service.

package com.example.spring.services;

import java.util.List;

import com.example.spring.dtos.outputs.EmpresaOutputDTO;
import com.example.spring.entities.Empresa;
import com.example.spring.repository.EmpresaRepository;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class EmpresaService {

    private final EmpresaRepository empresaRepository;

    @Autowired
    public EmpresaService(EmpresaRepository empresaRepository){
        this.empresaRepository = empresaRepository;
    }

    public List<EmpresaOutputDTO> getAllEmpresa(){
        List<Empresa> empresa = empresaRepository.findAll();
        return EmpresaOutputDTO.convert(empresa);
    }

    public Empresa getEmpresaById(Long id){
        return empresaRepository.findById(id).orElse(null);      
    }

    public Empresa createEmpresa(Empresa empresa){
        return empresaRepository.save(empresa);
    }

    public Empresa updateEmpresa(Long id, Empresa empresa){
        empresaRepository.findById(id);

        empresa.setEmpresaEmail(empresa.getEmpresaEmail());
        empresa.setEmpresaNome(empresa.getEmpresaNome());
        Empresa updatedEmpresa = empresaRepository.save(empresa);
        return updatedEmpresa;
    }





}