Skip to content

Commit a70110c

Browse files
authored
Merge pull request #633 from felleslosninger/EIN-4945-bug-ved-oppdatering-av-external-id
EIN-4945: Move trigger functionality to entity classes
2 parents 6d98818 + 3b9195e commit a70110c

File tree

13 files changed

+288
-50
lines changed

13 files changed

+288
-50
lines changed

src/main/java/no/einnsyn/backend/entities/innsynskrav/models/Innsynskrav.java

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import jakarta.persistence.JoinColumn;
1010
import jakarta.persistence.ManyToOne;
1111
import jakarta.persistence.PrePersist;
12+
import jakarta.persistence.PreUpdate;
1213
import jakarta.persistence.Table;
1314
import jakarta.validation.constraints.NotNull;
1415
import java.time.Instant;
@@ -70,10 +71,14 @@ public class Innsynskrav extends Base implements Indexable {
7071
private List<InnsynskravStatus> legacyStatus = new ArrayList<>();
7172

7273
// Legacy (this is an IRI)
73-
@NotNull private String rettetMot;
74+
@Column(name = "rettet_mot")
75+
@NotNull
76+
private String legacyRettetMot;
7477

7578
// Legacy (this is an IRI)
76-
@NotNull private String virksomhet;
79+
@Column(name = "virksomhet")
80+
@NotNull
81+
private String legacyVirksomhet;
7782

7883
@PrePersist
7984
@Override
@@ -85,11 +90,25 @@ protected void prePersist() {
8590
}
8691

8792
// Set legacy rettetMot value
88-
setRettetMot(journalpost.getJournalpostIri());
93+
setLegacyRettetMot(journalpost.getLegacyIri());
8994

9095
// Set legacy virksomhet value
9196
if (enhet != null) {
92-
setVirksomhet(enhet.getIri());
97+
setLegacyVirksomhet(enhet.getIri());
98+
}
99+
}
100+
101+
@PreUpdate
102+
@Override
103+
protected void preUpdate() {
104+
super.preUpdate();
105+
106+
if (journalpost != null) {
107+
setLegacyRettetMot(journalpost.getLegacyIri());
108+
}
109+
110+
if (enhet != null) {
111+
setLegacyVirksomhet(enhet.getIri());
93112
}
94113
}
95114
}

src/main/java/no/einnsyn/backend/entities/innsynskravbestilling/models/InnsynskravBestilling.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import jakarta.persistence.OneToMany;
99
import jakarta.persistence.OrderBy;
1010
import jakarta.persistence.PrePersist;
11+
import jakarta.persistence.PreUpdate;
1112
import jakarta.persistence.Table;
1213
import jakarta.validation.constraints.NotNull;
1314
import java.util.ArrayList;
@@ -84,4 +85,14 @@ protected void prePersist() {
8485

8586
setInnsynskravVersion(1);
8687
}
88+
89+
@PreUpdate
90+
@Override
91+
protected void preUpdate() {
92+
super.preUpdate();
93+
94+
if (bruker != null) {
95+
setLegacyBrukerIri("http://data.einnsyn.no/bruker/" + bruker.getBrukerId());
96+
}
97+
}
8798
}

src/main/java/no/einnsyn/backend/entities/journalpost/models/Journalpost.java

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -134,10 +134,12 @@ public class Journalpost extends Registrering implements Indexable {
134134
private Saksmappe saksmappe;
135135

136136
// Legacy
137-
private String journalpostIri;
137+
@Column(name = "journalpost_iri")
138+
private String legacyIri;
138139

139140
// Legacy
140-
private String saksmappeIri;
141+
@Column(name = "saksmappe_iri")
142+
private String legacySaksmappeIri;
141143

142144
/**
143145
* Helper that adds a korrespondansepart to the list of korrespondanseparts and sets the
@@ -176,25 +178,38 @@ public void addDokumentbeskrivelse(Dokumentbeskrivelse db) {
176178
protected void prePersist() {
177179
super.prePersist();
178180

179-
if (journalpostIri == null) {
181+
if (saksmappe != null && saksmappe.getLegacyIri() != null) {
182+
legacySaksmappeIri = saksmappe.getLegacyIri();
183+
}
184+
185+
if (legacyIri == null) {
180186
if (externalId != null && IRIMatcher.matches(externalId)) {
181-
journalpostIri = externalId;
187+
legacyIri = externalId;
182188
} else {
183-
journalpostIri = "http://" + id;
189+
legacyIri = "http://" + id;
184190
// The legacy API requires an externalId
185191
if (externalId == null) {
186-
externalId = journalpostIri;
192+
externalId = legacyIri;
187193
}
188194
}
189195
}
190196
}
191197

192198
@PreUpdate
193-
void preUpdateJournalpost() {
199+
@Override
200+
protected void preUpdate() {
201+
super.preUpdate();
202+
203+
// Keep journalpostIri in sync with externalId
204+
if (externalId != null && !externalId.equals(legacyIri)) {
205+
legacyIri = externalId;
206+
}
207+
208+
// Keep saksmappeIri in sync with parent saksmappe
194209
if (saksmappe != null
195-
&& saksmappe.getSaksmappeIri() != null
196-
&& !saksmappe.getSaksmappeIri().equals(saksmappeIri)) {
197-
saksmappeIri = saksmappe.getSaksmappeIri();
210+
&& saksmappe.getLegacyIri() != null
211+
&& !saksmappe.getLegacyIri().equals(legacySaksmappeIri)) {
212+
legacySaksmappeIri = saksmappe.getLegacyIri();
198213
}
199214
}
200215
}

src/main/java/no/einnsyn/backend/entities/lagretsak/LagretSakService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ public void notifyLagretSak(String lagretSakId) {
148148
saksmappe != null ? saksmappe.getOffentligTittel() : moetemappe.getOffentligTittel();
149149
context.put("title", title);
150150

151-
var iri = saksmappe != null ? saksmappe.getSaksmappeIri() : moetemappe.getMoetemappeIri();
151+
var iri = saksmappe != null ? saksmappe.getLegacyIri() : moetemappe.getLegacyIri();
152152
context.put("iri", iri);
153153

154154
var templateName = saksmappe != null ? "lagretSakSubscription" : "lagretMoeteSubscription";

src/main/java/no/einnsyn/backend/entities/lagretsak/models/LagretSak.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,9 @@ protected void prePersist() {
7070
// Legacy API requires sak_id to be set
7171
if (getLegacySakIri() == null) {
7272
if (saksmappe != null) {
73-
setLegacySakIri(saksmappe.getSaksmappeIri());
73+
setLegacySakIri(saksmappe.getLegacyIri());
7474
} else if (moetemappe != null) {
75-
setLegacySakIri(moetemappe.getMoetemappeIri());
75+
setLegacySakIri(moetemappe.getLegacyIri());
7676
}
7777
}
7878
}

src/main/java/no/einnsyn/backend/entities/lagretsoek/LagretSoekService.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,7 @@ Map<String, Object> getSaksmappeContext(Saksmappe saksmappe) {
352352
var saksmappeMap = new HashMap<String, Object>();
353353
saksmappeMap.put("offentligTittel", truncate(saksmappe.getOffentligTittel()));
354354
saksmappeMap.put("id", saksmappe.getId());
355-
saksmappeMap.put("iri", saksmappe.getSaksmappeIri());
355+
saksmappeMap.put("iri", saksmappe.getLegacyIri());
356356
return saksmappeMap;
357357
}
358358

@@ -364,7 +364,7 @@ Map<String, Object> getJournalpostContext(Journalpost journalpost) {
364364
var journalpostMap = new HashMap<String, Object>();
365365
journalpostMap.put("offentligTittel", truncate(journalpost.getOffentligTittel()));
366366
journalpostMap.put("id", journalpost.getId());
367-
journalpostMap.put("iri", journalpost.getJournalpostIri());
367+
journalpostMap.put("iri", journalpost.getLegacyIri());
368368
journalpostMap.put("saksmappe", getSaksmappeContext(journalpost.getSaksmappe()));
369369
return journalpostMap;
370370
}
@@ -377,7 +377,7 @@ Map<String, Object> getMoetemappeContext(Moetemappe moetemappe) {
377377
var moetemappeMap = new HashMap<String, Object>();
378378
moetemappeMap.put("offentligTittel", truncate(moetemappe.getOffentligTittel()));
379379
moetemappeMap.put("id", moetemappe.getId());
380-
moetemappeMap.put("iri", moetemappe.getMoetemappeIri());
380+
moetemappeMap.put("iri", moetemappe.getLegacyIri());
381381
return moetemappeMap;
382382
}
383383

@@ -389,7 +389,7 @@ Map<String, Object> getMoetesakContext(Moetesak moetesak) {
389389
var moetesakMap = new HashMap<String, Object>();
390390
moetesakMap.put("offentligTittel", truncate(moetesak.getOffentligTittel()));
391391
moetesakMap.put("id", moetesak.getId());
392-
moetesakMap.put("iri", moetesak.getMoetesakIri());
392+
moetesakMap.put("iri", moetesak.getLegacyIri());
393393
return moetesakMap;
394394
}
395395

src/main/java/no/einnsyn/backend/entities/moetedokument/models/Moetedokument.java

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public class Moetedokument extends Registrering {
3636

3737
// Legacy
3838
@Column(name = "møtedokumentregistrering_iri")
39-
private String moetedokumentregistreringIri;
39+
private String legacyIri;
4040

4141
@ManyToOne(fetch = FetchType.LAZY)
4242
@JoinColumn(name = "møtemappe_id", referencedColumnName = "møtemappe_id")
@@ -92,25 +92,38 @@ public void addDokumentbeskrivelse(Dokumentbeskrivelse dokumentbeskrivelse) {
9292
@Override
9393
protected void prePersist() {
9494
// Try to update arkivskaper before super.prePersist()
95-
updateArkivskaper();
95+
if (getMoetemappe() != null
96+
&& getMoetemappe().getUtvalgObjekt() != null
97+
&& !getMoetemappe().getUtvalgObjekt().getIri().equals(getArkivskaper())) {
98+
setArkivskaper(getMoetemappe().getUtvalgObjekt().getIri());
99+
}
96100
super.prePersist();
97101

98102
// Populate required legacy fields
99-
if (moetedokumentregistreringIri == null) {
103+
if (legacyIri == null) {
100104
if (externalId != null && IRIMatcher.matches(externalId)) {
101-
moetedokumentregistreringIri = externalId;
105+
legacyIri = externalId;
102106
} else {
103-
moetedokumentregistreringIri = "http://" + id;
107+
legacyIri = "http://" + id;
104108
// The legacy API requires an externalId
105109
if (externalId == null) {
106-
externalId = moetedokumentregistreringIri;
110+
externalId = legacyIri;
107111
}
108112
}
109113
}
110114
}
111115

112116
@PreUpdate
113-
private void updateArkivskaper() {
117+
@Override
118+
protected void preUpdate() {
119+
super.preUpdate();
120+
121+
// Keep moetedokumentregistreringIri in sync with externalId
122+
if (externalId != null && !externalId.equals(legacyIri)) {
123+
legacyIri = externalId;
124+
}
125+
126+
// Keep arkivskaper in sync with parent moetemappe's utvalgObjekt
114127
if (getMoetemappe() != null
115128
&& getMoetemappe().getUtvalgObjekt() != null
116129
&& !getMoetemappe().getUtvalgObjekt().getIri().equals(getArkivskaper())) {

src/main/java/no/einnsyn/backend/entities/moetemappe/models/Moetemappe.java

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public class Moetemappe extends Mappe implements Indexable {
3737

3838
// Legacy
3939
@Column(name = "møtemappe_iri")
40-
private String moetemappeIri;
40+
private String legacyIri;
4141

4242
@Column(name = "møtenummer")
4343
private String moetenummer;
@@ -117,24 +117,35 @@ public void addMoetedokument(Moetedokument md) {
117117
@Override
118118
protected void prePersist() {
119119
// Try to update arkivskaper before super.prePersist()
120-
updateArkivskaper();
120+
if (utvalgObjekt != null && !utvalgObjekt.getIri().equals(arkivskaper)) {
121+
setArkivskaper(utvalgObjekt.getIri());
122+
}
121123
super.prePersist();
122124

123-
if (moetemappeIri == null) {
125+
if (legacyIri == null) {
124126
if (externalId != null && IRIMatcher.matches(externalId)) {
125-
moetemappeIri = externalId;
127+
legacyIri = externalId;
126128
} else {
127-
moetemappeIri = "http://" + id;
129+
legacyIri = "http://" + id;
128130
// The legacy API requires an externalId
129131
if (externalId == null) {
130-
externalId = moetemappeIri;
132+
externalId = legacyIri;
131133
}
132134
}
133135
}
134136
}
135137

136138
@PreUpdate
137-
private void updateArkivskaper() {
139+
@Override
140+
protected void preUpdate() {
141+
super.preUpdate();
142+
143+
// Keep moetemappeIri in sync with externalId
144+
if (externalId != null && !externalId.equals(legacyIri)) {
145+
legacyIri = externalId;
146+
}
147+
148+
// Keep arkivskaper in sync with utvalgObjekt
138149
if (utvalgObjekt != null && !utvalgObjekt.getIri().equals(arkivskaper)) {
139150
setArkivskaper(utvalgObjekt.getIri());
140151
}

src/main/java/no/einnsyn/backend/entities/moetesak/models/Moetesak.java

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import java.time.Instant;
1616
import java.util.ArrayList;
1717
import java.util.List;
18+
import java.util.Objects;
1819
import lombok.Getter;
1920
import lombok.Setter;
2021
import no.einnsyn.backend.common.indexable.Indexable;
@@ -72,7 +73,7 @@ public class Moetesak extends Registrering implements Indexable {
7273
private Integer legacyId;
7374

7475
@Column(name = "møtesaksregistrering_iri")
75-
private String moetesakIri;
76+
private String legacyIri;
7677

7778
// TODO: When the old API is no longer in use, rename this PG column
7879
@Column(name = "sorteringstype")
@@ -158,27 +159,40 @@ public void addDokumentbeskrivelse(Dokumentbeskrivelse dokumentbeskrivelse) {
158159
@Override
159160
protected void prePersist() {
160161
// Try to update arkivskaper before super.prePersist()
161-
updateArkivskaper();
162+
if (getUtvalgObjekt() != null
163+
&& !Objects.equals(getUtvalgObjekt().getIri(), getArkivskaper())) {
164+
setArkivskaper(getUtvalgObjekt().getIri());
165+
}
162166

163167
super.prePersist();
164168

165169
// Populate required legacy fields. Use id as a replacement for IRIs
166-
if (getMoetesakIri() == null) {
170+
if (getLegacyIri() == null) {
167171
if (externalId != null && IRIMatcher.matches(externalId)) {
168-
moetesakIri = externalId;
172+
legacyIri = externalId;
169173
} else {
170-
moetesakIri = "http://" + id;
174+
legacyIri = "http://" + id;
171175
// The legacy API requires an externalId
172176
if (externalId == null) {
173-
externalId = moetesakIri;
177+
externalId = legacyIri;
174178
}
175179
}
176180
}
177181
}
178182

179183
@PreUpdate
180-
private void updateArkivskaper() {
181-
if (getUtvalgObjekt() != null && getUtvalgObjekt().getIri() != getArkivskaper()) {
184+
@Override
185+
protected void preUpdate() {
186+
super.preUpdate();
187+
188+
// Keep moetesakIri in sync with externalId
189+
if (externalId != null && !externalId.equals(legacyIri)) {
190+
legacyIri = externalId;
191+
}
192+
193+
// Keep arkivskaper in sync with utvalgObjekt
194+
if (getUtvalgObjekt() != null
195+
&& !Objects.equals(getUtvalgObjekt().getIri(), getArkivskaper())) {
182196
setArkivskaper(getUtvalgObjekt().getIri());
183197
}
184198
}

0 commit comments

Comments
 (0)