branch feature/spgeed updated (02a161e4 -> 777e1059)
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 02a161e4 start changing service from topia to spgeed new 9e0c1612 Dao update Pollen user service new 69a1844a adding mapping for dao new bdc1fe73 removing old @Path new 2c3b7b25 passing topia from H2 to PostgreSQL new 24cac1f2 adding embedded PostgreSQL for Spgeed and Topia new 71e8819d adding generic get Spgeed DAO new 777e1059 patching old Spgeed Test for Chunk The 7 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 777e10593dc2e84b1fa288f65c80fd3e7e381836 Author: Killian <killian.herbreteau@epitech.eu> Date: Fri Oct 25 12:05:45 2019 +0200 patching old Spgeed Test for Chunk commit 71e8819dfeb162c222a2869988c82e53f209e2a2 Author: Killian <killian.herbreteau@epitech.eu> Date: Fri Oct 25 12:05:03 2019 +0200 adding generic get Spgeed DAO commit 24cac1f2654b39bea7c03d0f346d7e2cf6e8ebc6 Author: Killian <killian.herbreteau@epitech.eu> Date: Fri Oct 25 12:03:23 2019 +0200 adding embedded PostgreSQL for Spgeed and Topia commit 2c3b7b25a3cd076d830800eb6c67f406206c091e Author: Killian <killian.herbreteau@epitech.eu> Date: Fri Oct 25 12:00:06 2019 +0200 passing topia from H2 to PostgreSQL commit bdc1fe7308a271c0f2d0fe055ad8447373339481 Author: Killian <killian.herbreteau@epitech.eu> Date: Fri Oct 25 11:57:32 2019 +0200 removing old @Path commit 69a1844a6a293caf521ff2cecfa7d79f1b06ed4f Author: Killian <killian.herbreteau@epitech.eu> Date: Fri Oct 25 11:57:12 2019 +0200 adding mapping for dao commit 9e0c1612ba3a3a042f09331a5d6a42092f605416 Author: Killian <killian.herbreteau@epitech.eu> Date: Fri Oct 25 11:56:37 2019 +0200 Dao update Pollen user service Summary of changes: .../Dao/PollenChildFavoriteListSpgeedDao.java | 2 +- .../persistence/Dao/PollenChoiceSpgeedDao.java | 3 +- .../persistence/Dao/PollenCommentSpgeedDao.java | 2 +- .../Dao/PollenFavoriteListMemberSpgeedDao.java | 2 +- .../Dao/PollenFavoriteListSpgeedDao.java | 2 +- .../persistence/Dao/PollenPollSpgeedDao.java | 178 ++++++++++++++------- .../persistence/Dao/PollenPrincipalSpgeedDao.java | 46 +++--- .../persistence/Dao/PollenResourceSpgeedDao.java | 32 ++++ .../persistence/Dao/PollenRessourceSpgeedDao.java | 10 -- .../Dao/PollenSessionTokenSpgeedDao.java | 2 +- .../pollen/persistence/Dao/PollenSpgeedDao.java | 10 ++ .../Dao/PollenUserCredentialSpgeedDao.java | 39 +++++ .../Dao/PollenUserEmailAddressSpgeedDao.java | 75 ++++++++- .../persistence/Dao/PollenUserSpgeedDao.java | 113 ++++++++----- .../persistence/Dao/PollenVoteSpgeedDao.java | 2 +- .../persistence/Dao/PollenVoterListSpgeedDao.java | 2 +- .../chorem/pollen/persistence/PollenMapper.java | 30 ++-- .../V3_3_0_2__alter_default_TopiaCreateDate.sql | 51 ++++++ .../chorem/pollen/rest/api/v1/TransverseApi.java | 17 -- .../src/main/resources/pollen-rest-api.properties | 10 +- .../test/resources/pollen-rest-api-test.properties | 10 +- pollen-services/pom.xml | 10 ++ .../services/service/PollenServiceSupport.java | 90 ++++++++++- .../pollen/services/service/TransverseService.java | 18 --- .../service/security/SpgeedDummyService.java | 71 -------- .../test/FakePollenApplicationContext.java | 36 ++--- .../org/chorem/pollen/services/SpgeedTest.java | 11 +- 27 files changed, 573 insertions(+), 301 deletions(-) create mode 100644 pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenResourceSpgeedDao.java delete mode 100644 pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenRessourceSpgeedDao.java create mode 100644 pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenUserCredentialSpgeedDao.java create mode 100644 pollen-persistence/src/main/resources/db/migration/postgresql/V3_3_0_2__alter_default_TopiaCreateDate.sql -- 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 9e0c1612ba3a3a042f09331a5d6a42092f605416 Author: Killian <killian.herbreteau@epitech.eu> Date: Fri Oct 25 11:56:37 2019 +0200 Dao update Pollen user service --- .../Dao/PollenChildFavoriteListSpgeedDao.java | 2 +- .../persistence/Dao/PollenChoiceSpgeedDao.java | 3 +- .../persistence/Dao/PollenCommentSpgeedDao.java | 2 +- .../Dao/PollenFavoriteListMemberSpgeedDao.java | 2 +- .../Dao/PollenFavoriteListSpgeedDao.java | 2 +- .../persistence/Dao/PollenPollSpgeedDao.java | 178 ++++++++++++++------- .../persistence/Dao/PollenPrincipalSpgeedDao.java | 46 +++--- .../persistence/Dao/PollenResourceSpgeedDao.java | 32 ++++ .../persistence/Dao/PollenRessourceSpgeedDao.java | 10 -- .../Dao/PollenSessionTokenSpgeedDao.java | 2 +- .../pollen/persistence/Dao/PollenSpgeedDao.java | 10 ++ .../Dao/PollenUserCredentialSpgeedDao.java | 39 +++++ .../Dao/PollenUserEmailAddressSpgeedDao.java | 75 ++++++++- .../persistence/Dao/PollenUserSpgeedDao.java | 113 ++++++++----- .../persistence/Dao/PollenVoteSpgeedDao.java | 2 +- .../persistence/Dao/PollenVoterListSpgeedDao.java | 2 +- .../V3_3_0_2__alter_default_TopiaCreateDate.sql | 51 ++++++ 17 files changed, 422 insertions(+), 149 deletions(-) diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenChildFavoriteListSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenChildFavoriteListSpgeedDao.java index eee526fe..7c31dfc8 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenChildFavoriteListSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenChildFavoriteListSpgeedDao.java @@ -2,7 +2,7 @@ package org.chorem.pollen.persistence.Dao; import org.chorem.pollen.persistence.entity.ChildFavoriteList; -public interface PollenChildFavoriteListSpgeedDao { +public interface PollenChildFavoriteListSpgeedDao extends PollenSpgeedDao { String propertieswoForeignKey[] = {ChildFavoriteList.PROPERTY_WEIGHT, ChildFavoriteList.PROPERTY_TOPIA_ID}; diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenChoiceSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenChoiceSpgeedDao.java index fb157bc2..be90ae16 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenChoiceSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenChoiceSpgeedDao.java @@ -1,8 +1,9 @@ package org.chorem.pollen.persistence.Dao; import org.chorem.pollen.persistence.entity.Choice; +import org.nuiton.spgeed.SpgeedDao; -public interface PollenChoiceSpgeedDao { +public interface PollenChoiceSpgeedDao extends PollenSpgeedDao { String propertieswoForeignKey[] = {Choice.PROPERTY_CHOICE_VALUE, Choice.PROPERTY_DESCRIPTION, Choice.PROPERTY_CHOICE_ORDER, Choice.PROPERTY_TOPIA_ID}; } \ No newline at end of file diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenCommentSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenCommentSpgeedDao.java index c454a982..0fc8ccde 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenCommentSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenCommentSpgeedDao.java @@ -2,7 +2,7 @@ package org.chorem.pollen.persistence.Dao; import org.chorem.pollen.persistence.entity.Comment; -public interface PollenCommentSpgeedDao { +public interface PollenCommentSpgeedDao extends PollenSpgeedDao{ String propertieswoForeignKey[] = {Comment.PROPERTY_TEXT, Comment.PROPERTY_POST_DATE, Comment.PROPERTY_TOPIA_ID}; } \ No newline at end of file diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenFavoriteListMemberSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenFavoriteListMemberSpgeedDao.java index ec8a5772..69941813 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenFavoriteListMemberSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenFavoriteListMemberSpgeedDao.java @@ -3,7 +3,7 @@ package org.chorem.pollen.persistence.Dao; import org.chorem.pollen.persistence.entity.FavoriteList; import org.chorem.pollen.persistence.entity.FavoriteListMember; -public interface PollenFavoriteListMemberSpgeedDao { +public interface PollenFavoriteListMemberSpgeedDao extends PollenSpgeedDao{ String propertieswoForeignKey[] = {FavoriteListMember.PROPERTY_NAME, FavoriteListMember.PROPERTY_EMAIL, FavoriteListMember.PROPERTY_WEIGHT, FavoriteList.PROPERTY_TOPIA_ID}; diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenFavoriteListSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenFavoriteListSpgeedDao.java index 981fd78e..2e85c139 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenFavoriteListSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenFavoriteListSpgeedDao.java @@ -2,7 +2,7 @@ package org.chorem.pollen.persistence.Dao; import org.chorem.pollen.persistence.entity.FavoriteList; -public interface PollenFavoriteListSpgeedDao { +public interface PollenFavoriteListSpgeedDao extends PollenSpgeedDao{ String propertieswoForeignKey[] = {FavoriteList.PROPERTY_NAME, FavoriteList.PROPERTY_TOPIA_ID}; diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenPollSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenPollSpgeedDao.java index 7c3e6563..2736a54e 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenPollSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenPollSpgeedDao.java @@ -6,76 +6,130 @@ import org.chorem.pollen.persistence.entity.PollenPrincipal; import org.nuiton.spgeed.annotations.Select; import org.nuiton.spgeed.annotations.Update; -import java.sql.Date; - public interface PollenPollSpgeedDao extends PollenSpgeedDao { String pollName = "po"; String aggName = "polls_agg"; - String propertieswoForeignKey = pollName+"."+Poll.PROPERTY_TITLE+ ", " + pollName+"."+Poll.PROPERTY_DESCRIPTION+ ", " + pollName+"."+Poll.PROPERTY_BEGIN_DATE+ ", " + pollName+"."+Poll.PROPERTY_END_DATE+ ", " + - pollName+"."+Poll.PROPERTY_ANONYMOUS_VOTE_ALLOWED+ ", " + pollName+"."+Poll.PROPERTY_CONTINUOUS_RESULTS+ ", " + pollName+"."+Poll.PROPERTY_NOTIFY_ME_HOURS_BEFORE_POLL_ENDS+ ", " + - pollName+"."+Poll.PROPERTY_POLL_END_REMINDER_SENT+ ", " + pollName+"."+Poll.PROPERTY_NOTIFICATION_LOCALE+ ", " + pollName+"."+Poll.PROPERTY_VOTE_NOTIFICATION+ ", " + - pollName+"."+Poll.PROPERTY_FEED_CONTENT+ ", " + pollName+"."+Poll.PROPERTY_COMMENT_NOTIFICATION+ ", " + pollName+"."+Poll.PROPERTY_NEW_CHOICE_NOTIFICATION+ ", " + - pollName+"."+Poll.PROPERTY_GTU_VALIDATION_DATE+ ", " + pollName+"."+Poll.PROPERTY_PREMIUM+ ", " + pollName+"."+Poll.PROPERTY_NOTIFICATION_MAX_VOTER_SEND+ ", " + - pollName+"."+Poll.PROPERTY_EMAIL_ADDRESS_SUFFIXES+ ", " + pollName+"."+Poll.PROPERTY_POLL_TYPE+ ", " + pollName+"."+Poll.PROPERTY_VOTE_VISIBILITY+ ", " + pollName+"."+Poll.PROPERTY_COMMENT_VISIBILITY+ ", " + - pollName+"."+Poll.PROPERTY_RESULT_VISIBILITY+ ", " + pollName+"."+ Poll.PROPERTY_TOPIA_ID; - - String command = aggName+" AS (" + - " SELECT "+propertieswoForeignKey+", json_agg("+PollenPrincipalSpgeedDao.principalName+".*)->0 AS "+Poll.PROPERTY_CREATOR + - " FROM "+PollenPrincipalSpgeedDao.aggName+" "+PollenPrincipalSpgeedDao.principalName+ - " RIGHT JOIN poll "+pollName+" ON "+PollenPrincipalSpgeedDao.principalName+"."+ PollenPrincipal.PROPERTY_TOPIA_ID+" = "+pollName+"."+Poll.PROPERTY_CREATOR + - " GROUP BY "+pollName+"."+Poll.PROPERTY_TOPIA_ID + - ") "; - - String commands = "WITH " + - PollenUserEmailAddressSpgeedDao.command+"," + - PollenUserSpgeedDao.command+", " + - PollenPrincipalSpgeedDao.command+", " + - PollenPollSpgeedDao.command + - "SELECT * FROM "+aggName; - - String com = "WITH "+ - "emails_agg AS ( "+ - "SELECT topiaid, pollenuser "+ - "FROM pollenuseremailaddress "+ - "), "+ - "users_agg AS ( "+ - "SELECT userx.topiaid, json_agg(emails.*) AS emailaddresses, json_agg(demail.*)->0 AS defaultemailaddress "+ - "FROM pollenuser userx "+ - "JOIN emails_agg demail ON demail.topiaid = userx.defaultemailaddress "+ - "JOIN emails_agg emails ON emails.pollenuser = userx.topiaid "+ - "GROUP BY userx.topiaid "+ -"), "+ - "principals_agg AS ( "+ - "SELECT principals.topiaid, json_agg(userx.*)->0 AS pollenuser "+ - "FROM users_agg userx JOIN pollenprincipal principals "+ - "ON userx.topiaid = principals.pollenuser "+ - "GROUP BY principals.topiaid "+ -"), "+ - "polls_agg AS ( "+ - "SELECT p.topiaid, json_agg(a.*)->0 AS creator "+ - "FROM principals_agg a "+ - "RIGHT JOIN poll p ON a.topiaid = p.creator "+ - "GROUP BY p.topiaid "+ -") "+ - "SELECT json_agg(po.*) FROM polls_agg po"; + String properties = pollName + "." + Poll.PROPERTY_TOPIA_ID + + pollName + "." + Poll.PROPERTY_TOPIA_VERSION + ", " + + pollName + "." + Poll.PROPERTY_TOPIA_CREATE_DATE + ", " + + pollName + "." + Poll.PROPERTY_TITLE + ", " + + pollName + "." + Poll.PROPERTY_DESCRIPTION + ", " + + pollName + "." + Poll.PROPERTY_BEGIN_DATE + ", " + + pollName + "." + Poll.PROPERTY_END_DATE + ", " + + pollName + "." + Poll.PROPERTY_ANONYMOUS_VOTE_ALLOWED + ", " + + pollName + "." + Poll.PROPERTY_CONTINUOUS_RESULTS + ", " + + pollName + "." + Poll.PROPERTY_NOTIFY_ME_HOURS_BEFORE_POLL_ENDS + ", " + + pollName + "." + Poll.PROPERTY_POLL_END_REMINDER_SENT + ", " + + pollName + "." + Poll.PROPERTY_NOTIFICATION_LOCALE + ", " + + pollName + "." + Poll.PROPERTY_VOTE_NOTIFICATION + ", " + + pollName + "." + Poll.PROPERTY_POLL_TYPE + ", " + + pollName + "." + Poll.PROPERTY_VOTE_VISIBILITY + ", " + + pollName + "." + Poll.PROPERTY_COMMENT_VISIBILITY + ", " + + pollName + "." + Poll.PROPERTY_RESULT_VISIBILITY + ", " + + pollName + "." + Poll.PROPERTY_CREATOR + ", " + + pollName + "." + Poll.PROPERTY_FEED_CONTENT + ", " + + pollName + "." + Poll.PROPERTY_COMMENT_NOTIFICATION + ", " + + pollName + "." + Poll.PROPERTY_NEW_CHOICE_NOTIFICATION + ", " + + pollName + "." + Poll.PROPERTY_GTU_VALIDATION_DATE + ", " + + pollName + "." + Poll.PROPERTY_PREMIUM + ", " + + pollName + "." + Poll.PROPERTY_NOTIFICATION_MAX_VOTER_SEND + ", " + + pollName + "." + Poll.PROPERTY_EMAIL_ADDRESS_SUFFIXES; + + String command = aggName + " AS (" + + "SELECT " + properties + ", " + + "json_agg(" + PollenPrincipalSpgeedDao.principalName + ".*)->0 AS " + Poll.PROPERTY_CREATOR + + " FROM poll " + pollName + + " JOIN " + PollenPrincipalSpgeedDao.aggName + " " + PollenPrincipalSpgeedDao.principalName + " ON " + PollenPrincipalSpgeedDao.principalName + "." + PollenPrincipal.PROPERTY_TOPIA_ID + " = " + pollName + "." + Poll.PROPERTY_CREATOR + + " GROUP BY " + pollName + "." + Poll.PROPERTY_TOPIA_ID + + ")"; + + String commands = "WITH " + + PollenUserCredentialSpgeedDao.command + ", " + + PollenUserEmailAddressSpgeedDao.command + ", " + + PollenUserSpgeedDao.command + ", " + + PollenPrincipalSpgeedDao.command + ", " + + PollenPollSpgeedDao.command + + " SELECT * FROM " + aggName; @Select(sql = commands, mapper = PollenMapper.class) Poll[] getallpoll(); - @Update(sql = "insert into poll (title, description, begindate, enddate, anonymousvoteallowed, " + - "continuousresults, notifymehoursbeforepollends, pollendremindersent, " + - "notificationlocale, votenotification, feedcontent, commentnotification, " + - "newchoicenotification, gtuvalidationdate, premium, notificationmaxvotersend, " + - "emailaddresssuffixes) values ($(title), $(description), $(begindate), $(enddate), $(anonymousvoteallowed), " + - "$(continuousresults), $(notifymehoursbeforepollends), $(pollendremindersent), " + - "$(notificationlocale), $(votenotification), $(feedcontent), $(commentnotification), " + - "$(newchoicenotification), $(gtuvalidationdate), $(premium), $(notificationmaxvotersend), " + - "$(emailaddresssuffixes)))", mapper = PollenMapper.class) - int new_poll(String title, String description, Date begindate, Date enddate, boolean anonymousvoteallowed, boolean continuousresults, - int notifymehoursbeforepollends, boolean pollendremindersent, String notificationlocale, boolean votenotification, - String feedcontent, boolean commentnotification, boolean newchoicenotification, Date gtuvalidationdate, boolean premium, - boolean notificationmaxvotersend, String emailaddresssuffixes); + String pollProperties = Poll.PROPERTY_TOPIA_ID + Poll.PROPERTY_TOPIA_VERSION + ", " + + Poll.PROPERTY_TITLE + ", " + Poll.PROPERTY_DESCRIPTION + ", " + + Poll.PROPERTY_BEGIN_DATE + ", " + Poll.PROPERTY_END_DATE + ", " + + Poll.PROPERTY_ANONYMOUS_VOTE_ALLOWED + ", " + Poll.PROPERTY_CONTINUOUS_RESULTS + ", " + + Poll.PROPERTY_NOTIFY_ME_HOURS_BEFORE_POLL_ENDS + ", " + Poll.PROPERTY_POLL_END_REMINDER_SENT + ", " + + Poll.PROPERTY_NOTIFICATION_LOCALE + ", " + Poll.PROPERTY_VOTE_NOTIFICATION + ", " + + Poll.PROPERTY_POLL_TYPE + ", " + Poll.PROPERTY_VOTE_VISIBILITY + ", " + + Poll.PROPERTY_COMMENT_VISIBILITY + ", " + Poll.PROPERTY_RESULT_VISIBILITY + ", " + + Poll.PROPERTY_CREATOR + ", " + Poll.PROPERTY_FEED_CONTENT + ", " + + Poll.PROPERTY_COMMENT_NOTIFICATION + ", " + Poll.PROPERTY_NEW_CHOICE_NOTIFICATION + ", " + + Poll.PROPERTY_GTU_VALIDATION_DATE + ", " + Poll.PROPERTY_PREMIUM + ", " + + Poll.PROPERTY_NOTIFICATION_MAX_VOTER_SEND + ", " + Poll.PROPERTY_EMAIL_ADDRESS_SUFFIXES; + + String pollVariables = "${p." + Poll.PROPERTY_TOPIA_ID + "}, " + + "${p." + Poll.PROPERTY_TOPIA_VERSION + "}, " + + "${p." + Poll.PROPERTY_TITLE + "}, " + + "${p." + Poll.PROPERTY_DESCRIPTION + "}, " + + "${p." + Poll.PROPERTY_BEGIN_DATE + "}, " + + "${p." + Poll.PROPERTY_END_DATE + "}, " + + "${p." + Poll.PROPERTY_ANONYMOUS_VOTE_ALLOWED + "}, " + + "${p." + Poll.PROPERTY_CONTINUOUS_RESULTS + "}, " + + "${p." + Poll.PROPERTY_NOTIFY_ME_HOURS_BEFORE_POLL_ENDS + "}, " + + "${p." + Poll.PROPERTY_POLL_END_REMINDER_SENT + "}, " + + "${p." + Poll.PROPERTY_NOTIFICATION_LOCALE + "}, " + + "${p." + Poll.PROPERTY_VOTE_NOTIFICATION + "}, " + + "${p." + Poll.PROPERTY_POLL_TYPE + "}, " + + "${p." + Poll.PROPERTY_VOTE_VISIBILITY + "}, " + + "${p." + Poll.PROPERTY_COMMENT_VISIBILITY + "}, " + + "${p." + Poll.PROPERTY_RESULT_VISIBILITY + "}, " + + "${p." + Poll.PROPERTY_CREATOR + "." + PollenPrincipal.PROPERTY_TOPIA_ID + "}, " + + "${p." + Poll.PROPERTY_FEED_CONTENT + "}, " + + "${p." + Poll.PROPERTY_COMMENT_NOTIFICATION + "}, " + + "${p." + Poll.PROPERTY_NEW_CHOICE_NOTIFICATION + "}, " + + "${p." + Poll.PROPERTY_GTU_VALIDATION_DATE + "}, " + + "${p." + Poll.PROPERTY_PREMIUM + "}, " + + "${p." + Poll.PROPERTY_NOTIFICATION_MAX_VOTER_SEND + "}, " + + "${p." + Poll.PROPERTY_EMAIL_ADDRESS_SUFFIXES + "}"; + + String editPoll = "UPDATE SET " + + Poll.PROPERTY_TOPIA_VERSION + " = EXCLUDED." + Poll.PROPERTY_TOPIA_VERSION + ", " + + Poll.PROPERTY_TITLE + " = EXCLUDED." + Poll.PROPERTY_TITLE + ", " + + Poll.PROPERTY_DESCRIPTION + " = EXCLUDED." + Poll.PROPERTY_DESCRIPTION + ", " + + Poll.PROPERTY_BEGIN_DATE + " = EXCLUDED." + Poll.PROPERTY_BEGIN_DATE + ", " + + Poll.PROPERTY_END_DATE + " = EXCLUDED." + Poll.PROPERTY_END_DATE + ", " + + Poll.PROPERTY_ANONYMOUS_VOTE_ALLOWED + " = EXCLUDED." + Poll.PROPERTY_ANONYMOUS_VOTE_ALLOWED + ", " + + Poll.PROPERTY_CONTINUOUS_RESULTS + " = EXCLUDED." + Poll.PROPERTY_CONTINUOUS_RESULTS + ", " + + Poll.PROPERTY_NOTIFY_ME_HOURS_BEFORE_POLL_ENDS + " = EXCLUDED." + Poll.PROPERTY_NOTIFY_ME_HOURS_BEFORE_POLL_ENDS + ", " + + Poll.PROPERTY_POLL_END_REMINDER_SENT + " = EXCLUDED." + Poll.PROPERTY_POLL_END_REMINDER_SENT + ", " + + Poll.PROPERTY_NOTIFICATION_LOCALE + " = EXCLUDED." + Poll.PROPERTY_NOTIFICATION_LOCALE + ", " + + Poll.PROPERTY_VOTE_NOTIFICATION + " = EXCLUDED." + Poll.PROPERTY_VOTE_NOTIFICATION + ", " + + Poll.PROPERTY_POLL_TYPE + " = EXCLUDED." + Poll.PROPERTY_POLL_TYPE + ", " + + Poll.PROPERTY_VOTE_VISIBILITY + " = EXCLUDED." + Poll.PROPERTY_VOTE_VISIBILITY + ", " + + Poll.PROPERTY_COMMENT_VISIBILITY + " = EXCLUDED." + Poll.PROPERTY_COMMENT_VISIBILITY + ", " + + Poll.PROPERTY_RESULT_VISIBILITY + " = EXCLUDED." + Poll.PROPERTY_RESULT_VISIBILITY + ", " + + Poll.PROPERTY_CREATOR + " = EXCLUDED." + Poll.PROPERTY_CREATOR + ", " + + Poll.PROPERTY_FEED_CONTENT + " = EXCLUDED." + Poll.PROPERTY_FEED_CONTENT + ", " + + Poll.PROPERTY_COMMENT_NOTIFICATION + " = EXCLUDED." + Poll.PROPERTY_COMMENT_NOTIFICATION + ", " + + Poll.PROPERTY_NEW_CHOICE_NOTIFICATION + " = EXCLUDED." + Poll.PROPERTY_NEW_CHOICE_NOTIFICATION + ", " + + Poll.PROPERTY_GTU_VALIDATION_DATE + " = EXCLUDED." + Poll.PROPERTY_GTU_VALIDATION_DATE + ", " + + Poll.PROPERTY_PREMIUM + " = EXCLUDED." + Poll.PROPERTY_PREMIUM + ", " + + Poll.PROPERTY_NOTIFICATION_MAX_VOTER_SEND + " = EXCLUDED." + Poll.PROPERTY_NOTIFICATION_MAX_VOTER_SEND + ", " + + Poll.PROPERTY_EMAIL_ADDRESS_SUFFIXES + " = EXCLUDED." + Poll.PROPERTY_EMAIL_ADDRESS_SUFFIXES; + + String createPoll = "INSERT INTO poll (" + pollProperties + ") VALUES (" + pollVariables + ")"; + + String savePoll = createPoll + " ON CONFLICT (" + Poll.PROPERTY_TOPIA_ID + ") DO " + editPoll; + + @Update(sql = savePoll, mapper = PollenMapper.class) + int savePoll(Poll p); + + String deletePoll = "DELETE FROM poll" + + " WHERE " + Poll.PROPERTY_TOPIA_ID + " = ${u.topiaId}"; + + @Update(sql = deletePoll, mapper = PollenMapper.class) + int deletePoll(Poll p); } \ No newline at end of file diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenPrincipalSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenPrincipalSpgeedDao.java index 123bff7a..f84f10bd 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenPrincipalSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenPrincipalSpgeedDao.java @@ -1,9 +1,10 @@ package org.chorem.pollen.persistence.Dao; +import org.chorem.pollen.persistence.entity.Poll; import org.chorem.pollen.persistence.entity.PollenPrincipal; import org.chorem.pollen.persistence.entity.PollenUser; -public interface PollenPrincipalSpgeedDao { +public interface PollenPrincipalSpgeedDao extends PollenSpgeedDao{ String principalName = "pr"; @@ -11,31 +12,20 @@ public interface PollenPrincipalSpgeedDao { String propertieswoForeignKey = principalName+"." +PollenPrincipal.PROPERTY_NAME + ", " + principalName+"." +PollenPrincipal.PROPERTY_EMAIL + ", "+principalName+"."+PollenPrincipal.PROPERTY_INVALID + ", " - + principalName+"." +PollenPrincipal.TOPIA_ID; - - String Properties = propertieswoForeignKey+ PollenPrincipal.PROPERTY_PERMISSION+ PollenPrincipal.PROPERTY_POLLEN_USER; - - String command = aggName+" AS (" + - " SELECT "+ propertieswoForeignKey +", json_agg("+PollenUserSpgeedDao.userName+".*)->0 AS "+PollenPrincipal.PROPERTY_POLLEN_USER+ - " FROM "+PollenUserSpgeedDao.aggName+" "+PollenUserSpgeedDao.userName+ - " JOIN pollenprincipal "+principalName+" ON "+PollenUserSpgeedDao.userName+"."+ PollenUser.PROPERTY_TOPIA_ID+" = "+principalName+"."+PollenPrincipal.PROPERTY_POLLEN_USER+ - " GROUP BY "+ principalName+"."+PollenPrincipal.PROPERTY_TOPIA_ID+ - ")"; - - String commands = "WITH " + - PollenUserEmailAddressSpgeedDao.command+", " + - "users_agg AS (" + - " SELECT userx.topiaid, json_agg(demail.*)->0 AS defaultemailaddress, json_agg(emails.*) AS emailaddresses" + - " FROM email_agg demail, email_agg emails, pollenuser userx" + - " WHERE demail.topiaid = userx.defaultemailaddress AND emails.pollenuser = userx.topiaid" + - " GROUP BY userx.topiaid" + - ")," + - PollenPrincipalSpgeedDao.command+", " + - "polls_agg AS (" + - " SELECT p.topiaid, json_agg(a.*)->0 AS creator" + - " FROM principals_agg a, poll p" + - " WHERE a.topiaid = p.creator" + - " GROUP BY p.topiaid" + - ") " + - "SELECT * FROM polls_agg"; + + principalName+"." +PollenPrincipal.PROPERTY_TOPIA_ID; + + String command = aggName + " AS (" + + "SELECT " + propertieswoForeignKey + ", " + + "json_agg(" + PollenUserSpgeedDao.userName + ".*)->0 AS " + PollenPrincipal.PROPERTY_POLLEN_USER + + " FROM " + PollenUserSpgeedDao.aggName + " " + PollenUserSpgeedDao.userName + + " JOIN pollenprincipal " + principalName + " ON " + PollenUserSpgeedDao.userName + "." + PollenUser.PROPERTY_TOPIA_ID + " = " + principalName + "." + PollenPrincipal.PROPERTY_POLLEN_USER + + " GROUP BY " + principalName + "." + PollenPrincipal.PROPERTY_TOPIA_ID + + ")"; + + String commands = "WITH " + + PollenUserCredentialSpgeedDao.command + ", " + + PollenUserEmailAddressSpgeedDao.command + ", " + + PollenUserSpgeedDao.command + ", " + + PollenPrincipalSpgeedDao.command + + "SELECT * FROM " + aggName; } \ No newline at end of file diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenResourceSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenResourceSpgeedDao.java new file mode 100644 index 00000000..5e530659 --- /dev/null +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenResourceSpgeedDao.java @@ -0,0 +1,32 @@ +package org.chorem.pollen.persistence.Dao; + +import org.chorem.pollen.persistence.PollenMapper; +import org.chorem.pollen.persistence.entity.PollenResource; +import org.nuiton.spgeed.annotations.Update; + +public interface PollenResourceSpgeedDao extends PollenSpgeedDao { + + String resourceName = "uc"; + + String aggName = "ressource_agg"; + + String properties = PollenResource.PROPERTY_TOPIA_ID + ", " + + PollenResource.PROPERTY_TOPIA_VERSION + ", " + + PollenResource.PROPERTY_TOPIA_CREATE_DATE + ", " + + PollenResource.PROPERTY_RESOURCE_CONTENT + ", " + + PollenResource.PROPERTY_CONTENT_TYPE + ", " + + PollenResource.PROPERTY_NAME + ", " + + PollenResource.PROPERTY_SIZE + ", " + + PollenResource.PROPERTY_RESOURCE_TYPE; + + String command = aggName + " AS (" + + " SELECT " + properties + + " FROM pollenresource" + + ")"; + + String deleteResource = "DELETE FROM pollenresource " + + "WHERE " + PollenResource.PROPERTY_TOPIA_ID + " ${topiaId}"; + + @Update(sql = deleteResource, mapper = PollenMapper.class) + int deleteResource(String topiaId); +} \ No newline at end of file diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenRessourceSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenRessourceSpgeedDao.java deleted file mode 100644 index 44399f15..00000000 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenRessourceSpgeedDao.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.chorem.pollen.persistence.Dao; - -import org.chorem.pollen.persistence.entity.PollenResource; - -public interface PollenRessourceSpgeedDao { - - String propertieswoForeignKey[] = {PollenResource.PROPERTY_RESOURCE_CONTENT, PollenResource.PROPERTY_CONTENT_TYPE, - PollenResource.PROPERTY_NAME, PollenResource.PROPERTY_SIZE, PollenResource.PROPERTY_TOPIA_ID}; - -} \ No newline at end of file diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenSessionTokenSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenSessionTokenSpgeedDao.java index 0123fc22..6c15f8e9 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenSessionTokenSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenSessionTokenSpgeedDao.java @@ -2,7 +2,7 @@ package org.chorem.pollen.persistence.Dao; import org.chorem.pollen.persistence.entity.SessionToken; -public interface PollenSessionTokenSpgeedDao { +public interface PollenSessionTokenSpgeedDao extends PollenSpgeedDao { String propertieswoForeignKey[] = {SessionToken.PROPERTY_TOPIA_ID}; diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenSpgeedDao.java index 1ad613bd..f6da0612 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenSpgeedDao.java @@ -1,5 +1,15 @@ package org.chorem.pollen.persistence.Dao; +import org.chorem.pollen.persistence.entity.PollenUser; + +import static org.nuiton.topia.persistence.TopiaEntity.*; + public interface PollenSpgeedDao { + String createTopiaEntityProperties = "( " + PROPERTY_TOPIA_ID + ", " + PROPERTY_TOPIA_VERSION + ", " + + PROPERTY_TOPIA_CREATE_DATE + " )"; + + String createTopiaEntityVariables = "(${" + PROPERTY_TOPIA_ID + "}, ${" + PROPERTY_TOPIA_VERSION + "}, " + + "${" + PROPERTY_TOPIA_CREATE_DATE + "})"; + } \ No newline at end of file diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenUserCredentialSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenUserCredentialSpgeedDao.java new file mode 100644 index 00000000..f4385c76 --- /dev/null +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenUserCredentialSpgeedDao.java @@ -0,0 +1,39 @@ +package org.chorem.pollen.persistence.Dao; + +import org.chorem.pollen.persistence.PollenMapper; +import org.chorem.pollen.persistence.entity.UserCredential; +import org.nuiton.spgeed.annotations.Select; +import org.nuiton.spgeed.annotations.Update; + +import java.util.List; + +public interface PollenUserCredentialSpgeedDao extends PollenSpgeedDao { + + String userCredentialName = "uc"; + + String aggName = "credientials_agg"; + + String properties = UserCredential.PROPERTY_TOPIA_ID + ", " + + UserCredential.PROPERTY_TOPIA_VERSION + ", " + + UserCredential.PROPERTY_TOPIA_CREATE_DATE + ", " + + UserCredential.PROPERTY_PROVIDER + ", " + + UserCredential.PROPERTY_USER_ID + ", " + + UserCredential.PROPERTY_USER_NAME + ", " + + UserCredential.PROPERTY_EMAIL + ", " + + "pollenuser"; + + String command = aggName + " AS (" + + " SELECT " + properties + + " FROM usercredential" + + ")"; + + String deleteUserCredential = "DELETE FROM usercredential " + + "WHERE " + UserCredential.PROPERTY_TOPIA_ID + " = ${topiaId}"; + + @Update(sql = deleteUserCredential, mapper = PollenMapper.class) + int deleteUserCredential(List<String> topiaId); + + String getUserCredential = "SELECT * FROM usercredential WHERE " + UserCredential.PROPERTY_USER_ID + " = ${topiaId}"; + @Select(sql = getUserCredential, mapper = PollenMapper.class) + UserCredential[] getUserCredential(String topiaId); +} \ No newline at end of file diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenUserEmailAddressSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenUserEmailAddressSpgeedDao.java index d72d41fa..9e68eae5 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenUserEmailAddressSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenUserEmailAddressSpgeedDao.java @@ -1,8 +1,15 @@ package org.chorem.pollen.persistence.Dao; +import org.chorem.pollen.persistence.PollenMapper; +import org.chorem.pollen.persistence.entity.PollenUser; import org.chorem.pollen.persistence.entity.PollenUserEmailAddress; +import org.nuiton.spgeed.annotations.Select; +import org.nuiton.spgeed.annotations.Update; -public interface PollenUserEmailAddressSpgeedDao { +import java.util.Collection; +import java.util.List; + +public interface PollenUserEmailAddressSpgeedDao extends PollenSpgeedDao { String demailName = "pde"; @@ -13,12 +20,72 @@ public interface PollenUserEmailAddressSpgeedDao { String properties = PollenUserEmailAddress.PROPERTY_EMAIL_ADDRESS + ", " + PollenUserEmailAddress.PROPERTY_PGP_PUBLIC_KEY + ", " + PollenUserEmailAddress.PROPERTY_VALIDATED + ", " + - PollenUserEmailAddress.TOPIA_ID + ", " + + PollenUserEmailAddress.PROPERTY_TOPIA_ID + ", " + "pollenuser"; - - final String command = aggName+" AS (" + + String command = aggName+" AS (" + " SELECT " + properties + " FROM pollenuseremailaddress" + ")"; + + String findEmail = "WITH " + command + " SELECT * FROM " + aggName + + " WHERE " + PollenUserEmailAddress.PROPERTY_EMAIL_ADDRESS + " = ${emailAddress}"; + + @Select(sql = findEmail, mapper = PollenMapper.class) + PollenUserEmailAddress findEmailAddress(String emailAddress); + + String getEmail = "WITH " + command + " SELECT * FROM " + aggName + + " WHERE " + PollenUserEmailAddress.PROPERTY_TOPIA_ID + " = ${topiaId}"; + + @Select(sql = getEmail, mapper = PollenMapper.class) + PollenUserEmailAddress getEmailAddress(String topiaId); + + String emailProperties = PollenUserEmailAddress.PROPERTY_TOPIA_ID + ", " + + PollenUserEmailAddress.PROPERTY_TOPIA_VERSION + ", " + + PollenUserEmailAddress.PROPERTY_EMAIL_ADDRESS + ", " + + PollenUserEmailAddress.PROPERTY_PGP_PUBLIC_KEY + ", " + + PollenUserEmailAddress.PROPERTY_VALIDATED; + + String emailPropertiesForeign = emailProperties + ", pollenuser"; + + String emailVariable = "${e.topiaId}, ${e.topiaVersion}, ${e.emailAddress}, ${e.pgpPublicKey}, ${e.validated}"; + + String emailVariableForeign = emailVariable + ", ${pollenuser}"; + + String createEmail = "INSERT INTO pollenuseremailaddress (" + emailProperties + ") " + + "VALUES (" + emailVariable + ")"; + + String createEmailForeign = "INSERT INTO pollenuseremailaddress (" + emailPropertiesForeign + ") " + + "VALUES (" + emailVariableForeign + ")"; + + String editEmail = "UPDATE SET " + + PollenUserEmailAddress.PROPERTY_EMAIL_ADDRESS + " = EXCLUDED." + PollenUserEmailAddress.PROPERTY_EMAIL_ADDRESS + ", " + + PollenUserEmailAddress.PROPERTY_PGP_PUBLIC_KEY + " = EXCLUDED." + PollenUserEmailAddress.PROPERTY_PGP_PUBLIC_KEY + ", " + + PollenUserEmailAddress.PROPERTY_VALIDATED + " = EXCLUDED." + PollenUserEmailAddress.PROPERTY_VALIDATED; + + String editEmailForeign = editEmail + ", pollenuser = EXCLUDED.pollenuser"; + + String saveEmail = createEmail + + " ON CONFLICT (" + PollenUserEmailAddress.PROPERTY_TOPIA_ID + ") DO " + editEmail; + + String saveEmailForeign = createEmailForeign + + " ON CONFLICT (" + PollenUserEmailAddress.PROPERTY_TOPIA_ID + ") DO " + editEmailForeign; + + @Update(sql = saveEmail, mapper = PollenMapper.class) + int saveEmail(PollenUserEmailAddress e); + + @Update(sql = saveEmailForeign, mapper = PollenMapper.class) + int saveEmail(PollenUserEmailAddress e, String pollenuser); + + String updatePollenUser = "UPDATE pollenuseremailaddress SET pollenuser = ${pollenUser} WHERE " + + PollenUserEmailAddress.PROPERTY_TOPIA_ID + " = ${topiaId}"; + + @Update(sql = updatePollenUser, mapper = PollenMapper.class) + int updatePollenUser(String pollenUser, Collection<String> topiaId); + + String deleteEmail = "DELETE FROM pollenuseremailaddress" + + " WHERE " + PollenUserEmailAddress.PROPERTY_TOPIA_ID + " = ${topiaId}"; + + @Update(sql = deleteEmail, mapper = PollenMapper.class) + int deleteEmail(String topiaId); } \ No newline at end of file diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenUserSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenUserSpgeedDao.java index 3e7f9605..a3968e7b 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenUserSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenUserSpgeedDao.java @@ -4,7 +4,11 @@ import org.chorem.pollen.persistence.PollenMapper; import org.chorem.pollen.persistence.entity.Poll; import org.chorem.pollen.persistence.entity.PollenUser; import org.chorem.pollen.persistence.entity.PollenUserEmailAddress; +import org.nuiton.spgeed.Chunk; import org.nuiton.spgeed.annotations.Select; +import org.nuiton.spgeed.annotations.Update; + +import static org.chorem.pollen.persistence.Dao.PollenUserEmailAddressSpgeedDao.*; public interface PollenUserSpgeedDao extends PollenSpgeedDao { @@ -12,50 +16,85 @@ public interface PollenUserSpgeedDao extends PollenSpgeedDao { String aggName = "users_agg"; - String propertieswoForeignKey = userName+"."+PollenUser.PROPERTY_NAME+", " + - userName+"."+PollenUser.PROPERTY_ADMINISTRATOR + ", "+userName+"."+PollenUser.PROPERTY_LANGUAGE+", " + - userName+"."+PollenUser.PROPERTY_PASSWORD + ", "+userName+"."+PollenUser.PROPERTY_SALT+", " + - userName+"."+PollenUser.PROPERTY_BANNED + ", "+userName+"."+PollenUser.PROPERTY_GTU_VALIDATION_DATE+", " + - userName+"."+PollenUser.PROPERTY_PREMIUM_TO + ", "+userName+"."+PollenUser.PROPERTY_CAN_CREATE_POLL+", " + - userName+"."+PollenUser.PROPERTY_TOPIA_ID; - - String Properties = propertieswoForeignKey+ PollenUser.PROPERTY_USER_CREDENTIAL+ PollenUser.PROPERTY_DEFAULT_EMAIL_ADDRESS+ - PollenUser.PROPERTY_EMAIL_ADDRESSES+ PollenUser.PROPERTY_AVATAR; - - String command = aggName+" AS (" + - " SELECT "+propertieswoForeignKey+", " + - "json_agg("+PollenUserEmailAddressSpgeedDao.demailName+".*)->0 AS "+PollenUser.PROPERTY_DEFAULT_EMAIL_ADDRESS+", " + - "json_agg("+PollenUserEmailAddressSpgeedDao.emailsName+".*) AS "+PollenUser.PROPERTY_EMAIL_ADDRESSES+ - " FROM pollenuser "+userName+ - " JOIN "+PollenUserEmailAddressSpgeedDao.aggName+" "+PollenUserEmailAddressSpgeedDao.demailName+" ON "+PollenUserEmailAddressSpgeedDao.demailName+"."+PollenUserEmailAddress.PROPERTY_TOPIA_ID+ " = "+userName+"."+PollenUser.PROPERTY_DEFAULT_EMAIL_ADDRESS+ - " JOIN "+PollenUserEmailAddressSpgeedDao.aggName+" "+PollenUserEmailAddressSpgeedDao.emailsName+" ON "+PollenUserEmailAddressSpgeedDao.emailsName+".pollenuser = "+userName+"."+PollenUser.PROPERTY_TOPIA_ID+ - " GROUP BY "+userName+"."+PollenUser.PROPERTY_TOPIA_ID+ - ")"; + String propertieswoForeignKey = userName + "." + PollenUser.PROPERTY_NAME + ", " + + userName + "." + PollenUser.PROPERTY_ADMINISTRATOR + ", "+userName + "." + PollenUser.PROPERTY_LANGUAGE + ", " + + userName + "." + PollenUser.PROPERTY_PASSWORD + ", "+userName + "." + PollenUser.PROPERTY_SALT + ", " + + userName + "." + PollenUser.PROPERTY_BANNED + ", "+userName + "." + PollenUser.PROPERTY_GTU_VALIDATION_DATE + ", " + + userName + "." + PollenUser.PROPERTY_PREMIUM_TO + ", "+userName + "." + PollenUser.PROPERTY_CAN_CREATE_POLL + ", " + + userName + "." + PollenUser.PROPERTY_TOPIA_ID + ", " + userName + "." + PollenUser.PROPERTY_TOPIA_CREATE_DATE;; + + String command = aggName + " AS (" + + "SELECT " + propertieswoForeignKey + ", " + + "json_agg(" + demailName + ".*)->0 AS " + PollenUser.PROPERTY_DEFAULT_EMAIL_ADDRESS + ", " + + "json_agg(" + emailsName + ".*) AS " + PollenUser.PROPERTY_EMAIL_ADDRESSES + ", " + + "json_agg(" + PollenUserCredentialSpgeedDao.userCredentialName + ".*) AS " + PollenUser.PROPERTY_USER_CREDENTIAL + + " FROM pollenuser " + userName + + " JOIN " + PollenUserEmailAddressSpgeedDao.aggName + " " + demailName + " ON " + demailName + "." + PollenUserEmailAddress.PROPERTY_TOPIA_ID + " = " + userName + "." + PollenUser.PROPERTY_DEFAULT_EMAIL_ADDRESS + + " LEFT OUTER JOIN " + PollenUserEmailAddressSpgeedDao.aggName + " " + PollenUserEmailAddressSpgeedDao.emailsName + " ON " + PollenUserEmailAddressSpgeedDao.emailsName + ".pollenuser = " + userName + "." + PollenUser.PROPERTY_TOPIA_ID + + " LEFT OUTER JOIN " + PollenUserCredentialSpgeedDao.aggName + " " + PollenUserCredentialSpgeedDao.userCredentialName + " ON " + PollenUserCredentialSpgeedDao.userCredentialName + ".pollenuser = " + userName + "." + PollenUser.PROPERTY_TOPIA_ID + + " GROUP BY " + userName + "." + PollenUser.PROPERTY_TOPIA_ID + + ")"; String commands = "WITH " + - PollenUserEmailAddressSpgeedDao.command+", "+ + PollenUserCredentialSpgeedDao.command + ", " + + PollenUserEmailAddressSpgeedDao.command + ", " + PollenUserSpgeedDao.command + - "SELECT * from "+aggName; - - String getuser = "with pollenu as " + - "((select json_agg(e) as emailaddresses from pollenuseremailaddress e where e.pollenuser = u.topiaid), " + - "(select json_agg(d)->0 as defaultemailaddress from pollenuseremailaddress d where d.pollenuser = u.defaultemailaddress)," + - "select u.* " + - " from pollenuser u)" + - " select json_agg(pu) from pollenu pu"; + " SELECT * from " + aggName; - @Select(sql = getuser, mapper = PollenMapper.class) - PollenUser getFirstUser(); + String getUser = commands + " " + userName + " WHERE " + + userName + "." + PollenUser.PROPERTY_TOPIA_ID + " = ${userId}"; - @Select(sql = commands + " "+userName+" WHERE "+userName+"."+ PollenUser.PROPERTY_TOPIA_ID+" = ${userId}", mapper = PollenMapper.class) + @Select(sql = getUser, mapper = PollenMapper.class) PollenUser getUser(String userId); - @Select(sql = getuser, mapper = PollenMapper.class) - PollenUser[] getallUser(); + String getAllUsers = commands + " ORDER BY ${userOrder | toString()}"; + + @Select(sql = getAllUsers, mapper = PollenMapper.class) + Chunk<PollenUser> getAllUsers(Chunk previousChunk, String userOrder); + + String userProperties = PollenUser.PROPERTY_TOPIA_ID + ", " + PollenUser.PROPERTY_TOPIA_VERSION + ", " + + PollenUser.PROPERTY_NAME + ", " + PollenUser.PROPERTY_ADMINISTRATOR + ", " + + PollenUser.PROPERTY_LANGUAGE + ", " + PollenUser.PROPERTY_PASSWORD + ", " + + PollenUser.PROPERTY_SALT + ", " + PollenUser.PROPERTY_BANNED + ", " + + PollenUser.PROPERTY_GTU_VALIDATION_DATE + ", " + PollenUser.PROPERTY_PREMIUM_TO + ", " + + PollenUser.PROPERTY_CAN_CREATE_POLL + ", " + PollenUser.PROPERTY_DEFAULT_EMAIL_ADDRESS; + + String userVariables = "${u." + PollenUser.PROPERTY_TOPIA_ID + "}, " + + "${u." + PollenUser.PROPERTY_TOPIA_VERSION + "}, " + + "${u." + PollenUser.PROPERTY_NAME + "}, " + + "${u." + PollenUser.PROPERTY_ADMINISTRATOR + "}, " + + "${u." + PollenUser.PROPERTY_LANGUAGE + "}, " + + "${u." + PollenUser.PROPERTY_PASSWORD + "}, " + + "${u." + PollenUser.PROPERTY_SALT + "}, " + + "${u." + PollenUser.PROPERTY_BANNED + "}, " + + "${u." + PollenUser.PROPERTY_GTU_VALIDATION_DATE + "}, " + + "${u." + PollenUser.PROPERTY_PREMIUM_TO + "}, " + + "${u." + PollenUser.PROPERTY_CAN_CREATE_POLL + "}, " + + "${u." + PollenUser.PROPERTY_DEFAULT_EMAIL_ADDRESS + " " + PollenUserEmailAddress.PROPERTY_TOPIA_ID + "}"; + + String editUser = "UPDATE SET " + + PollenUser.PROPERTY_TOPIA_VERSION + " = EXCLUDED." + PollenUser.PROPERTY_TOPIA_VERSION + ", " + + PollenUser.PROPERTY_NAME + " = EXCLUDED." + PollenUser.PROPERTY_NAME + ", " + + PollenUser.PROPERTY_ADMINISTRATOR + " = EXCLUDED." + PollenUser.PROPERTY_ADMINISTRATOR + ", " + + PollenUser.PROPERTY_LANGUAGE + " = EXCLUDED." + PollenUser.PROPERTY_LANGUAGE + ", " + + PollenUser.PROPERTY_PASSWORD + " = EXCLUDED." + PollenUser.PROPERTY_PASSWORD + ", " + + PollenUser.PROPERTY_SALT + " = EXCLUDED." + PollenUser.PROPERTY_SALT + ", " + + PollenUser.PROPERTY_BANNED + " = EXCLUDED." + PollenUser.PROPERTY_BANNED + ", " + + PollenUser.PROPERTY_GTU_VALIDATION_DATE + " = EXCLUDED." + PollenUser.PROPERTY_GTU_VALIDATION_DATE + ", " + + PollenUser.PROPERTY_PREMIUM_TO + " = EXCLUDED." + PollenUser.PROPERTY_PREMIUM_TO + ", " + + PollenUser.PROPERTY_CAN_CREATE_POLL + " = EXCLUDED." + PollenUser.PROPERTY_CAN_CREATE_POLL + ", " + + PollenUser.PROPERTY_DEFAULT_EMAIL_ADDRESS + " = EXCLUDED." + PollenUser.PROPERTY_DEFAULT_EMAIL_ADDRESS; + + String createUser = "INSERT INTO pollenuser (" + userProperties + ") VALUES (" + userVariables + ")"; + + String saveUser = createUser + " ON CONFLICT (" + PollenUser.PROPERTY_TOPIA_ID + ") DO " + editUser; + + @Update(sql = saveUser, mapper = PollenMapper.class) + int saveUser(PollenUser u); - @Select(sql = "select json_agg(m.*) from pollenuseremailaddress m", mapper = PollenMapper.class) - PollenUserEmailAddress getUserEmail(); + String deleteUser = "DELETE FROM pollenuser" + + " WHERE " + PollenUser.PROPERTY_TOPIA_ID + " = ${u.topiaId}"; - @Select(sql = "SELECT count(*) FROM PollenUser", mapper = PollenMapper.class) - int getUserCount(); + @Update(sql = deleteUser, mapper = PollenMapper.class) + int deleteUser(PollenUser u); } \ No newline at end of file diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenVoteSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenVoteSpgeedDao.java index c030ea01..f0554542 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenVoteSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenVoteSpgeedDao.java @@ -2,7 +2,7 @@ package org.chorem.pollen.persistence.Dao; import org.chorem.pollen.persistence.entity.Vote; -public interface PollenVoteSpgeedDao { +public interface PollenVoteSpgeedDao extends PollenSpgeedDao { String propertieswoForeignKey[] = {Vote.PROPERTY_WEIGHT, Vote.PROPERTY_ANONYMOUS, Vote.PROPERTY_TOPIA_ID}; } \ No newline at end of file diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenVoterListSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenVoterListSpgeedDao.java index 38796255..402ceeb6 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenVoterListSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenVoterListSpgeedDao.java @@ -2,7 +2,7 @@ package org.chorem.pollen.persistence.Dao; import org.chorem.pollen.persistence.entity.VoterList; -public interface PollenVoterListSpgeedDao { +public interface PollenVoterListSpgeedDao extends PollenSpgeedDao { String propertieswoForeignKey[] = {VoterList.PROPERTY_NAME, VoterList.PROPERTY_WEIGHT, VoterList.PROPERTY_TOPIA_ID}; diff --git a/pollen-persistence/src/main/resources/db/migration/postgresql/V3_3_0_2__alter_default_TopiaCreateDate.sql b/pollen-persistence/src/main/resources/db/migration/postgresql/V3_3_0_2__alter_default_TopiaCreateDate.sql new file mode 100644 index 00000000..8e657c47 --- /dev/null +++ b/pollen-persistence/src/main/resources/db/migration/postgresql/V3_3_0_2__alter_default_TopiaCreateDate.sql @@ -0,0 +1,51 @@ +-- +-- Alter default topiaCreateDate +-- + +ALTER TABLE childfavoritelist ALTER COLUMN topiacreatedate SET DEFAULT NOW(); + +ALTER TABLE choice ALTER COLUMN topiacreatedate SET DEFAULT NOW(); + +ALTER TABLE comment ALTER COLUMN topiacreatedate SET DEFAULT NOW(); + +ALTER TABLE emailtoresend ALTER COLUMN topiacreatedate SET DEFAULT NOW(); + +ALTER TABLE favoritelist ALTER COLUMN topiacreatedate SET DEFAULT NOW(); + +ALTER TABLE favoritelistmember ALTER COLUMN topiacreatedate SET DEFAULT NOW(); + +ALTER TABLE flyway_schema_history ALTER COLUMN topiacreatedate SET DEFAULT NOW(); + +ALTER TABLE loginprovider ALTER COLUMN topiacreatedate SET DEFAULT NOW(); + +ALTER TABLE poll ALTER COLUMN topiacreatedate SET DEFAULT NOW(); + +ALTER TABLE pollenprincipal ALTER COLUMN topiacreatedate SET DEFAULT NOW(); + +ALTER TABLE pollenresource ALTER COLUMN topiacreatedate SET DEFAULT NOW(); + +ALTER TABLE pollentoken ALTER COLUMN topiacreatedate SET DEFAULT NOW(); + +ALTER TABLE pollenuser ALTER COLUMN topiacreatedate SET DEFAULT NOW(); + +ALTER TABLE pollenuseremailaddress ALTER COLUMN topiacreatedate SET DEFAULT NOW(); + +ALTER TABLE question ALTER COLUMN topiacreatedate SET DEFAULT NOW(); + +ALTER TABLE report ALTER COLUMN topiacreatedate SET DEFAULT NOW(); + +ALTER TABLE schema_version ALTER COLUMN topiacreatedate SET DEFAULT NOW(); + +ALTER TABLE sessiontoken ALTER COLUMN topiacreatedate SET DEFAULT NOW(); + +ALTER TABLE usercredential ALTER COLUMN topiacreatedate SET DEFAULT NOW(); + +ALTER TABLE vote ALTER COLUMN topiacreatedate SET DEFAULT NOW(); + +ALTER TABLE voter ALTER COLUMN topiacreatedate SET DEFAULT NOW(); + +ALTER TABLE voterlist ALTER COLUMN topiacreatedate SET DEFAULT NOW(); + +ALTER TABLE voterlistmember ALTER COLUMN topiacreatedate SET DEFAULT NOW(); + +ALTER TABLE votetochoice ALTER COLUMN topiacreatedate SET DEFAULT NOW(); -- 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 69a1844a6a293caf521ff2cecfa7d79f1b06ed4f Author: Killian <killian.herbreteau@epitech.eu> Date: Fri Oct 25 11:57:12 2019 +0200 adding mapping for dao --- .../chorem/pollen/persistence/PollenMapper.java | 30 ++++++++++++++-------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/PollenMapper.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/PollenMapper.java index be4da17a..f0b86dce 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/PollenMapper.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/PollenMapper.java @@ -4,9 +4,12 @@ import com.fasterxml.jackson.core.Version; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.module.SimpleAbstractTypeResolver; import com.fasterxml.jackson.databind.module.SimpleModule; +import com.google.common.math.BigIntegerMath; import org.chorem.pollen.persistence.entity.*; import org.nuiton.spgeed.mapper.JsonMapper; +import java.math.BigInteger; + public class PollenMapper extends JsonMapper { @Override @@ -17,21 +20,28 @@ public class PollenMapper extends JsonMapper { SimpleAbstractTypeResolver resolver = new SimpleAbstractTypeResolver(); - resolver.addMapping(PollenUser.class, PollenUserImpl.class); - resolver.addMapping(PollenUserEmailAddress.class, PollenUserEmailAddressImpl.class); - resolver.addMapping(Poll.class, PollImpl.class); - resolver.addMapping(PollenPrincipal.class, PollenPrincipalImpl.class); - resolver.addMapping(PollenToken.class, PollenTokenImpl.class); - resolver.addMapping(PollenResource.class, PollenResourceImpl.class); + resolver.addMapping(ChildFavoriteList.class, ChildFavoriteListImpl.class); resolver.addMapping(Choice.class, ChoiceImpl.class); - resolver.addMapping(VoterList.class, VoterListImpl.class); - resolver.addMapping(Vote.class, VoteImpl.class); - resolver.addMapping(VoterListMember.class, VoterListMemberImpl.class); resolver.addMapping(Comment.class, CommentImpl.class); + resolver.addMapping(EmailToResend.class, EmailToResendImpl.class); resolver.addMapping(FavoriteList.class, FavoriteListImpl.class); resolver.addMapping(FavoriteListMember.class, FavoriteListMemberImpl.class); - resolver.addMapping(ChildFavoriteList.class, ChildFavoriteListImpl.class); + resolver.addMapping(LoginProvider.class, LoginProviderImpl.class); + resolver.addMapping(Poll.class, PollImpl.class); + resolver.addMapping(PollenPrincipal.class, PollenPrincipalImpl.class); + resolver.addMapping(PollenResource.class, PollenResourceImpl.class); + resolver.addMapping(PollenToken.class, PollenTokenImpl.class); + resolver.addMapping(PollenUser.class, PollenUserImpl.class); + resolver.addMapping(PollenUserEmailAddress.class, PollenUserEmailAddressImpl.class); + resolver.addMapping(Question.class, QuestionImpl.class); + resolver.addMapping(Report.class, ReportImpl.class); resolver.addMapping(SessionToken.class, SessionTokenImpl.class); + resolver.addMapping(UserCredential.class, UserCredentialImpl.class); + resolver.addMapping(Vote.class, VoteImpl.class); + resolver.addMapping(Voter.class, VoterImpl.class); + resolver.addMapping(VoterList.class, VoterListImpl.class); + resolver.addMapping(VoterListMember.class, VoterListMemberImpl.class); + resolver.addMapping(VoteToChoice.class, VoteToChoiceImpl.class); module.setAbstractTypes(resolver); -- 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 bdc1fe7308a271c0f2d0fe055ad8447373339481 Author: Killian <killian.herbreteau@epitech.eu> Date: Fri Oct 25 11:57:32 2019 +0200 removing old @Path --- .../org/chorem/pollen/rest/api/v1/TransverseApi.java | 17 ----------------- 1 file changed, 17 deletions(-) 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 64fa6be0..1d267338 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 @@ -57,21 +57,4 @@ public class TransverseApi { return transverseService.getStatus(); } - - @Path("/spgeed") - @GET - public PollenUserBean getSpgeed(@Context TransverseService transverseService) { - - return transverseService.getSpgeed(); - - } - - @Path("/email") - @GET - public PollenUserEmailAddressBean getEmail(@Context TransverseService transverseService) { - - return transverseService.getEmail(); - } - - } -- 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 2c3b7b25a3cd076d830800eb6c67f406206c091e Author: Killian <killian.herbreteau@epitech.eu> Date: Fri Oct 25 12:00:06 2019 +0200 passing topia from H2 to PostgreSQL --- pollen-rest-api/src/main/resources/pollen-rest-api.properties | 10 +++++----- .../src/test/resources/pollen-rest-api-test.properties | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/pollen-rest-api/src/main/resources/pollen-rest-api.properties b/pollen-rest-api/src/main/resources/pollen-rest-api.properties index b0c56279..c2f1ed41 100644 --- a/pollen-rest-api/src/main/resources/pollen-rest-api.properties +++ b/pollen-rest-api/src/main/resources/pollen-rest-api.properties @@ -18,11 +18,11 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # #L% ### -hibernate.dialect=org.hibernate.dialect.H2Dialect -hibernate.connection.url=jdbc:h2:file:${pollen.data.directory}/db/pollen-rest-api -hibernate.connection.username=sa -hibernate.connection.password=sa -hibernate.connection.driver_class=org.h2.Driver +hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect +hibernate.connection.url=jdbc:postgresql://localhost:5432/pollenprod?allowMultiQueries=true +hibernate.connection.username=pollen +hibernate.connection.password=pollen +hibernate.connection.driver_class=org.postgresql.Driver #hibernate.hbm2ddl.auto=update pollen.version=${project.version} pollen.buildDate=${maven.build.timestamp} diff --git a/pollen-rest-api/src/test/resources/pollen-rest-api-test.properties b/pollen-rest-api/src/test/resources/pollen-rest-api-test.properties index e759ab41..d03610db 100644 --- a/pollen-rest-api/src/test/resources/pollen-rest-api-test.properties +++ b/pollen-rest-api/src/test/resources/pollen-rest-api-test.properties @@ -19,11 +19,11 @@ # #L% ### -hibernate.dialect=org.hibernate.dialect.H2Dialect -hibernate.connection.url=jdbc:h2:file:${pollen.data.directory}/db/pollen-rest-api -hibernate.connection.username=sa -hibernate.connection.password=sa -hibernate.connection.driver_class=org.h2.Driver +hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect +hibernate.connection.url=jdbc:postgresql://localhost:5432/pollenprod?allowMultiQueries=true +hibernate.connection.username=pollen +hibernate.connection.password=pollen +hibernate.connection.driver_class=org.postgresql.Driver #hibernate.hbm2ddl.auto=update pollen.version=${project.version} topia.persistence.topiaIdFactoryClassName=org.nuiton.topia.persistence.internal.ShortTopiaIdFactory -- 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 24cac1f2654b39bea7c03d0f346d7e2cf6e8ebc6 Author: Killian <killian.herbreteau@epitech.eu> Date: Fri Oct 25 12:03:23 2019 +0200 adding embedded PostgreSQL for Spgeed and Topia --- pollen-services/pom.xml | 10 ++++++ .../test/FakePollenApplicationContext.java | 36 ++++++++++------------ 2 files changed, 27 insertions(+), 19 deletions(-) diff --git a/pollen-services/pom.xml b/pollen-services/pom.xml index 77bfad20..99a0d2ec 100644 --- a/pollen-services/pom.xml +++ b/pollen-services/pom.xml @@ -242,6 +242,16 @@ <groupId>org.bouncycastle</groupId> <artifactId>bcpg-jdk15on</artifactId> </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-core</artifactId> + <version>5.3.12.Final</version> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-core</artifactId> + <scope>compile</scope> + </dependency> </dependencies> diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenApplicationContext.java b/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenApplicationContext.java index 28261d1f..f19a93f6 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenApplicationContext.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenApplicationContext.java @@ -47,6 +47,7 @@ import org.junit.runner.Description; import org.nuiton.topia.persistence.BeanTopiaConfiguration; import org.nuiton.topia.persistence.TopiaConfiguration; import org.nuiton.topia.persistence.TopiaConfigurationBuilder; +import org.nuiton.topia.persistence.internal.ShortTopiaIdFactory; import org.nuiton.util.DateUtil; import org.nuiton.util.FileUtil; import ru.yandex.qatools.embed.postgresql.EmbeddedPostgres; @@ -93,6 +94,8 @@ public class FakePollenApplicationContext extends TestWatcher implements PollenA protected final String configurationPath; + protected EmbeddedPostgres embeddedPostgres; + protected static final String TIMESTAMP = String.valueOf(System.nanoTime()); public FakePollenApplicationContext(String configurationPath) { @@ -129,24 +132,6 @@ public class FakePollenApplicationContext extends TestWatcher implements PollenA if (log.isDebugEnabled()) { log.debug("testBasedir: " + testBasedir); } - - - EmbeddedPostgres embeddedPostgres = new EmbeddedPostgres(Main.V9_6); - IRuntimeConfig cachedRuntimeConfig = EmbeddedPostgres.cachedRuntimeConfig(testBasedir.toPath()); - - String jdbcConnectionUrl; - try { - jdbcConnectionUrl = embeddedPostgres.start(cachedRuntimeConfig, "127.0.0.1", currentPortNumber, "pollen", "pollen", "pollen", ImmutableList.of("-E", "UTF-8")); - } catch (IOException e) { - throw new UncheckedIOException("ne peut pas démarrer postgresql", e); - } - - TopiaConfiguration topiaConfiguration = new TopiaConfigurationBuilder() - .forPostgresqlDatabase(jdbcConnectionUrl, "pollen", "pollen") - .useFlyway() - .validateSchemaOnStartup() - .useDefaultConnectionPool() - .build(); init(); } @@ -154,7 +139,7 @@ public class FakePollenApplicationContext extends TestWatcher implements PollenA @Override public void finished(Description description) { - close(); + embeddedPostgres.close(); } @Override @@ -162,6 +147,16 @@ public class FakePollenApplicationContext extends TestWatcher implements PollenA // --- create configuration --- // + embeddedPostgres = new EmbeddedPostgres(Main.V10); + IRuntimeConfig cachedRuntimeConfig = EmbeddedPostgres.cachedRuntimeConfig(testBasedir.toPath()); + + String jdbcConnectionUrl; + try { + jdbcConnectionUrl = embeddedPostgres.start(cachedRuntimeConfig, "127.0.0.1", currentPortNumber, "pollenprod", "pollen", "pollen", ImmutableList.of("-E", "UTF-8")); + } catch (IOException e) { + throw new UncheckedIOException("ne peut pas démarrer postgresql", e); + } + Properties defaultvalues = new Properties(); defaultvalues.put(PollenServicesConfigOption.DATA_DIRECTORY.getKey(), testBasedir.getAbsolutePath()); @@ -169,8 +164,11 @@ public class FakePollenApplicationContext extends TestWatcher implements PollenA // --- create topia application context --- // + Map<String, String> topiaProperties = configuration.getTopiaProperties(); BeanTopiaConfiguration topiaConfiguration = new TopiaConfigurationBuilder().readMap(topiaProperties); + topiaConfiguration.setJdbcConnectionUrl(jdbcConnectionUrl); + topiaConfiguration.setTopiaIdFactoryClass(ShortTopiaIdFactory.class); applicationContext = new PollenTopiaApplicationContext(topiaConfiguration); } -- 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 71e8819dfeb162c222a2869988c82e53f209e2a2 Author: Killian <killian.herbreteau@epitech.eu> Date: Fri Oct 25 12:05:03 2019 +0200 adding generic get Spgeed DAO --- .../services/service/PollenServiceSupport.java | 90 +++++++++++++++++++++- .../pollen/services/service/TransverseService.java | 18 ----- .../service/security/SpgeedDummyService.java | 71 ----------------- 3 files changed, 88 insertions(+), 91 deletions(-) diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenServiceSupport.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenServiceSupport.java index 37effb9c..fd88b8a9 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenServiceSupport.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenServiceSupport.java @@ -28,10 +28,13 @@ import com.google.common.collect.Maps; import com.google.common.collect.Multimap; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.chorem.pollen.persistence.Dao.*; +import org.chorem.pollen.persistence.PollenMapper; import org.chorem.pollen.persistence.PollenPersistenceContext; import org.chorem.pollen.persistence.entity.*; import org.chorem.pollen.services.PollenService; import org.chorem.pollen.services.PollenServiceContext; +import org.chorem.pollen.services.PollenTechnicalException; import org.chorem.pollen.services.PollenUIContext; import org.chorem.pollen.services.bean.PaginationParameterBean; import org.chorem.pollen.services.bean.PaginationResultBean; @@ -44,6 +47,9 @@ import org.chorem.pollen.services.service.security.PollenInvalidPermissionExcept import org.chorem.pollen.services.service.security.PollenPermission; import org.chorem.pollen.services.service.security.PollenSecurityContext; import org.chorem.pollen.services.service.security.SecurityService; +import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider; +import org.hibernate.internal.SessionFactoryImpl; +import org.nuiton.spgeed.SqlSession; import org.nuiton.topia.persistence.TopiaDao; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.TopiaIdFactory; @@ -51,6 +57,8 @@ import org.nuiton.util.StringUtil; import org.nuiton.util.pagination.PaginationParameter; import org.nuiton.util.pagination.PaginationResult; +import javax.sql.DataSource; +import java.sql.SQLException; import java.util.Collection; import java.util.Date; import java.util.Locale; @@ -69,6 +77,8 @@ public abstract class PollenServiceSupport implements PollenService { private static Map<String, Object> ENTITY_LOCK_BY_ID = Maps.newHashMap(); + protected SqlSession spgeedSession = null; + public static synchronized Object getLock(String id) { return ENTITY_LOCK_BY_ID. computeIfAbsent(id, id2 -> new Object()); } @@ -196,26 +206,72 @@ public abstract class PollenServiceSupport implements PollenService { return getPersistenceContext().getChoiceDao(); } + protected PollenChoiceSpgeedDao getSpgeedChoiceDao() { + return getSpgeedDao(PollenChoiceSpgeedDao.class); + } + + protected SqlSession getSpgeedSqlSession() { + if (spgeedSession == null) { + SessionFactoryImpl hibernateFactory = (SessionFactoryImpl) getPersistenceContext().getHibernateSupport().getHibernateFactory(); + ConnectionProvider connectionProvider = hibernateFactory.getServiceRegistry().getService(ConnectionProvider.class); + DataSource dataSource = connectionProvider.unwrap(DataSource.class); + + try (SqlSession session = new SqlSession(dataSource)) { + spgeedSession = session; + } catch(SQLException e) { + throw new PollenTechnicalException("erreur lors du chargement du Dao de Spgeed", e); + } + } + return spgeedSession; + } + + protected <E extends PollenSpgeedDao> E getSpgeedDao(Class<E> daoClass) { + SqlSession session = getSpgeedSqlSession(); + session.setDefaultMapper(PollenMapper.class); + + return session.getDao(daoClass); + } + protected CommentTopiaDao getCommentDao() { return getPersistenceContext().getCommentDao(); } + protected PollenCommentSpgeedDao getSpgeedCommentDao() { + return getSpgeedDao(PollenCommentSpgeedDao.class); + } + protected FavoriteListTopiaDao getFavoriteListDao() { return getPersistenceContext().getFavoriteListDao(); } + protected PollenFavoriteListSpgeedDao getSpgeedFavoriteListDao() { + return getSpgeedDao(PollenFavoriteListSpgeedDao.class); + } + protected FavoriteListMemberTopiaDao getFavoriteListMemberDao() { return getPersistenceContext().getFavoriteListMemberDao(); } + protected PollenFavoriteListMemberSpgeedDao getSpgeedFavoriteListMemberDao() { + return getSpgeedDao(PollenFavoriteListMemberSpgeedDao.class); + } + protected ChildFavoriteListTopiaDao getChildFavoriteListDao() { return getPersistenceContext().getChildFavoriteListDao(); } + protected PollenChildFavoriteListSpgeedDao getSpgeedChildFavoriteListDao() { + return getSpgeedDao(PollenChildFavoriteListSpgeedDao.class); + } + protected PollTopiaDao getPollDao() { return getPersistenceContext().getPollDao(); } + protected PollenPollSpgeedDao getSpgeedPollDao() { + return getSpgeedDao(PollenPollSpgeedDao.class); + } + protected QuestionTopiaDao getQuestionDao() { return getPersistenceContext().getQuestionDao(); } @@ -224,22 +280,42 @@ public abstract class PollenServiceSupport implements PollenService { return getPersistenceContext().getPollenPrincipalDao(); } + protected PollenPrincipalSpgeedDao getSpgeedPollenPrincipalDao() { + return getSpgeedDao(PollenPrincipalSpgeedDao.class); + } + protected PollenResourceTopiaDao getPollenResourceDao() { return getPersistenceContext().getPollenResourceDao(); } + protected PollenResourceSpgeedDao getSpgeedRessourceDao() { + return getSpgeedDao(PollenResourceSpgeedDao.class); + } + protected PollenUserTopiaDao getPollenUserDao() { return getPersistenceContext().getPollenUserDao(); } + protected PollenUserSpgeedDao getSpgeedUserDao() { + return getSpgeedDao(PollenUserSpgeedDao.class); + } + protected PollenUserEmailAddressTopiaDao getPollenUserEmailAddressDao() { return getPersistenceContext().getPollenUserEmailAddressDao(); } + protected PollenUserEmailAddressSpgeedDao getSpgeedUserEmailAddressDao() { + return getSpgeedDao(PollenUserEmailAddressSpgeedDao.class); + } + protected UserCredentialTopiaDao getUserCredentialDao() { return getPersistenceContext().getUserCredentialDao(); } + protected PollenUserCredentialSpgeedDao getSpgeedUserCredentialDao() { + return getSpgeedDao(PollenUserCredentialSpgeedDao.class); + } + protected ReportTopiaDao getReportTopiaDao() { return getPersistenceContext().getReportDao(); } @@ -248,10 +324,18 @@ public abstract class PollenServiceSupport implements PollenService { return getPersistenceContext().getSessionTokenDao(); } + protected PollenSessionTokenSpgeedDao getSpgeedSessionTokenDao() { + return getSpgeedDao(PollenSessionTokenSpgeedDao.class); + } + protected VoteTopiaDao getVoteDao() { return getPersistenceContext().getVoteDao(); } + protected PollenVoteSpgeedDao getSpgeedVoteDao() { + return getSpgeedDao(PollenVoteSpgeedDao.class); + } + protected VoteToChoiceTopiaDao getVoteToChoiceDao() { return getPersistenceContext().getVoteToChoiceDao(); } @@ -260,6 +344,10 @@ public abstract class PollenServiceSupport implements PollenService { return getPersistenceContext().getVoterListDao(); } + protected PollenVoterListSpgeedDao getSpgeedVoterListDao() { + return getSpgeedDao(PollenVoterListSpgeedDao.class); + } + protected VoterListMemberTopiaDao getVoterListMemberDao() { return getPersistenceContext().getVoterListMemberDao(); } @@ -479,9 +567,7 @@ public abstract class PollenServiceSupport implements PollenService { } protected <E extends TopiaEntity, B extends PollenBean<E>> PaginationResultBean<B> toPaginationListBean(PaginationResult<E> entities, Function<E, B> beanFunction) { - return PollenBeans.toBean(entities, beanFunction); - } protected <E extends TopiaEntity> PollenEntityId<E> getPollenEntityId(E entity) { 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 7347cdcc..b9818a68 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 @@ -60,24 +60,6 @@ public class TransverseService extends PollenServiceSupport { return bean; } - public PollenUserBean getSpgeed() { - - SpgeedDummyService spgeedDummyService = new SpgeedDummyService(); - PollenUser user = spgeedDummyService.getPollenUser(); - PollenUserService pollenUserService = newService(PollenUserService.class); - - 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 5bbfafc6..32622031 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 @@ -48,76 +48,5 @@ public class SpgeedDummyService { } } - public Poll[] getallPoll() { - DataSource ds = getdb(); - - try (SqlSession session = new SqlSession(ds)) { - session.setDefaultMapper(PollenMapper.class); - - PollenPollSpgeedDao dao = session.getDao(PollenPollSpgeedDao.class); - - return (dao.getallpoll()); - } catch(SQLException e) { - throw new PollenTechnicalException("erreur lors du chargement d'un sondage", e); - } - } - - public PollenUser getPollenUser() { - - DataSource ds = getdb(); - - try (SqlSession session = new SqlSession(ds)) { - - PollenUserSpgeedDao dao = session.getDao(PollenUserSpgeedDao.class); - - return (dao.getFirstUser()); - } catch(SQLException e) { - throw new PollenTechnicalException("erreur lors du chargement d'un utilisateur", e); - } - - } - - public PollenUser[] getallPollenUser() { - - DataSource ds = getdb(); - - try (SqlSession session = new SqlSession(ds)) { - - PollenUserSpgeedDao dao = session.getDao(PollenUserSpgeedDao.class); - - return (dao.getallUser()); - } catch(SQLException e) { - throw new PollenTechnicalException("erreur lors du chargement d'un utilisateur", e); - } - - } - - public PollenUserEmailAddress getPollenUserEmailaddress() { - - DataSource ds = getdb(); - - try (SqlSession session = new SqlSession(ds)) { - - PollenUserSpgeedDao dao = session.getDao(PollenUserSpgeedDao.class); - - return (dao.getUserEmail()); - } catch(SQLException e) { - throw new PollenTechnicalException("erreur lors du chargement d'une address mail", e); - } - } - - public int getPollenUsercount() { - - DataSource ds = getdb(); - - try (SqlSession session = new SqlSession(ds)) { - - PollenUserSpgeedDao dao = session.getDao(PollenUserSpgeedDao.class); - - return (dao.getUserCount()); - } catch(SQLException e) { - throw new PollenTechnicalException("erreur lors du chargement d'un utilisateur", e); - } - } } -- 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 777e10593dc2e84b1fa288f65c80fd3e7e381836 Author: Killian <killian.herbreteau@epitech.eu> Date: Fri Oct 25 12:05:45 2019 +0200 patching old Spgeed Test for Chunk --- .../src/test/java/org/chorem/pollen/services/SpgeedTest.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/pollen-services/src/test/java/org/chorem/pollen/services/SpgeedTest.java b/pollen-services/src/test/java/org/chorem/pollen/services/SpgeedTest.java index 0f9b77e7..4c4fc009 100644 --- a/pollen-services/src/test/java/org/chorem/pollen/services/SpgeedTest.java +++ b/pollen-services/src/test/java/org/chorem/pollen/services/SpgeedTest.java @@ -3,6 +3,7 @@ package org.chorem.pollen.services; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.MapperFeature; import com.fasterxml.jackson.databind.ObjectMapper; +import org.chorem.pollen.persistence.Dao.PollenPollSpgeedDao; import org.chorem.pollen.persistence.Dao.PollenUserSpgeedDao; import org.chorem.pollen.persistence.PollenTopiaApplicationContext; import org.chorem.pollen.persistence.PollenTopiaPersistenceContext; @@ -12,7 +13,7 @@ import org.chorem.pollen.services.test.FakePollenApplicationContext; import org.junit.Assert; import org.junit.Rule; import org.junit.Test; -import org.nuiton.spgeed.SqlSession; +import org.nuiton.spgeed.Chunk; import java.util.List; @@ -94,15 +95,15 @@ public class SpgeedTest { @Test public void testUserDeserializationCallDB() { SpgeedDummyService spgeedDummyService = new SpgeedDummyService(); - PollenUser[] pollenUser = spgeedDummyService.getallPollenUser(); + Chunk<PollenUser> pollenUser = spgeedDummyService.getSpgeedDao(PollenUserSpgeedDao.class).getAllUsers(Chunk.restart(0, 10), PollenUser.PROPERTY_NAME); + System.out.println(pollenUser); Assert.assertNotNull(pollenUser); } @Test public void testPollLink() { SpgeedDummyService spgeedDummyService = new SpgeedDummyService(); - Poll[] PollArray = spgeedDummyService.getallPoll(); - System.out.println(PollArray.length); + Poll[] PollArray = spgeedDummyService.getSpgeedDao(PollenPollSpgeedDao.class).getallpoll(); /* Testing foreign key value */ Assert.assertNotNull(PollArray); Assert.assertNotNull(PollArray[0]); @@ -194,7 +195,7 @@ public class SpgeedTest { long beforSpgeed = System.currentTimeMillis(); SpgeedDummyService spgeedDummyService = new SpgeedDummyService(); - spgeedPollArray = spgeedDummyService.getallPoll(); + spgeedPollArray = spgeedDummyService.getSpgeedDao(PollenPollSpgeedDao.class).getallpoll(); for (int i = 0; i < spgeedPollArray.length; i++) { testPoll(spgeedPollArray[i]); -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
participants (1)
-
chorem.org scm