REST API para gerar números aleatórios para loteria
30/01/2021 11:09
0
Estou criando uma REST API para gerar número aleatórias para loteria. Estes são os endpointes de requisito.
No primeiro passo, precisamos construir um endpoint que receberá o e-mail da pessoa e retornará um objeto de resposta com os números sorteados para a aposta.
Também devemos construir um segundo endpoint para listar todas as apostas de um solicitante, passando seu e-mail como parâmetro.
Problemática:
Meu projeto conta com três classes principais, a Classe Aposta, que é abstrata e contem o método abstrato gerarAposta( ), a classe ApostaSimplesMegasena que estende a classe Aposta e implementa o método gerarAposta( ) e por fim a classe Apostador, que contem os atributos ID, email e uma List das apostas associadas a ele.
Preciso verificar se o e-mail informado já existe no banco de dados, se já existir, eu também preciso verificar se já existe uma combinação de números(aposta) associada a aquele e-mail antes de salvar a nova aposta no banco. Se não exister registro do e-mail informado no banco, apenas devo salvar a nova aposta.
Seguem os códigos das classes:
package com.apostas.api.apostas.api.model;
import lombok.Data;
import javax.persistence.*;
import java.time.LocalDateTime;
@Data
@Entity
@Table(name = "apostas")
public abstract class Aposta {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    @Column(name = "aposta", nullable = false)
    private Integer numerosaposta = gerarNumeros();
    @Column(name = "criadaEm", nullable = false)
    private LocalDateTime criadaEm = LocalDateTime.now();
    public abstract Integer gerarNumeros();
}
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ApostaSimplesMegasena extends Aposta{
    @Override
    public Integer gerarNumeros() {
        Random gerador = new Random();
        return gerador.nextInt(1-60);
    }
}
@Data
@Accessors (chain = true)
@Entity
@Table(name = "apostadores")
public class Apostador {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    @Column(name ="email", nullable = false, unique = true)
    private String email;
    @OneToMany(fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE})
    private List<ApostaSimplesMegasena> apostaSimplesMegasena;
}
Minha dificuldade está em fazer essas verificações antes de salvar a aposta no banco. Sei que é uma dúvida besta, mas é a primeira API que estou desenvolvendo. Se alguém puder me ajudar com um exemplo, ficarei muito grato.
Tags: Spring Boot, RESTfull, JPA


Ainda não faz parte da comunidade???

Para se registrar, clique aqui.

Podcast da itexto



Aprenda Groovy e Grails, Spring e mais com a Formação itexto!

Livro de Spring


/dev/All

Os melhores blogs de TI
em um único lugar!

 
Spring Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.