Commit 65e5f88e authored by Felipetto's avatar Felipetto
Browse files

merge

parents 0ff4f4b1 6be8a80b
Showing with 427 additions and 18 deletions
+427 -18
Configurar o resources do BD:
# Propriedades Conexao
conexao.url=jdbc:mysql://localhost/gastronomia
conexao.password=senha
conexao.url=jdbc:mysql://localhost/NOME_DO_SCHEMA_DO_SEU_BD
conexao.password=SENHA_DO_SEU_BD
conexao.user= root
\ No newline at end of file
......@@ -18,5 +18,9 @@
<mapping class="br.com.gastronomia.model.IngredienteAtributoId" />
<mapping class="br.com.gastronomia.model.ReceitaIngrediente" />
<mapping class="br.com.gastronomia.model.ReceitaIngredienteId" />
<mapping class="br.com.gastronomia.model.Imagem" />
<mapping class="br.com.gastronomia.model.ReceitaImagem" />
<mapping class="br.com.gastronomia.model.ReceitaImagemId" />
</session-factory>
</hibernate-configuration>
\ No newline at end of file
......@@ -26,10 +26,13 @@ public class GrupoReceitasBO {
public boolean createGroup(GrupoReceitas grupo) throws ValidationException, NoSuchAlgorithmException {
if (grupo != null) {
grupoReceitasDAO.save(grupo);
return true;
try {
grupoReceitasDAO.save(grupo);
return true;
} catch (Exception e) {
throw new ValidationException("Grupo já existente.");
}
}
throw new ValidationException("invalido");
}
......
package br.com.gastronomia.bo;
import br.com.gastronomia.dao.ImagemDAO;
import br.com.gastronomia.exception.ValidationException;
import br.com.gastronomia.model.Imagem;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
//branch demo
public class ImagemBO {
private ImagemDAO imagemDAO;
public ImagemBO() {
imagemDAO = new ImagemDAO();
}
public void setImagemDAO(ImagemDAO imagemDAO) {
this.imagemDAO = imagemDAO;
}
public boolean createImagem(Imagem imagem) throws ValidationException, NoSuchAlgorithmException {
if (imagem != null) {
imagemDAO.save(imagem);
return true;
}
throw new ValidationException("invalido");
}
public long updateImagem(Imagem imagem) throws ValidationException {
if (imagem != null) {
return imagemDAO.updateImagem(imagem);
}
throw new ValidationException("invalido");
}
//Mantive este m�todo, mas n�o vejo qual a utilidade dele
public Imagem validate(Imagem newAtributo) {
return newAtributo;
}
public HashMap<String, List<Imagem>> listImagens() {
ArrayList<Imagem> imagens = null;
HashMap<String, List<Imagem>> listAtributos = new HashMap<String, List<Imagem>>();
imagens = (ArrayList<Imagem>) imagemDAO.listAllOrder(Imagem.class, "Ordem");
listImagens().put("Imagens", imagens);
return listImagens();
}
public Imagem getImagemById(long id) throws ValidationException {
if (id > 0) {
return imagemDAO.findImagemByID(id);
}
throw new ValidationException("invalido");
}
}
......@@ -38,11 +38,6 @@ public class APIController {
}
String encryptedPassword = null;
try {
encryptedPassword = EncryptUtil.encrypt2("Ages2017");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
usuario = new Usuario();
usuario.setNome("Admin");
usuario.setStatus(true);
......@@ -50,7 +45,7 @@ public class APIController {
usuario.setCpf("11111111111");
usuario.setMatricula("101010");
usuario.setTipo(TipoDeUsuario.ADMIN);
usuario.setSenha(encryptedPassword);
usuario.setSenha("Ages2017");
try {
UsuarioBO usuarioBO = new UsuarioBO();
......
......@@ -60,12 +60,13 @@ public class GrupoController {
grupoReceitasBO.createGroup(grupoReceitas);
} catch (Exception e) {
return Response.ok().status(Response.Status.BAD_REQUEST).build();
return Response.ok().entity(new StandardResponseDTO(true, e.getMessage())).status(Response.Status.BAD_REQUEST).build();
}
return Response.ok().entity(new StandardResponseDTO(true, "Grupo de Receita "+grupoReceitas.getNome()+ " criado com sucesso!")).status(Response.Status.ACCEPTED).build();
}
@DELETE
@Path("/{id}")
@Produces("application/json; charset=UTF-8")
......
package br.com.gastronomia.controllers;
import br.com.gastronomia.bo.ImagemBO;
import br.com.gastronomia.dao.ImagemDAO;
import br.com.gastronomia.dto.StandardResponseDTO;
import br.com.gastronomia.exception.PersistenciaException;
import br.com.gastronomia.exception.ValidationException;
import br.com.gastronomia.model.Imagem;
import br.com.gastronomia.util.EncryptUtil;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.ws.rs.*;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
import java.sql.SQLException;
@Path("imagens")
public class ImagemController {
private ImagemBO imagemBO = new ImagemBO();
private ImagemDAO imagemDAO = new ImagemDAO();
private EncryptUtil encryptUtil = new EncryptUtil();
@Context
private HttpServletRequest request;
private HttpSession session;
@GET
@Path("/")
@Produces("image/jpeg")
//@JWTTokenNeeded
public Response list() throws PersistenciaException, SQLException {
try {
return Response.ok().entity(imagemBO.listImagens()).status(Response.Status.ACCEPTED).build();
} catch (Exception e) {
return Response.ok().status(Response.Status.BAD_REQUEST).build();
}
}
@POST
@Path("/")
@Consumes("application/json; charset=UTF-8")
@Produces("application/json; charset=UTF-8")
//@JWTTokenNeeded
public Response create(Imagem imagem) throws PersistenciaException, ValidationException {
System.out.println("Criando imagem");
try {
imagemBO.createImagem(imagem);
} catch (Exception e) {
return Response.ok().status(Response.Status.BAD_REQUEST).build();
}
return Response.ok().entity(new StandardResponseDTO(true, "Imagem criada com sucesso!")).status(Response.Status.ACCEPTED).build();
}
@DELETE
@Path("/{id}")
@Produces("application/json; charset=UTF-8")
//@JWTTokenNeeded
public Response remove(@PathParam("id") Long id) throws PersistenciaException, ValidationException {
try {
return Response.ok().entity(new StandardResponseDTO(false, "Não implementado no backend!")).status(Response.Status.ACCEPTED).build();
} catch (Exception e) {
return Response.ok().status(Response.Status.BAD_REQUEST).build();
}
//return Response.ok().entity(new StandardResponseDTO(true, "Atributo desativado com sucesso!")).status(Response.Status.ACCEPTED).build();
}
@GET
@Path("/{id}")
@Produces("application/json; charset=UTF-8")
//@JWTTokenNeeded
public Response searchByID(@PathParam("id") Long id) throws PersistenciaException, ValidationException {
try {
return Response.ok().entity(imagemBO.getImagemById(id)).status(Response.Status.ACCEPTED).build();
} catch (Exception e) {
return Response.ok().status(Response.Status.BAD_REQUEST).build();
}
}
@PUT
@Path("/update")
@Consumes("application/json; charset=UTF-8")
@Produces("application/json; charset=UTF-8")
//@JWTTokenNeeded
public Response update(Imagem imagem) throws PersistenciaException, ValidationException {
try {
imagemBO.updateImagem(imagem);
} catch (Exception e) {
e.printStackTrace();
return Response.ok().status(Response.Status.BAD_REQUEST).build();
}
return Response.ok().entity(new StandardResponseDTO(true, "Imagem atualizada com sucesso!")).status(Response.Status.ACCEPTED).build();
}
}
package br.com.gastronomia.dao;
import java.util.List;
import br.com.gastronomia.model.Imagem;
import br.com.gastronomia.exception.ValidationException;
import org.hibernate.Session;
import br.com.gastronomia.db.GenericHibernateDAO;
import br.com.gastronomia.db.HibernateUtil;
import br.com.gastronomia.model.Atributo;
public class ImagemDAO extends GenericHibernateDAO<Imagem> {
// list
public long removeImagem(Imagem imagem) throws ValidationException {
return remove(imagem);
}
public Imagem findImagemByID(long id) throws ValidationException {
return (Imagem) findId(id, Imagem.class);
}
public long updateImagem(Imagem imagem) throws ValidationException {
return merge(imagem);
}
}
package br.com.gastronomia.model;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import javax.persistence.*;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.util.Arrays;
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@Table(name= "Imagem")
@JsonIgnoreProperties(ignoreUnknown = true)
public class Imagem implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "Id")
private long id;
@NotEmpty
@Column(name = "Ext")
private String ext;
@NotEmpty
@Lob
@Column(name = "Base64")
private byte[] base64;
/**
* Construtor vazio.
*
**/
public Imagem() {
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getExt() {
return ext;
}
public void setExt(String ext) {
this.ext = ext;
}
public byte[] getBase64() {
return base64;
}
public void setBase64(byte[] base64) {
this.base64 = base64;
}
@Override
public String toString() {
return "Imagem{" +
"id=" + id +
", ext='" + ext + '\'' +
", base64=" + Arrays.toString(base64) +
'}';
}
}
\ No newline at end of file
......@@ -8,6 +8,7 @@ import javax.persistence.*;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.awt.*;
import java.io.Serializable;
import java.time.ZonedDateTime;
import java.util.ArrayList;
......@@ -65,8 +66,9 @@ public class Receita implements Serializable {
@Column(name = "Peso", nullable = false)
private double peso;
@Column(name = "Imagem", nullable = false)
private String imagem;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "Imagem", nullable = false, foreignKey=@ForeignKey(name = "FK_RECEITA_IMAGEM"))
private Imagem imagem;
@Column(name = "Dificuldade", nullable = true)
@Max(5)
......@@ -197,11 +199,11 @@ public class Receita implements Serializable {
this.grupoReceita = grupoReceita;
}
public String getImagem() {
public Imagem getImagem() {
return imagem;
}
public void setImagem(String imagem) {
public void setImagem(Imagem imagem) {
this.imagem = imagem;
}
......
package br.com.gastronomia.model;
import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import javax.persistence.*;
import java.io.Serializable;
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@Table(name= "ReceitaImagem")
@IdClass(ReceitaImagemId.class)
@JsonIgnoreProperties(ignoreUnknown = true)
public class ReceitaImagem implements Serializable {
@Id
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "IdImagem")
private Imagem imagem;
@Id
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "IdReceita")
@JsonBackReference
private Receita receita;
public ReceitaImagem() {
}
public Imagem getImagem() {
return imagem;
}
public void setImagem(Imagem imagem) {
this.imagem = imagem;
}
public Receita getReceita() {
return receita;
}
public void setReceita(Receita receita) {
this.receita = receita;
}
@Override
public String toString() {
return "ReceitaImagem {" +
"imagem='" + imagem +
", receita='" + receita +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ReceitaImagem that = (ReceitaImagem) o;
if (imagem != null ? !imagem.equals(that.imagem) : that.imagem != null) return false;
return receita != null ? receita.equals(that.receita) : that.receita == null;
}
@Override
public int hashCode() {
int result = imagem != null ? imagem.hashCode() : 0;
result = 31 * result + (receita != null ? receita.hashCode() : 0);
return result;
}
}
package br.com.gastronomia.model;
import java.io.Serializable;
public class ReceitaImagemId implements Serializable {
protected Imagem imagem;
protected Receita receita;
public ReceitaImagemId() {
}
public ReceitaImagemId(Imagem imagem, Receita receita) {
this.imagem = imagem;
this.receita = receita;
}
public Imagem getImagem() {
return imagem;
}
public void setImagem(Imagem imagem) {
this.imagem = imagem;
}
public Receita getReceita() {
return receita;
}
public void setAtributo(Receita receita) {
this.receita = receita;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ReceitaImagemId that = (ReceitaImagemId) o;
if (imagem != null ? !imagem.equals(that.imagem) : that.imagem != null) return false;
return receita != null ? receita.equals(that.receita) : that.receita == null;
}
@Override
public int hashCode() {
int result = imagem.hashCode();
result = 31 * result + receita.hashCode();
return result;
}
}
\ No newline at end of file
......@@ -7,7 +7,7 @@ package br.com.gastronomia.util;
*/
public class Constantes {
//br.ages.crud.util.config_bd ambiente
public static final String AMBIENTE_PROPERTIES = "ambiente";
public static final String AMBIENTE_PROPERTIES = "config"; //ambiente
public static final String CONEXAO_BD_DRIVE = "conexao.driver.mysql";
public static final String CONEXAO_BD_URL = "conexao.url";
public static final String CONEXAO_BD_USER = "conexao.user";
......@@ -23,6 +23,9 @@ public class Constantes {
public static final String ADMINISTRATOR_ROLE = "administrator";
public static final String PROFESSOR_ROLE = "professor";
public static final String USER_ROLE = "usurario";
//Imagens
public static final String PATH_IMAGE = "path.image";
}
......@@ -18,5 +18,9 @@
<mapping class="br.com.gastronomia.model.IngredienteAtributoId" />
<mapping class="br.com.gastronomia.model.ReceitaIngrediente" />
<mapping class="br.com.gastronomia.model.ReceitaIngredienteId" />
<mapping class="br.com.gastronomia.model.Imagem" />
<mapping class="br.com.gastronomia.model.ReceitaImagem" />
<mapping class="br.com.gastronomia.model.ReceitaImagemId" />
</session-factory>
</hibernate-configuration>
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment