From b8bb77e80773908fcb588ba26e5795dded20a82f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C5=82awek=20Zatorski?= Date: Sun, 17 Nov 2024 16:03:09 +0100 Subject: [PATCH] new fields in TransactionItem.java active and relationship to registration --- .jhipster/TransactionItem.json | 13 +++++++ .yo-rc.json | 2 +- .../com/sasiedzi/event/domain/Charge.java | 2 +- .../java/com/sasiedzi/event/domain/Event.java | 2 +- .../sasiedzi/event/domain/Registration.java | 37 +++++++++++++++++++ .../sasiedzi/event/domain/Transaction.java | 2 +- .../event/domain/TransactionItem.java | 34 +++++++++++++++++ .../sasiedzi/event/domain/UserAccount.java | 2 +- .../repository/TransactionItemRepository.java | 8 ++-- .../web/rest/TransactionItemResource.java | 3 ++ ...113151058_added_entity_TransactionItem.xml | 7 ++++ ...ded_entity_constraints_TransactionItem.xml | 7 ++++ .../liquibase/fake-data/transaction_item.csv | 2 +- .../event/domain/RegistrationTest.java | 25 +++++++++++++ .../event/domain/TransactionItemAsserts.java | 6 ++- .../event/domain/TransactionItemTest.java | 13 +++++++ .../web/rest/TransactionItemResourceIT.java | 19 ++++++---- 17 files changed, 166 insertions(+), 18 deletions(-) diff --git a/.jhipster/TransactionItem.json b/.jhipster/TransactionItem.json index c2c89b0..4377046 100644 --- a/.jhipster/TransactionItem.json +++ b/.jhipster/TransactionItem.json @@ -11,6 +11,11 @@ "fieldName": "comment", "fieldType": "String", "fieldValidateRules": [] + }, + { + "fieldName": "locked", + "fieldType": "Boolean", + "fieldValidateRules": [] } ], "name": "TransactionItem", @@ -39,6 +44,14 @@ "relationshipName": "event", "relationshipSide": "left", "relationshipType": "many-to-one" + }, + { + "otherEntityField": "playerName", + "otherEntityName": "registration", + "otherEntityRelationshipName": "transactionItem", + "relationshipName": "registration", + "relationshipSide": "left", + "relationshipType": "many-to-one" } ], "searchEngine": "no", diff --git a/.yo-rc.json b/.yo-rc.json index 8f2035a..d5dd130 100644 --- a/.yo-rc.json +++ b/.yo-rc.json @@ -18,7 +18,7 @@ "entities": ["Charge", "Event", "Registration", "Transaction", "UserAccount", "TransactionItem"], "feignClient": null, "jhipsterVersion": "8.7.2", - "lastLiquibaseTimestamp": 1731510658000, + "lastLiquibaseTimestamp": 1731505842000, "messageBroker": false, "microfrontend": null, "microfrontends": [], diff --git a/src/main/java/com/sasiedzi/event/domain/Charge.java b/src/main/java/com/sasiedzi/event/domain/Charge.java index 5016913..ace8d69 100644 --- a/src/main/java/com/sasiedzi/event/domain/Charge.java +++ b/src/main/java/com/sasiedzi/event/domain/Charge.java @@ -42,7 +42,7 @@ public class Charge implements Serializable { private Event event; @ManyToOne(fetch = FetchType.LAZY) - @JsonIgnoreProperties(value = { "user", "event" }, allowSetters = true) + @JsonIgnoreProperties(value = { "user", "event", "transactionItems" }, allowSetters = true) private Registration registration; @ManyToOne(fetch = FetchType.LAZY) diff --git a/src/main/java/com/sasiedzi/event/domain/Event.java b/src/main/java/com/sasiedzi/event/domain/Event.java index 1fc4b0b..6490170 100644 --- a/src/main/java/com/sasiedzi/event/domain/Event.java +++ b/src/main/java/com/sasiedzi/event/domain/Event.java @@ -44,7 +44,7 @@ public class Event implements Serializable { private String comment; @OneToMany(fetch = FetchType.LAZY, mappedBy = "event") - @JsonIgnoreProperties(value = { "user", "event" }, allowSetters = true) + @JsonIgnoreProperties(value = { "user", "event", "transactionItems" }, allowSetters = true) private Set registrations = new HashSet<>(); @OneToMany(fetch = FetchType.LAZY, mappedBy = "event") diff --git a/src/main/java/com/sasiedzi/event/domain/Registration.java b/src/main/java/com/sasiedzi/event/domain/Registration.java index a75be2f..69038e0 100644 --- a/src/main/java/com/sasiedzi/event/domain/Registration.java +++ b/src/main/java/com/sasiedzi/event/domain/Registration.java @@ -5,6 +5,8 @@ import jakarta.persistence.*; import jakarta.validation.constraints.*; import java.io.Serializable; import java.time.ZonedDateTime; +import java.util.HashSet; +import java.util.Set; /** * A Registration. @@ -44,6 +46,10 @@ public class Registration implements Serializable { @JsonIgnoreProperties(value = { "registrations", "transactions" }, allowSetters = true) private Event event; + @OneToMany(fetch = FetchType.LAZY, mappedBy = "registration") + @JsonIgnoreProperties(value = { "userAccount", "transaction", "event", "registration" }, allowSetters = true) + private Set transactionItems = new HashSet<>(); + // jhipster-needle-entity-add-field - JHipster will add fields here public Long getId() { @@ -137,6 +143,37 @@ public class Registration implements Serializable { return this; } + public Set getTransactionItems() { + return this.transactionItems; + } + + public void setTransactionItems(Set transactionItems) { + if (this.transactionItems != null) { + this.transactionItems.forEach(i -> i.setRegistration(null)); + } + if (transactionItems != null) { + transactionItems.forEach(i -> i.setRegistration(this)); + } + this.transactionItems = transactionItems; + } + + public Registration transactionItems(Set transactionItems) { + this.setTransactionItems(transactionItems); + return this; + } + + public Registration addTransactionItem(TransactionItem transactionItem) { + this.transactionItems.add(transactionItem); + transactionItem.setRegistration(this); + return this; + } + + public Registration removeTransactionItem(TransactionItem transactionItem) { + this.transactionItems.remove(transactionItem); + transactionItem.setRegistration(null); + return this; + } + // jhipster-needle-entity-add-getters-setters - JHipster will add getters and setters here @Override diff --git a/src/main/java/com/sasiedzi/event/domain/Transaction.java b/src/main/java/com/sasiedzi/event/domain/Transaction.java index e458cdd..2fee836 100644 --- a/src/main/java/com/sasiedzi/event/domain/Transaction.java +++ b/src/main/java/com/sasiedzi/event/domain/Transaction.java @@ -39,7 +39,7 @@ public class Transaction implements Serializable { private Event event; @OneToMany(fetch = FetchType.LAZY, mappedBy = "transaction") - @JsonIgnoreProperties(value = { "userAccount", "transaction", "event" }, allowSetters = true) + @JsonIgnoreProperties(value = { "userAccount", "transaction", "event", "registration" }, allowSetters = true) private Set transactionItems = new HashSet<>(); // jhipster-needle-entity-add-field - JHipster will add fields here diff --git a/src/main/java/com/sasiedzi/event/domain/TransactionItem.java b/src/main/java/com/sasiedzi/event/domain/TransactionItem.java index d359658..b474834 100644 --- a/src/main/java/com/sasiedzi/event/domain/TransactionItem.java +++ b/src/main/java/com/sasiedzi/event/domain/TransactionItem.java @@ -27,6 +27,9 @@ public class TransactionItem implements Serializable { @Column(name = "comment") private String comment; + @Column(name = "locked") + private Boolean locked; + @ManyToOne(fetch = FetchType.LAZY) @JsonIgnoreProperties(value = { "users", "transactionItems" }, allowSetters = true) private UserAccount userAccount; @@ -39,6 +42,10 @@ public class TransactionItem implements Serializable { @JsonIgnoreProperties(value = { "registrations", "transactions" }, allowSetters = true) private Event event; + @ManyToOne(fetch = FetchType.LAZY) + @JsonIgnoreProperties(value = { "user", "event", "transactionItems" }, allowSetters = true) + private Registration registration; + // jhipster-needle-entity-add-field - JHipster will add fields here public Long getId() { @@ -80,6 +87,19 @@ public class TransactionItem implements Serializable { this.comment = comment; } + public Boolean getLocked() { + return this.locked; + } + + public TransactionItem locked(Boolean locked) { + this.setLocked(locked); + return this; + } + + public void setLocked(Boolean locked) { + this.locked = locked; + } + public UserAccount getUserAccount() { return this.userAccount; } @@ -119,6 +139,19 @@ public class TransactionItem implements Serializable { return this; } + public Registration getRegistration() { + return this.registration; + } + + public void setRegistration(Registration registration) { + this.registration = registration; + } + + public TransactionItem registration(Registration registration) { + this.setRegistration(registration); + return this; + } + // jhipster-needle-entity-add-getters-setters - JHipster will add getters and setters here @Override @@ -145,6 +178,7 @@ public class TransactionItem implements Serializable { "id=" + getId() + ", amount=" + getAmount() + ", comment='" + getComment() + "'" + + ", locked='" + getLocked() + "'" + "}"; } } diff --git a/src/main/java/com/sasiedzi/event/domain/UserAccount.java b/src/main/java/com/sasiedzi/event/domain/UserAccount.java index 23181fb..03afd93 100644 --- a/src/main/java/com/sasiedzi/event/domain/UserAccount.java +++ b/src/main/java/com/sasiedzi/event/domain/UserAccount.java @@ -34,7 +34,7 @@ public class UserAccount implements Serializable { private Set users = new HashSet<>(); @OneToMany(fetch = FetchType.LAZY, mappedBy = "userAccount") - @JsonIgnoreProperties(value = { "userAccount", "transaction", "event" }, allowSetters = true) + @JsonIgnoreProperties(value = { "userAccount", "transaction", "event", "registration" }, allowSetters = true) private Set transactionItems = new HashSet<>(); // jhipster-needle-entity-add-field - JHipster will add fields here diff --git a/src/main/java/com/sasiedzi/event/repository/TransactionItemRepository.java b/src/main/java/com/sasiedzi/event/repository/TransactionItemRepository.java index c51bde1..a6eb432 100644 --- a/src/main/java/com/sasiedzi/event/repository/TransactionItemRepository.java +++ b/src/main/java/com/sasiedzi/event/repository/TransactionItemRepository.java @@ -27,16 +27,18 @@ public interface TransactionItemRepository extends JpaRepository findAllWithToOneRelationships(Pageable pageable); - @Query("select transactionItem from TransactionItem transactionItem left join fetch transactionItem.event") + @Query( + "select transactionItem from TransactionItem transactionItem left join fetch transactionItem.event left join fetch transactionItem.registration" + ) List findAllWithToOneRelationships(); @Query( - "select transactionItem from TransactionItem transactionItem left join fetch transactionItem.event where transactionItem.id =:id" + "select transactionItem from TransactionItem transactionItem left join fetch transactionItem.event left join fetch transactionItem.registration where transactionItem.id =:id" ) Optional findOneWithToOneRelationships(@Param("id") Long id); } diff --git a/src/main/java/com/sasiedzi/event/web/rest/TransactionItemResource.java b/src/main/java/com/sasiedzi/event/web/rest/TransactionItemResource.java index 471afea..14617dd 100644 --- a/src/main/java/com/sasiedzi/event/web/rest/TransactionItemResource.java +++ b/src/main/java/com/sasiedzi/event/web/rest/TransactionItemResource.java @@ -127,6 +127,9 @@ public class TransactionItemResource { if (transactionItem.getComment() != null) { existingTransactionItem.setComment(transactionItem.getComment()); } + if (transactionItem.getLocked() != null) { + existingTransactionItem.setLocked(transactionItem.getLocked()); + } return existingTransactionItem; }) diff --git a/src/main/resources/config/liquibase/changelog/20241113151058_added_entity_TransactionItem.xml b/src/main/resources/config/liquibase/changelog/20241113151058_added_entity_TransactionItem.xml index 07efe0f..31c943b 100644 --- a/src/main/resources/config/liquibase/changelog/20241113151058_added_entity_TransactionItem.xml +++ b/src/main/resources/config/liquibase/changelog/20241113151058_added_entity_TransactionItem.xml @@ -20,6 +20,9 @@ + + + @@ -29,6 +32,9 @@ + + + @@ -52,6 +58,7 @@ + diff --git a/src/main/resources/config/liquibase/changelog/20241113151058_added_entity_constraints_TransactionItem.xml b/src/main/resources/config/liquibase/changelog/20241113151058_added_entity_constraints_TransactionItem.xml index 011b322..03d468d 100644 --- a/src/main/resources/config/liquibase/changelog/20241113151058_added_entity_constraints_TransactionItem.xml +++ b/src/main/resources/config/liquibase/changelog/20241113151058_added_entity_constraints_TransactionItem.xml @@ -30,5 +30,12 @@ referencedColumnNames="id" referencedTableName="event" /> + + diff --git a/src/main/resources/config/liquibase/fake-data/transaction_item.csv b/src/main/resources/config/liquibase/fake-data/transaction_item.csv index 51a03d9..e411ae8 100644 --- a/src/main/resources/config/liquibase/fake-data/transaction_item.csv +++ b/src/main/resources/config/liquibase/fake-data/transaction_item.csv @@ -1,4 +1,4 @@ -id;amount;comment +id;amount;comment;locked 1;11521.38;per cautiously out 2;974.75;since below bah 3;25825.62;outlaw diff --git a/src/test/java/com/sasiedzi/event/domain/RegistrationTest.java b/src/test/java/com/sasiedzi/event/domain/RegistrationTest.java index 2477ede..693bad4 100644 --- a/src/test/java/com/sasiedzi/event/domain/RegistrationTest.java +++ b/src/test/java/com/sasiedzi/event/domain/RegistrationTest.java @@ -2,9 +2,12 @@ package com.sasiedzi.event.domain; import static com.sasiedzi.event.domain.EventTestSamples.*; import static com.sasiedzi.event.domain.RegistrationTestSamples.*; +import static com.sasiedzi.event.domain.TransactionItemTestSamples.*; import static org.assertj.core.api.Assertions.assertThat; import com.sasiedzi.event.web.rest.TestUtil; +import java.util.HashSet; +import java.util.Set; import org.junit.jupiter.api.Test; class RegistrationTest { @@ -34,4 +37,26 @@ class RegistrationTest { registration.event(null); assertThat(registration.getEvent()).isNull(); } + + @Test + void transactionItemTest() { + Registration registration = getRegistrationRandomSampleGenerator(); + TransactionItem transactionItemBack = getTransactionItemRandomSampleGenerator(); + + registration.addTransactionItem(transactionItemBack); + assertThat(registration.getTransactionItems()).containsOnly(transactionItemBack); + assertThat(transactionItemBack.getRegistration()).isEqualTo(registration); + + registration.removeTransactionItem(transactionItemBack); + assertThat(registration.getTransactionItems()).doesNotContain(transactionItemBack); + assertThat(transactionItemBack.getRegistration()).isNull(); + + registration.transactionItems(new HashSet<>(Set.of(transactionItemBack))); + assertThat(registration.getTransactionItems()).containsOnly(transactionItemBack); + assertThat(transactionItemBack.getRegistration()).isEqualTo(registration); + + registration.setTransactionItems(new HashSet<>()); + assertThat(registration.getTransactionItems()).doesNotContain(transactionItemBack); + assertThat(transactionItemBack.getRegistration()).isNull(); + } } diff --git a/src/test/java/com/sasiedzi/event/domain/TransactionItemAsserts.java b/src/test/java/com/sasiedzi/event/domain/TransactionItemAsserts.java index b241235..984d4cc 100644 --- a/src/test/java/com/sasiedzi/event/domain/TransactionItemAsserts.java +++ b/src/test/java/com/sasiedzi/event/domain/TransactionItemAsserts.java @@ -49,7 +49,8 @@ public class TransactionItemAsserts { assertThat(expected) .as("Verify TransactionItem relevant properties") .satisfies(e -> assertThat(e.getAmount()).as("check amount").usingComparator(bigDecimalCompareTo).isEqualTo(actual.getAmount())) - .satisfies(e -> assertThat(e.getComment()).as("check comment").isEqualTo(actual.getComment())); + .satisfies(e -> assertThat(e.getComment()).as("check comment").isEqualTo(actual.getComment())) + .satisfies(e -> assertThat(e.getLocked()).as("check locked").isEqualTo(actual.getLocked())); } /** @@ -63,6 +64,7 @@ public class TransactionItemAsserts { .as("Verify TransactionItem relationships") .satisfies(e -> assertThat(e.getUserAccount()).as("check userAccount").isEqualTo(actual.getUserAccount())) .satisfies(e -> assertThat(e.getTransaction()).as("check transaction").isEqualTo(actual.getTransaction())) - .satisfies(e -> assertThat(e.getEvent()).as("check event").isEqualTo(actual.getEvent())); + .satisfies(e -> assertThat(e.getEvent()).as("check event").isEqualTo(actual.getEvent())) + .satisfies(e -> assertThat(e.getRegistration()).as("check registration").isEqualTo(actual.getRegistration())); } } diff --git a/src/test/java/com/sasiedzi/event/domain/TransactionItemTest.java b/src/test/java/com/sasiedzi/event/domain/TransactionItemTest.java index ede5dd7..86a06fe 100644 --- a/src/test/java/com/sasiedzi/event/domain/TransactionItemTest.java +++ b/src/test/java/com/sasiedzi/event/domain/TransactionItemTest.java @@ -1,6 +1,7 @@ package com.sasiedzi.event.domain; import static com.sasiedzi.event.domain.EventTestSamples.*; +import static com.sasiedzi.event.domain.RegistrationTestSamples.*; import static com.sasiedzi.event.domain.TransactionItemTestSamples.*; import static com.sasiedzi.event.domain.TransactionTestSamples.*; import static com.sasiedzi.event.domain.UserAccountTestSamples.*; @@ -60,4 +61,16 @@ class TransactionItemTest { transactionItem.event(null); assertThat(transactionItem.getEvent()).isNull(); } + + @Test + void registrationTest() { + TransactionItem transactionItem = getTransactionItemRandomSampleGenerator(); + Registration registrationBack = getRegistrationRandomSampleGenerator(); + + transactionItem.setRegistration(registrationBack); + assertThat(transactionItem.getRegistration()).isEqualTo(registrationBack); + + transactionItem.registration(null); + assertThat(transactionItem.getRegistration()).isNull(); + } } diff --git a/src/test/java/com/sasiedzi/event/web/rest/TransactionItemResourceIT.java b/src/test/java/com/sasiedzi/event/web/rest/TransactionItemResourceIT.java index d9db49e..a6856ca 100644 --- a/src/test/java/com/sasiedzi/event/web/rest/TransactionItemResourceIT.java +++ b/src/test/java/com/sasiedzi/event/web/rest/TransactionItemResourceIT.java @@ -49,6 +49,9 @@ class TransactionItemResourceIT { private static final String DEFAULT_COMMENT = "AAAAAAAAAA"; private static final String UPDATED_COMMENT = "BBBBBBBBBB"; + private static final Boolean DEFAULT_LOCKED = false; + private static final Boolean UPDATED_LOCKED = true; + private static final String ENTITY_API_URL = "/api/transaction-items"; private static final String ENTITY_API_URL_ID = ENTITY_API_URL + "/{id}"; @@ -81,7 +84,7 @@ class TransactionItemResourceIT { * if they test an entity which requires the current entity. */ public static TransactionItem createEntity() { - return new TransactionItem().amount(DEFAULT_AMOUNT).comment(DEFAULT_COMMENT); + return new TransactionItem().amount(DEFAULT_AMOUNT).comment(DEFAULT_COMMENT).locked(DEFAULT_LOCKED); } /** @@ -91,7 +94,7 @@ class TransactionItemResourceIT { * if they test an entity which requires the current entity. */ public static TransactionItem createUpdatedEntity() { - return new TransactionItem().amount(UPDATED_AMOUNT).comment(UPDATED_COMMENT); + return new TransactionItem().amount(UPDATED_AMOUNT).comment(UPDATED_COMMENT).locked(UPDATED_LOCKED); } @BeforeEach @@ -163,7 +166,8 @@ class TransactionItemResourceIT { .andExpect(content().contentType(MediaType.APPLICATION_JSON_VALUE)) .andExpect(jsonPath("$.[*].id").value(hasItem(transactionItem.getId().intValue()))) .andExpect(jsonPath("$.[*].amount").value(hasItem(sameNumber(DEFAULT_AMOUNT)))) - .andExpect(jsonPath("$.[*].comment").value(hasItem(DEFAULT_COMMENT))); + .andExpect(jsonPath("$.[*].comment").value(hasItem(DEFAULT_COMMENT))) + .andExpect(jsonPath("$.[*].locked").value(hasItem(DEFAULT_LOCKED.booleanValue()))); } @SuppressWarnings({ "unchecked" }) @@ -196,7 +200,8 @@ class TransactionItemResourceIT { .andExpect(content().contentType(MediaType.APPLICATION_JSON_VALUE)) .andExpect(jsonPath("$.id").value(transactionItem.getId().intValue())) .andExpect(jsonPath("$.amount").value(sameNumber(DEFAULT_AMOUNT))) - .andExpect(jsonPath("$.comment").value(DEFAULT_COMMENT)); + .andExpect(jsonPath("$.comment").value(DEFAULT_COMMENT)) + .andExpect(jsonPath("$.locked").value(DEFAULT_LOCKED.booleanValue())); } @Test @@ -218,7 +223,7 @@ class TransactionItemResourceIT { TransactionItem updatedTransactionItem = transactionItemRepository.findById(transactionItem.getId()).orElseThrow(); // Disconnect from session so that the updates on updatedTransactionItem are not directly saved in db em.detach(updatedTransactionItem); - updatedTransactionItem.amount(UPDATED_AMOUNT).comment(UPDATED_COMMENT); + updatedTransactionItem.amount(UPDATED_AMOUNT).comment(UPDATED_COMMENT).locked(UPDATED_LOCKED); restTransactionItemMockMvc .perform( @@ -303,7 +308,7 @@ class TransactionItemResourceIT { TransactionItem partialUpdatedTransactionItem = new TransactionItem(); partialUpdatedTransactionItem.setId(transactionItem.getId()); - partialUpdatedTransactionItem.comment(UPDATED_COMMENT); + partialUpdatedTransactionItem.amount(UPDATED_AMOUNT).comment(UPDATED_COMMENT); restTransactionItemMockMvc .perform( @@ -335,7 +340,7 @@ class TransactionItemResourceIT { TransactionItem partialUpdatedTransactionItem = new TransactionItem(); partialUpdatedTransactionItem.setId(transactionItem.getId()); - partialUpdatedTransactionItem.amount(UPDATED_AMOUNT).comment(UPDATED_COMMENT); + partialUpdatedTransactionItem.amount(UPDATED_AMOUNT).comment(UPDATED_COMMENT).locked(UPDATED_LOCKED); restTransactionItemMockMvc .perform(