Skip to content

Commit

Permalink
add OneToMany functionality for list
Browse files Browse the repository at this point in the history
  • Loading branch information
cajuuh committed Oct 26, 2015
1 parent 8ad9ac1 commit 918eb16
Show file tree
Hide file tree
Showing 6 changed files with 171 additions and 125 deletions.
40 changes: 29 additions & 11 deletions app/controllers/Application.java
Original file line number Diff line number Diff line change
@@ -1,49 +1,67 @@
package controllers;

import models.Usuario;
import models.repository.UsuarioRepository;
import models.User;
import models.repository.UserRepository;
import play.data.Form;
import play.db.jpa.Transactional;
import play.mvc.Controller;
import play.mvc.Http;
import play.mvc.Result;
import views.html.index;

import java.io.File;
import java.util.List;

import static play.libs.Json.toJson;

public class Application extends Controller
{
private static Form<Usuario> usuarioForm = Form.form(Usuario.class);
private static Form<User> userForm = Form.form(User.class);

private static UsuarioRepository usuarioRepository = UsuarioRepository.getInstance();
private static UserRepository userRepository = UserRepository.getInstance();

public Result index()
{
return ok(index.render("blabla"));
}

@Transactional
public Result newUsuario()
public Result newUser()
{
Form<Usuario> filledForm = usuarioForm.bindFromRequest();
if(filledForm.hasErrors())
Form<User> filledForm = userForm.bindFromRequest();

if (filledForm.hasErrors())
{
return badRequest(views.html.index.render("application"));
}
else
{
Usuario novoUsuario = filledForm.get();
usuarioRepository.persist(novoUsuario);
usuarioRepository.flush();
User newUser = filledForm.get();
userRepository.persist(newUser);
userRepository.flush();
return ok(index.render("http://www.google.com"));
}
}

@Transactional
public Result upload(){
Http.MultipartFormData body = request().body().asMultipartFormData();
Http.MultipartFormData.FilePart picture = body.getFile("picture");
if (picture != null) {
String fileName = picture.getFilename();
String contentType = picture.getContentType();
File file = picture.getFile();
return ok("File uploaded");
} else {
flash("error", "Missing file");
return badRequest(views.html.index.render("application"));
}
}

@Transactional
public Result getUsuarios()
{
List<Usuario> users = usuarioRepository.findAll();
List<User> users = userRepository.findAll();
return ok((toJson(users)));
}
}
Expand Down
129 changes: 129 additions & 0 deletions app/models/User.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
package models;

import com.google.common.base.Objects;

import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;

/**
* Created by Pedro on 25/08/2015.
*/
@Entity
@Table(name = "TB_USER")
public class User
{
@Id
@GeneratedValue
private Long id;

//user name
private String name;

//user phone
private String phone;

//user email
private String email;

@OneToMany(targetEntity=User.class, mappedBy="id", fetch=FetchType.EAGER)
private List<String> instruments;

public User()
{
this.instruments = new ArrayList<String>();
}

public User(String name, String phone, String email)
{
this();
this.name = name;
this.phone = phone;
this.email = email;
}


public String getinstruments(String nameDoInstrumento)
{
for (String instrumento : instruments)
{
if(instrumento.equals(nameDoInstrumento))
{
return instrumento;
}
}
return "insturmento nao encontrado";
}

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

public void setname(String name)
{
this.name = name;
}

public void setPhone(String phone)
{
this.phone = phone;
}

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

public void setInstruments(List<String> instruments)
{
this.instruments = instruments;
}

public Long getId()
{
return id;
}

public String getname()
{
return name;
}

public String getPhone()
{
return phone;
}

public String getEmail()
{
return email;
}

public List<String> getInstruments()
{
return instruments;
}

@Override
public boolean equals(Object obj)
{
if(obj == null)
{
return false;
}
if(!(obj instanceof User))
{
return false;
}
User otherUser = (User) obj;
return Objects.equal(otherUser.getname(), this.getname());
}

@Override
public int hashCode()
{
return Objects.hashCode(this.name);
}

}
98 changes: 0 additions & 98 deletions app/models/Usuario.java

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package models.repository;

import models.Usuario;
import models.User;
import org.springframework.stereotype.Repository;

import javax.persistence.EntityManager;
Expand All @@ -10,23 +10,23 @@
* Created by Pedro on 25/08/2015.
*/
@Repository
public class UsuarioRepository extends GenericRepositoryImpl<Usuario>
public class UserRepository extends GenericRepositoryImpl<User>
{
@PersistenceContext
private EntityManager manager;

private static UsuarioRepository instance;
private static UserRepository instance;

private UsuarioRepository()
private UserRepository()
{
super(Usuario.class);
super(User.class);
}

public static UsuarioRepository getInstance()
public static UserRepository getInstance()
{
if (instance == null)
{
instance = new UsuarioRepository();
instance = new UserRepository();
}
return instance;
}
Expand Down
12 changes: 4 additions & 8 deletions app/views/index.scala.html
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
@(message: String)

@usuarioForm = {
<form action = @routes.Application.newUsuario(),'enctype -> "multipart/form-data" method="post" id="test-form" class="white-popup-block mfp-hide">
<form method="post" id="test-form" class="white-popup-block mfp-hide" action="@routes.Application.newUser()">
<h1>Form</h1>
<fieldset style="border:0;">
<p>Forneça suas informações:</p>
<ol>
<li>
<li action = @routes.Application.upload(),'enctype -> "multipart/form-data">
<input type="file" name="picture">
<p>
<input type="submit">
</p>
</li>
<li>
<label for="nome">Nome: </label>
<input id="inputNome" name="nome" placeholder="Seu Nome" class="form-control" required="required" type="text">
<input id="inputNome" name="name" placeholder="Seu Nome" class="form-control" required="required" type="text">
</li>
<li>
<label for="email">Email: </label>
Expand All @@ -26,7 +26,7 @@ <h1>Form</h1>
</li>
<li>
<label for="instrumentos">Instrumentos: </label>
<div data-tags-input-name="tag" id="tagBox" class="form-control" name="instrumentos"></div>
<div data-tags-input-name="instruments" id="tagBox" class="form-control" name="instrumentos"></div>
<p>insira aqui os instrumentos que você toca como tags.</p>
</li>
<li>
Expand Down Expand Up @@ -260,10 +260,6 @@ <h3>WE'RE GOING MOBILE!</h3>
</div>
@usuarioForm

<div>
@routes.Application.getUsuarios()
</div>

<div id="f">
<div class="container">
<div class="row">
Expand Down
3 changes: 2 additions & 1 deletion conf/routes
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@

# Home page
GET / controllers.Application.index()
POST /usuario controllers.Application.newUsuario()
POST /usuario controllers.Application.newUser()
POST /upload controllers.Application.upload()
GET /usuarios controllers.Application.getUsuarios()

# Map static resources from the /public folder to the /assets URL path
Expand Down

0 comments on commit 918eb16

Please sign in to comment.