Skip to content
Open

a #3

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,16 @@ Use o seguinte comando para iniciar o servidor:<br/>

Opcionais:
- Docker([guia](https://docs.docker.com/))

## Endpoints criados

| Verbo | Endpoint | Ação |
|--------|-------------------------------|----------------------------------------------------------------|
| GET | usuario | Pegar todos os usuários cadastrados |
| POST | usuario | Criar um usuário |
| PUT | usuario | Atualizar um usuário |
| DELETE | ussuario/{id} | Apagar um usuário |
| GET | usuario/aniversariantes/{mes} | Pegar todos os usuários que fazem aniversário no {mes} passado |
| GET | usuario/comeca-com/{letra} | Pegar todos os usuários que tem nome que inicia com a {letra} |
| GET | usuario/provedores-emails | Pegar todos os provedores de email dos usuários cadastrados |
| GET | usuario/{id} | Pegar um usuário pelo {id} passado |
3 changes: 2 additions & 1 deletion src/main/java/com/stefanini/dao/GenericDAO.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,9 @@ public GenericDAO() {
}

@Transactional
public void save(T t){
public T save(T t){
em.persist(t);
return t;
}

public T findById(I id){
Expand Down
127 changes: 127 additions & 0 deletions src/main/java/com/stefanini/dto/UsuarioCompletoDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
package com.stefanini.dto;

import java.time.LocalDate;

import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.stefanini.model.Usuario;
import com.stefanini.util.CheckPasswordValidator;

public class UsuarioCompletoDto {

public UsuarioCompletoDto(){

}

public UsuarioCompletoDto(Usuario usuario){
this.id = usuario.getId();
this.nome = usuario.getNome();
this.login = usuario.getLogin();
this.senha = usuario.getSenha();
this.email = usuario.getEmail();
this.dataNascimento = usuario.getDataNascimento();
}

private Long id;

@Size(max = 50)
@NotBlank
private String nome;

@Size(min = 5,max = 20)
@NotBlank
private String login;

@Size(min = 4,max = 10)
@NotBlank
@Pattern(regexp = CheckPasswordValidator.PASSWORD_VALIDATOR,message = CheckPasswordValidator.SENHA_FORA_DO_PADRAO)
private String senha;

@Size(min = 10)
@NotBlank
@Email
private String email;

@JsonFormat(pattern = "dd/MM/yyyy")
private LocalDate dataNascimento;

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getNome() {
return nome;
}

public void setNome(String nome) {
this.nome = nome;
}

public String getLogin() {
return login;
}

public void setLogin(String login) {
this.login = login;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public String getSenha() {
return senha;
}

public void setSenha(String senha) {
this.senha = senha;
}

public LocalDate getDataNascimento() {
return dataNascimento;
}

public void setDataNascimento(LocalDate dataNascimento) {
this.dataNascimento = dataNascimento;
}

@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
return result;
}

@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
UsuarioCompletoDto other = (UsuarioCompletoDto) obj;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
return true;
}



}
85 changes: 85 additions & 0 deletions src/main/java/com/stefanini/dto/UsuarioDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
package com.stefanini.dto;

import java.time.LocalDate;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.stefanini.model.Usuario;

public class UsuarioDto {

public UsuarioDto(){

}

public UsuarioDto(Usuario usuario){
this.id = usuario.getId();
this.nome = usuario.getNome();
this.login = usuario.getLogin();
this.email = usuario.getEmail();
this.dataNascimento = usuario.getDataNascimento();
}

private Long id;

@Size(max = 50)
@NotBlank
private String nome;

@Size(min = 5,max = 20)
@NotBlank
private String login;


@Size(min = 10)
@NotBlank
@Email
private String email;

@JsonFormat(pattern = "dd/MM/yyyy")
private LocalDate dataNascimento;

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getNome() {
return nome;
}

public void setNome(String nome) {
this.nome = nome;
}

public String getLogin() {
return login;
}

public void setLogin(String login) {
this.login = login;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public LocalDate getDataNascimento() {
return dataNascimento;
}

public void setDataNascimento(LocalDate dataNascimento) {
this.dataNascimento = dataNascimento;
}



}
15 changes: 15 additions & 0 deletions src/main/java/com/stefanini/exception/MesNaoExisteException.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.stefanini.exception;

import javax.ws.rs.WebApplicationException;

public class MesNaoExisteException extends WebApplicationException {
public MesNaoExisteException() {
super();
}
public MesNaoExisteException(String msg) {
super(msg);
}
public MesNaoExisteException(String msg, WebApplicationException e) {
super(msg, e);
}
}
16 changes: 16 additions & 0 deletions src/main/java/com/stefanini/exception/MesNaoExisteMapper.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.stefanini.exception;

import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;

@Provider
public class MesNaoExisteMapper implements ExceptionMapper<MesNaoExisteException> {

@Override
public Response toResponse(MesNaoExisteException exception) {
return Response.status(Status.BAD_REQUEST).entity(exception.getMessage()).build();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.stefanini.exception;

import javax.ws.rs.WebApplicationException;

public class TextoComMaisDeUmaLetraException extends WebApplicationException {
public TextoComMaisDeUmaLetraException() {
super();
}
public TextoComMaisDeUmaLetraException(String msg) {
super(msg);
}
public TextoComMaisDeUmaLetraException(String msg, WebApplicationException e) {
super(msg, e);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.stefanini.exception;

import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;

@Provider
public class TextoComMaisDeUmaLetraMapper implements ExceptionMapper<TextoComMaisDeUmaLetraException> {

@Override
public Response toResponse(TextoComMaisDeUmaLetraException exception) {
return Response.status(Status.BAD_REQUEST).entity(exception.getMessage()).build();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.stefanini.exception;

import javax.ws.rs.WebApplicationException;

public class UsuarioIdNaoExisteException extends WebApplicationException {
public UsuarioIdNaoExisteException() {
super();
}
public UsuarioIdNaoExisteException(String msg) {
super(msg);
}
public UsuarioIdNaoExisteException(String msg, WebApplicationException e) {
super(msg, e);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.stefanini.exception;

import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;

@Provider
public class UsuarioIdNaoExisteMapper implements ExceptionMapper<UsuarioIdNaoExisteException> {

@Override
public Response toResponse(UsuarioIdNaoExisteException exception) {
return Response.status(Status.BAD_REQUEST).entity(exception.getMessage()).build();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.stefanini.exception;

import javax.ws.rs.WebApplicationException;

public class UsuarioLoginJaExisteException extends WebApplicationException {
public UsuarioLoginJaExisteException() {
super();
}
public UsuarioLoginJaExisteException(String msg) {
super(msg);
}
public UsuarioLoginJaExisteException(String msg, WebApplicationException e) {
super(msg, e);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.stefanini.exception;

import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;

@Provider
public class UsuarioLoginJaExisteMapper implements ExceptionMapper<UsuarioLoginJaExisteException> {

@Override
public Response toResponse(UsuarioLoginJaExisteException exception) {
return Response.status(Status.BAD_REQUEST).entity(exception.getMessage()).build();
}

}
17 changes: 17 additions & 0 deletions src/main/java/com/stefanini/exception/ValidationMapper.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.stefanini.exception;

import javax.validation.ValidationException;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;

@Provider
public class ValidationMapper implements ExceptionMapper<ValidationException> {

@Override
public Response toResponse(ValidationException exception) {
return Response.status(Status.BAD_REQUEST).entity(exception.getMessage()).build();
}

}
Loading