Olá! Estou tentando aplicar os conhecimentos do curso em uma api de noticias, e quero fazer um inventário de pesquisa por usuário, eu fiz uma api que consome uma outra api. Tem como fazer esse histórico dinâmico relacionando etiqueta e usuario na pesquisa da api externa?
Comecei fazendo assim:
@Entity
public class Historico {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private LocalDate dataConsulta;
@OneToOne
private Usuario usuario;
@OneToOne
private Etiqueta etiqueta;
public Historico() {};
public Historico(LocalDate dataConsulta, Usuario usuario, Etiqueta etiqueta) {
this.dataConsulta = dataConsulta;
this.usuario = usuario;
this.etiqueta = etiqueta;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public LocalDate getDataConsulta() {
return dataConsulta;
}
public void setDataConsulta(LocalDate dataConsulta) {
this.dataConsulta = dataConsulta;
}
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
public Etiqueta getEtiqueta() {
return etiqueta;
}
public void setEtiqueta(Etiqueta etiqueta) {
this.etiqueta = etiqueta;
}
}
O service:
@Service
public class HistoricoService {
@Autowired
private HistoricoRepository historicoRepository;
public Historico salvar(Historico historico) {
return historicoRepository.save(historico);
}
}
O controller:
@RestController
@RequestMapping("/noticias")
public class HistoricoController {
@Autowired
private NoticiasService noticiasService;
@Autowired
private HistoricoService historicoService;
@GetMapping("/noticias/{usuarioDto}/{etiqueta}")
public ResponseEntity<Historico> getHistorico(@PathVariable UsuarioDto usuarioDto, @PathVariable Etiqueta etiqueta) {
var noticiasEncontradas = noticiasService.consultarNoticia(usuarioDto.getNome(), etiqueta.getDescricao());
var salvarNoticiaEncontrada = historicoService.salvar(noticiasEncontradas);
return ResponseEntity.status(HttpStatus.OK).body(salvarNoticiaEncontrada);
}
}