Skip to content

Instantly share code, notes, and snippets.

@lukaspili
Created October 19, 2011 08:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lukaspili/1297718 to your computer and use it in GitHub Desktop.
Save lukaspili/1297718 to your computer and use it in GitHub Desktop.
public static void save(User user, @Required String afterSubmit) throws Exception {
EnhancedValidator validator = validator();
// ici je valide une entité au niveau des infos requises, et automatiquement tout est géré dans le validator
// les erreurs sont ajoutées les scopes nécessaires (request, flash) suivant la requete pour ensuite faire une
// simple redirection et quand même avoir les erreurs qui sont gérées avec les helpers de play (helper field, etc).
// le seul problème c'est qu'il faut spécifier l'attribut de l'objet en dur (String).
// je me suis amusé avec les classes du core qui permettent de récupérer le nom des variables locales
// car play compile avec les bonnes options mais j'ai l'impression que c'est très limité sur attribus de classe
// bref en tout cas les règles de format des données sont définies dans le modele (un champs doit etre de type
// email, ne doit pas dépasser une taille, etc)
// mais les attributs requis peuvent varier suivant les actions et le process, donc je trouve ca bcp
// plus propre que les champs requis ne soient pas liés au modèle mais dépendent du contexte.
if (validator.validate(user).require("idBooster", "profile").hasErrors()) {
create();
}
}
public class UserService {
public User save(User user) throws CoreException {
// la validation doit être faite pour moi dans le controller et doit gérer des entités partielles
// cf fichier suivant
//....
user.save();
User.em().detach(user);
return user;
}
public User getById(long id) {
User user = User.findById(id);
User.em().detach(user);
return user;
}
public List<User> getUsers() {
List<User> users = new ArrayList<User>();
for (User user : User.<User>findAll()) {
User.em().detach(user);
users.add(user);
}
return users;
}
public User getFromLogin(String idBooster, String password) {
User user = User.find(...).first();
//....
User.em().detach(user);
return user;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment