branch feature/spgeed updated (9b7a621c -> 75225528)
This is an automated email from the git hooks/post-receive script. New change to branch feature/spgeed in repository pollen. See https://gitlab.nuiton.org/chorem/pollen.git from 9b7a621c Creating PollenSpgeedUserDAO + @Path -> Spgeed new 75225528 Right request to postgre to get PollenUser + jsondeserialize to pass PollenUserImpl to PollenUser The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 7522552879582fa3d375f00dc5aacff4808a8fd2 Author: HERBRETEAU Killian <Killian_H@localhost.localdomain> Date: Wed Jul 24 09:22:29 2019 +0200 Right request to postgre to get PollenUser + jsondeserialize to pass PollenUserImpl to PollenUser Summary of changes: .../pollen/persistence/PollenUserSpgeedDao.java | 10 +- .../pollen/persistence/entity/PollenUser.java | 139 +++++++++++++++++++++ .../persistence/entity/PollenUserEmailAddress.java | 27 ++++ .../pollen/persistence/entity/PollenUserImpl.java | 13 ++ .../chorem/pollen/rest/api/v1/TransverseApi.java | 8 ++ .../pollen/services/service/PollenUserService.java | 12 +- .../pollen/services/service/TransverseService.java | 11 ++ .../service/security/SpgeedDummyService.java | 31 ++++- 8 files changed, 236 insertions(+), 15 deletions(-) create mode 100644 pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUser.java create mode 100644 pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUserEmailAddress.java -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/spgeed in repository pollen. See https://gitlab.nuiton.org/chorem/pollen.git commit 7522552879582fa3d375f00dc5aacff4808a8fd2 Author: HERBRETEAU Killian <Killian_H@localhost.localdomain> Date: Wed Jul 24 09:22:29 2019 +0200 Right request to postgre to get PollenUser + jsondeserialize to pass PollenUserImpl to PollenUser --- .../pollen/persistence/PollenUserSpgeedDao.java | 10 +- .../pollen/persistence/entity/PollenUser.java | 139 +++++++++++++++++++++ .../persistence/entity/PollenUserEmailAddress.java | 27 ++++ .../pollen/persistence/entity/PollenUserImpl.java | 13 ++ .../chorem/pollen/rest/api/v1/TransverseApi.java | 8 ++ .../pollen/services/service/PollenUserService.java | 12 +- .../pollen/services/service/TransverseService.java | 11 ++ .../service/security/SpgeedDummyService.java | 31 ++++- 8 files changed, 236 insertions(+), 15 deletions(-) diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/PollenUserSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/PollenUserSpgeedDao.java index 691de8d8..3caac703 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/PollenUserSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/PollenUserSpgeedDao.java @@ -1,12 +1,16 @@ package org.chorem.pollen.persistence; -import org.chorem.pollen.persistence.entity.PollenUserImpl; +import org.chorem.pollen.persistence.entity.PollenUser; +import org.chorem.pollen.persistence.entity.PollenUserEmailAddress; import org.nuiton.spgeed.annotations.Select; public interface PollenUserSpgeedDao { - @Select(sql = "SELECT json_agg(pollenuser.*) FROM PollenUser JOIN pollenuseremailaddress ON (PollenUser.topiaId = pollenuseremailaddress.pollenuser)") - PollenUserImpl getUser(); + @Select(sql = "with pollenu as (select u.*, (select json_agg(m.*) as pollenuseremailaddress from pollenuseremailaddress m) from PollenUser u) select json_agg(pu.*) from pollenu pu") + PollenUser getUser(); + + @Select(sql = "select json_agg(m.*) as pollenuseremailaddress from pollenuseremailaddress m) from PollenUser u") + PollenUserEmailAddress getUserEmail(); @Select(sql = "SELECT count(*) FROM PollenUser") int getUserCount(); diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUser.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUser.java new file mode 100644 index 00000000..901c2b32 --- /dev/null +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUser.java @@ -0,0 +1,139 @@ +package org.chorem.pollen.persistence.entity; + +import java.util.Collection; +import java.util.Date; +import javax.annotation.Generated; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import org.nuiton.topia.persistence.TopiaEntity; + +@JsonDeserialize(as = PollenUserImpl.class) +public interface PollenUser extends TopiaEntity { + + String PROPERTY_NAME = "name"; + + String PROPERTY_ADMINISTRATOR = "administrator"; + + String PROPERTY_LANGUAGE = "language"; + + String PROPERTY_PASSWORD = "password"; + + String PROPERTY_SALT = "salt"; + + String PROPERTY_BANNED = "banned"; + + String PROPERTY_GTU_VALIDATION_DATE = "gtuValidationDate"; + + String PROPERTY_PREMIUM_TO = "premiumTo"; + + String PROPERTY_CAN_CREATE_POLL = "canCreatePoll"; + + String PROPERTY_USER_CREDENTIAL = "userCredential"; + + String PROPERTY_AVATAR = "avatar"; + + String PROPERTY_DEFAULT_EMAIL_ADDRESS = "defaultEmailAddress"; + + String PROPERTY_EMAIL_ADDRESSES = "emailAddresses"; + + void setName(String name); + + String getName(); + + void setAdministrator(boolean administrator); + + boolean isAdministrator(); + + void setLanguage(String language); + + String getLanguage(); + + void setPassword(String password); + + String getPassword(); + + void setSalt(String salt); + + String getSalt(); + + void setBanned(boolean banned); + + boolean isBanned(); + + void setGtuValidationDate(Date gtuValidationDate); + + Date getGtuValidationDate(); + + void setPremiumTo(Date premiumTo); + + Date getPremiumTo(); + + void setCanCreatePoll(boolean canCreatePoll); + + boolean isCanCreatePoll(); + + void addUserCredential(UserCredential userCredential); + + void addAllUserCredential(Iterable<UserCredential> userCredential); + + void setUserCredential(Collection<UserCredential> userCredential); + + void removeUserCredential(UserCredential userCredential); + + void clearUserCredential(); + + Collection<UserCredential> getUserCredential(); + + UserCredential getUserCredentialByTopiaId(String topiaId); + + Collection<String> getUserCredentialTopiaIds(); + + int sizeUserCredential(); + + boolean isUserCredentialEmpty(); + + boolean isUserCredentialNotEmpty(); + + boolean containsUserCredential(UserCredential userCredential); + + void setAvatar(PollenResource avatar); + + PollenResource getAvatar(); + + void setDefaultEmailAddress(PollenUserEmailAddress defaultEmailAddress); + //Hack cause spgeed does not manage camel case + void setDefaultemailaddress(PollenUserEmailAddress defaultEmailAddress); + + PollenUserEmailAddress getDefaultEmailAddress(); + + void addEmailAddresses(PollenUserEmailAddress emailAddresses); + + void addAllEmailAddresses(Iterable<PollenUserEmailAddress> emailAddresses); + + void setEmailAddresses(Collection<PollenUserEmailAddress> emailAddresses); + + //Hack cause spgeed does not manage camel case + void setEmailaddresses(Collection<PollenUserEmailAddress> emailAddresses); + + void removeEmailAddresses(PollenUserEmailAddress emailAddresses); + + void clearEmailAddresses(); + + Collection<PollenUserEmailAddress> getEmailAddresses(); + + PollenUserEmailAddress getEmailAddressesByTopiaId(String topiaId); + + Collection<String> getEmailAddressesTopiaIds(); + + int sizeEmailAddresses(); + + boolean isEmailAddressesEmpty(); + + boolean isEmailAddressesNotEmpty(); + + boolean containsEmailAddresses(PollenUserEmailAddress emailAddresses); + + boolean isEmailValidated(); + +} //PollenUser diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUserEmailAddress.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUserEmailAddress.java new file mode 100644 index 00000000..7616696f --- /dev/null +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUserEmailAddress.java @@ -0,0 +1,27 @@ +package org.chorem.pollen.persistence.entity; + +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import org.nuiton.topia.persistence.TopiaEntity; + +@JsonDeserialize(as = PollenUserEmailAddressImpl.class) +public interface PollenUserEmailAddress extends TopiaEntity { + + String PROPERTY_EMAIL_ADDRESS = "emailAddress"; + + String PROPERTY_PGP_PUBLIC_KEY = "pgpPublicKey"; + + String PROPERTY_VALIDATED = "validated"; + + void setEmailAddress(String emailAddress); + + String getEmailAddress(); + + void setPgpPublicKey(String pgpPublicKey); + + String getPgpPublicKey(); + + void setValidated(boolean validated); + + boolean isValidated(); + +} //PollenUserEmailAddress diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUserImpl.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUserImpl.java index 2ae14757..6654c24b 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUserImpl.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUserImpl.java @@ -21,13 +21,26 @@ package org.chorem.pollen.persistence.entity; * #L% */ +import java.util.Collection; + /** * @author Kevin Morin (Code Lutin) */ + public class PollenUserImpl extends PollenUserAbstract { @Override public boolean isEmailValidated() { return getDefaultEmailAddress() == null || getDefaultEmailAddress().isValidated(); } + + @Override + public void setDefaultemailaddress(PollenUserEmailAddress defaultEmailAddress) { + this.setDefaultEmailAddress(defaultEmailAddress); + } + + @Override + public void setEmailaddresses(Collection<PollenUserEmailAddress> emailAddresses) { + this.setEmailAddresses(emailAddresses); + } } diff --git a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/TransverseApi.java b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/TransverseApi.java index 5682a86c..64fa6be0 100644 --- a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/TransverseApi.java +++ b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/TransverseApi.java @@ -24,6 +24,7 @@ package org.chorem.pollen.rest.api.v1; import org.chorem.pollen.services.bean.ConfigurationBean; import org.chorem.pollen.services.bean.PollenStatus; import org.chorem.pollen.services.bean.PollenUserBean; +import org.chorem.pollen.services.bean.PollenUserEmailAddressBean; import org.chorem.pollen.services.service.TransverseService; import javax.ws.rs.Consumes; @@ -65,5 +66,12 @@ public class TransverseApi { } + @Path("/email") + @GET + public PollenUserEmailAddressBean getEmail(@Context TransverseService transverseService) { + + return transverseService.getEmail(); + } + } diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java index 9b060618..de3fbd36 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java @@ -21,19 +21,12 @@ package org.chorem.pollen.services.service; * #L% */ +import com.google.common.base.Preconditions; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.chorem.pollen.persistence.entity.Comment; -import org.chorem.pollen.persistence.entity.PollenPrincipal; -import org.chorem.pollen.persistence.entity.PollenResource; -import org.chorem.pollen.persistence.entity.PollenUser; -import org.chorem.pollen.persistence.entity.PollenUserEmailAddress; -import org.chorem.pollen.persistence.entity.ResourceType; -import org.chorem.pollen.persistence.entity.UserCredential; -import org.chorem.pollen.persistence.entity.Vote; -import org.chorem.pollen.persistence.entity.VoteTopiaDao; +import org.chorem.pollen.persistence.entity.*; import org.chorem.pollen.services.PollenService; import org.chorem.pollen.services.bean.PaginationParameterBean; import org.chorem.pollen.services.bean.PaginationResultBean; @@ -92,6 +85,7 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer bean.setGtuValidated(getGtuService().isGtuValidated(entity)); bean.setPremium(isPremium(entity)); + Preconditions.checkArgument(entity.sizeEmailAddresses() == 1); bean.setEmailAddresses(entity.getEmailAddresses().stream() .map(this::toPollenUserEmailAddressBean) .collect(Collectors.toList())); diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/TransverseService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/TransverseService.java index f78594f6..7b4de25e 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/TransverseService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/TransverseService.java @@ -25,10 +25,12 @@ import com.google.common.collect.Lists; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.chorem.pollen.persistence.entity.PollenUser; +import org.chorem.pollen.persistence.entity.PollenUserEmailAddress; import org.chorem.pollen.services.UnitHuman; import org.chorem.pollen.services.bean.ConfigurationBean; import org.chorem.pollen.services.bean.PollenStatus; import org.chorem.pollen.services.bean.PollenUserBean; +import org.chorem.pollen.services.bean.PollenUserEmailAddressBean; import org.chorem.pollen.services.service.security.SpgeedDummyService; import java.lang.management.ManagementFactory; @@ -59,6 +61,15 @@ public class TransverseService extends PollenServiceSupport { return pollenUserService.toPollenUserBean(user); } + public PollenUserEmailAddressBean getEmail() { + + SpgeedDummyService spgeedDummyService = new SpgeedDummyService(); + PollenUserEmailAddress email = spgeedDummyService.getPollenUserEmailaddress(); + PollenUserService pollenUserService = newService(PollenUserService.class); + + return pollenUserService.toPollenUserEmailAddressBean(email); + } + public PollenStatus getStatus() { long statusStart = System.currentTimeMillis(); List<String> errors = Lists.newArrayList(); diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/security/SpgeedDummyService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/security/SpgeedDummyService.java index f4c43df5..d1e3a92d 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/security/SpgeedDummyService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/security/SpgeedDummyService.java @@ -2,10 +2,10 @@ package org.chorem.pollen.services.service.security; import org.chorem.pollen.persistence.PollenSpgeedApplicationContext; import org.chorem.pollen.persistence.PollenUserSpgeedDao; -import org.chorem.pollen.persistence.entity.PollenUserImpl; +import org.chorem.pollen.persistence.entity.PollenUser; +import org.chorem.pollen.persistence.entity.PollenUserEmailAddress; import org.chorem.pollen.services.config.PollenServicesConfig; import org.nuiton.spgeed.SqlSession; -import org.chorem.pollen.persistence.entity.PollenUser; import javax.sql.DataSource; import java.sql.SQLException; @@ -30,7 +30,32 @@ public class SpgeedDummyService { PollenUserSpgeedDao dao = session.getDao(PollenUserSpgeedDao.class); - return dao.getUser(); + return (dao.getUser()); + } catch(SQLException e) { + } + return (null); + + } + + public PollenUserEmailAddress getPollenUserEmailaddress() { + + PollenSpgeedApplicationContext pollenSpgeedApplicationContext = new PollenSpgeedApplicationContext(); + + PollenServicesConfig pollenServicesConfig = new PollenServicesConfig("pollen-rest-api.properties"); + + String dburl = pollenServicesConfig.getDataSourceUrl(); + String dbpassword = pollenServicesConfig.getDataSourcePassword(); + String dbuser = pollenServicesConfig.getDataSourceUser(); + + pollenSpgeedApplicationContext.setDataSource(dburl, dbuser, dbpassword); + + DataSource ds = pollenSpgeedApplicationContext.getDataSource(); + + try (SqlSession session = new SqlSession(ds)) { + + PollenUserSpgeedDao dao = session.getDao(PollenUserSpgeedDao.class); + + return (dao.getUserEmail()); } catch(SQLException e) { } return (null); -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
participants (1)
-
chorem.org scm