diff --git a/account/src/main/java/de/muehlencord/shared/account/business/AbstractController.java b/account/src/main/java/de/muehlencord/shared/account/business/AbstractController.java index de871ff..d7576f7 100644 --- a/account/src/main/java/de/muehlencord/shared/account/business/AbstractController.java +++ b/account/src/main/java/de/muehlencord/shared/account/business/AbstractController.java @@ -50,7 +50,7 @@ public abstract class AbstractController { protected EntityManager em; @Inject - Account account; + protected Account account; private final Class entityClass; @@ -58,6 +58,15 @@ public abstract class AbstractController { this.entityClass = clazz; } + public void applyUpdateableChanges(Updateable updateable, boolean onCreate) { + if (onCreate) { + updateable.setCreatedBy(account.getUsername()); + updateable.setCreatedOn(new Date()); + } + updateable.setLastUpdatedBy(account.getUsername()); + updateable.setLastUpdatedOn(new Date()); + } + public T attach(T entity) { return em.merge(entity); } @@ -68,11 +77,8 @@ public abstract class AbstractController { public void create(T entity) { if (Updateable.class.isAssignableFrom(entity.getClass())) { Updateable updateable = (Updateable) entity; - updateable.setCreatedBy(account.getUsername()); - updateable.setCreatedOn(new Date()); - updateable.setLastUpdatedBy(account.getUsername()); - updateable.setLastUpdatedOn(new Date()); - } + applyUpdateableChanges(updateable, true); + } em.persist(entity); } @@ -82,9 +88,8 @@ public abstract class AbstractController { public T update(T entity) { if (Updateable.class.isAssignableFrom(entity.getClass())) { Updateable updateable = (Updateable) entity; - updateable.setLastUpdatedBy(account.getUsername()); - updateable.setLastUpdatedOn(new Date()); - } + applyUpdateableChanges(updateable, false); + } return em.merge(entity); } @@ -144,6 +149,5 @@ public abstract class AbstractController { // of.getDeclaredId(entityClass).getJavaMember(). return of.getId(of.getIdType().getJavaType()); } - }