Skip to content

Commit 809ff13

Browse files
authored
Dev new config (#204)
* Tidyup configuration * Tidyup configuration * bounce postgresql lib version - vulnerable to SQL Injection * bounce postgresql lib version 4.6.2 - vulnerable to SQL Injection
1 parent bd32f54 commit 809ff13

File tree

17 files changed

+114
-133
lines changed

17 files changed

+114
-133
lines changed

JeMPI_Apps/JeMPI_Configuration/src/main/scala/configuration/CustomLinkerBackEnd.scala

+9-6
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ object CustomLinkerBackEnd {
2929
.mkString(sys.props("line.separator"))
3030
}
3131

32+
/*
3233
def createApplyFunctions(): String = {
3334
3435
def applyFields(): String = {
@@ -59,8 +60,10 @@ object CustomLinkerBackEnd {
5960
|${" " * 3} interaction.uniqueInteractionData(),
6061
|${" " * 3} new CustomDemographicData(${applyFields()}));
6162
|${" " * 3}}""".stripMargin
63+
6264
}
6365
66+
*/
6467
config.demographicFields
6568
.filter(f => f.linkMetaData.isDefined)
6669
.foreach(f => {
@@ -87,14 +90,12 @@ object CustomLinkerBackEnd {
8790
|
8891
|${createGenerateFunctions()}
8992
|
90-
| ${createApplyFunctions()}
91-
|
9293
| static void updateGoldenRecordFields(
9394
| final LibMPI libMPI,
9495
| final float threshold,
9596
| final String interactionId,
9697
| final String goldenId) {
97-
| final var expandedGoldenRecord = libMPI.findExpandedGoldenRecords(List.of(goldenId)).get(0);
98+
| final var expandedGoldenRecord = libMPI.findExpandedGoldenRecords(List.of(goldenId)).getFirst();
9899
| final var goldenRecord = expandedGoldenRecord.goldenRecord();
99100
| final var demographicData = goldenRecord.demographicData();
100101
| var k = 0;
@@ -105,13 +106,15 @@ object CustomLinkerBackEnd {
105106
val fieldName = Utils.snakeCaseToCamelCase(field_name)
106107
writer.println(
107108
s"""${" " * 6}k += LinkerDWH.helperUpdateGoldenRecordField(libMPI, interactionId, expandedGoldenRecord,
108-
|${" " * 6} "$fieldName", demographicData.$fieldName, CustomDemographicData::get${fieldName
109-
.charAt(0)
110-
.toUpper}${fieldName.substring(1)})
109+
|${" " * 6} "$fieldName", demographicData.$fieldName,
110+
|${" " * 6} expandedGoldenRecord.interactionsWithScore()
111+
|${" " * 6} .stream()
112+
|${" " * 6} .map(rec -> rec.interaction().demographicData().$fieldName))
111113
|${" " * 12}? 1
112114
|${" " * 12}: 0;""".stripMargin
113115
)
114116
})
117+
115118
writer.println(s"""
116119
|${" " * 6}if (k > 0) {
117120
|${" " * 6} LinkerDWH.helperUpdateInteractionsScore(libMPI, threshold, expandedGoldenRecord);

JeMPI_Apps/JeMPI_Configuration/src/main/scala/configuration/CustomPatient.scala

+16-2
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ private object CustomPatient {
6161
)
6262
}
6363
writer.println()
64-
for (field <- config.demographicFields) {
64+
/* for (field <- config.demographicFields) {
6565
val typeString = field.fieldType
6666
val fieldName = Utils.snakeCaseToCamelCase(field.fieldName)
6767
writer.println(
@@ -73,7 +73,7 @@ private object CustomPatient {
7373
|""".stripMargin
7474
)
7575
}
76-
76+
*/
7777
writer.println(
7878
s"""${" " * indent * 1}public $customClassNameCustomDemographicData() {""".stripMargin
7979
)
@@ -83,6 +83,20 @@ private object CustomPatient {
8383
|""".stripMargin
8484
)
8585

86+
writer.print(
87+
s"""${" " * indent * 1}public $customClassNameCustomDemographicData(final $customClassNameCustomDemographicData demographicData) {"""
88+
)
89+
config.demographicFields.zipWithIndex.foreach { case (field, idx) =>
90+
val fieldName = Utils.snakeCaseToCamelCase(field.fieldName)
91+
writer.print(
92+
s"""
93+
|${" " * indent * 2}this.$fieldName = demographicData.$fieldName;""".stripMargin
94+
)
95+
}
96+
writer.println(s"""
97+
|${" " * indent * 1}}
98+
|""".stripMargin)
99+
86100
writer.println(
87101
s"""${" " * indent * 1}public $customClassNameCustomDemographicData(""".stripMargin
88102
)

JeMPI_Apps/JeMPI_Configuration/src/main/scala/configuration/CustomPostgresqlGoldenRecord.scala

+2-9
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,10 @@ private object CustomPostgresqlGoldenRecord {
2323
|final class $customClassName extends CustomDemographicData implements NodeData {
2424
|
2525
| $customClassName(final CustomDemographicData customDemographicData) {
26-
| super(${fields
27-
.map(field =>
28-
s"""customDemographicData.${Utils.snakeCaseToCamelCase(
29-
field.fieldName
30-
)}"""
31-
)
32-
.mkString(s",${sys.props("line.separator")} ")});
26+
| super(customDemographicData);
3327
| }
3428
|
35-
|}
36-
|""".stripMargin
29+
|}""".stripMargin
3730
)
3831
writer.close()
3932
}

JeMPI_Apps/JeMPI_Configuration/src/main/scala/configuration/CustomPostgresqlInteraction.scala

+1-7
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,7 @@ private object CustomPostgresqlInteraction {
2323
|final class $customClassName extends CustomDemographicData implements NodeData {
2424
|
2525
| $customClassName(final CustomDemographicData customDemographicData) {
26-
| super(${fields
27-
.map(field =>
28-
s"""customDemographicData.${Utils.snakeCaseToCamelCase(
29-
field.fieldName
30-
)}"""
31-
)
32-
.mkString(s",${sys.props("line.separator")} ")});
26+
| super(customDemographicData);
3327
| }
3428
|
3529
|}

JeMPI_Apps/JeMPI_Configuration/src/main/scala/configuration/Main.scala

+2-2
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ object Main {
4444
CustomLinkerProbabilistic.generate(config)
4545
CustomLinkerBackEnd.generate(config)
4646
CustomLinkerMU.generate(config)
47-
CustomPostgresqlInteraction.generate(config.demographicFields)
48-
CustomPostgresqlGoldenRecord.generate(config.demographicFields)
47+
// CustomPostgresqlInteraction.generate(config.demographicFields)
48+
// CustomPostgresqlGoldenRecord.generate(config.demographicFields)
4949
CustomAsyncHelper.generate(config)
5050
CustomPatient.generate(config)
5151
CustomFieldTallies.generate(config)

JeMPI_Apps/JeMPI_LibMPI/src/main/java/org/jembi/jempi/libmpi/postgresql/CustomGoldenRecordData.java

-18
This file was deleted.

JeMPI_Apps/JeMPI_LibMPI/src/main/java/org/jembi/jempi/libmpi/postgresql/CustomInteractionData.java

-18
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package org.jembi.jempi.libmpi.postgresql;
2+
3+
import org.jembi.jempi.shared.models.CustomDemographicData;
4+
5+
final class GoldenRecordData extends CustomDemographicData implements NodeData {
6+
7+
GoldenRecordData(final CustomDemographicData customDemographicData) {
8+
super(customDemographicData);
9+
}
10+
11+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package org.jembi.jempi.libmpi.postgresql;
2+
3+
import org.jembi.jempi.shared.models.CustomDemographicData;
4+
5+
final class InteractionData extends CustomDemographicData implements NodeData {
6+
7+
InteractionData(final CustomDemographicData customDemographicData) {
8+
super(customDemographicData);
9+
}
10+
11+
}
12+

JeMPI_Apps/JeMPI_LibMPI/src/main/java/org/jembi/jempi/libmpi/postgresql/NodeGoldenRecord.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
record NodeGoldenRecord(
88
NodeType type,
99
UUID uid,
10-
CustomGoldenRecordData data) implements Node {
10+
GoldenRecordData data) implements Node {
1111

1212
NodeGoldenRecord(final CustomDemographicData demographicData) {
13-
this(NodeType.GOLDEN_RECORD, null, new CustomGoldenRecordData(demographicData));
13+
this(NodeType.GOLDEN_RECORD, null, new GoldenRecordData(demographicData));
1414
}
1515

1616
public NodeType getType() {

JeMPI_Apps/JeMPI_LibMPI/src/main/java/org/jembi/jempi/libmpi/postgresql/NodeInteraction.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
record NodeInteraction(
88
NodeType type,
99
UUID uid,
10-
CustomInteractionData data) implements Node {
10+
InteractionData data) implements Node {
1111

1212
NodeInteraction(final CustomDemographicData demographicData) {
13-
this(NodeType.INTERACTION, null, new CustomInteractionData(demographicData));
13+
this(NodeType.INTERACTION, null, new InteractionData(demographicData));
1414
}
1515

1616
public NodeType getType() {

JeMPI_Apps/JeMPI_LibMPI/src/main/java/org/jembi/jempi/libmpi/postgresql/PostgresqlQueries.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ public static List<NodeGoldenRecord> getGoldenRecordsOfInteraction(final UUID ei
153153
while (rs.next()) {
154154
final var id = rs.getString("id");
155155
final var json = rs.getString("fields");
156-
final var goldenRecordData = new CustomGoldenRecordData(OBJECT_MAPPER.readValue(json, CustomDemographicData.class));
156+
final var goldenRecordData = new GoldenRecordData(OBJECT_MAPPER.readValue(json, CustomDemographicData.class));
157157
list.add(new NodeGoldenRecord(Node.NodeType.valueOf(rs.getString("type")), UUID.fromString(id), goldenRecordData));
158158
}
159159
return list;
@@ -175,7 +175,7 @@ public static List<NodeInteraction> getGoldenRecordInteractions(final UUID gid)
175175
while (rs.next()) {
176176
final var id = rs.getString("id");
177177
final var json = rs.getString("fields");
178-
final var interactionData = new CustomInteractionData(OBJECT_MAPPER.readValue(json, CustomDemographicData.class));
178+
final var interactionData = new InteractionData(OBJECT_MAPPER.readValue(json, CustomDemographicData.class));
179179
list.add(new NodeInteraction(Node.NodeType.valueOf(rs.getString("type")), UUID.fromString(id), interactionData));
180180
}
181181
return list;
@@ -192,7 +192,7 @@ private static List<GoldenRecord> findCandidatesWorker(final String sql) {
192192
while (rs.next()) {
193193
final var id = rs.getString("id");
194194
final var json = rs.getString("fields");
195-
final var goldenRecordData = new CustomGoldenRecordData(OBJECT_MAPPER.readValue(json, CustomDemographicData.class));
195+
final var goldenRecordData = new GoldenRecordData(OBJECT_MAPPER.readValue(json, CustomDemographicData.class));
196196
list.add(new GoldenRecord(id, null, new CustomUniqueGoldenRecordData(null), goldenRecordData));
197197
}
198198
return list;
@@ -228,7 +228,7 @@ public static NodeGoldenRecord getGoldenRecord(final UUID gid) {
228228
if (rs.next()) {
229229
final var id = rs.getString("id");
230230
final var goldenRecordData =
231-
new CustomGoldenRecordData(OBJECT_MAPPER.readValue(rs.getString("fields"), CustomDemographicData.class));
231+
new GoldenRecordData(OBJECT_MAPPER.readValue(rs.getString("fields"), CustomDemographicData.class));
232232
return new NodeGoldenRecord(Node.NodeType.valueOf(rs.getString("type")), UUID.fromString(id), goldenRecordData);
233233
}
234234
return null;
@@ -248,7 +248,7 @@ static NodeInteraction getInteraction(final UUID iid) {
248248
if (rs.next()) {
249249
final var id = rs.getString("id");
250250
final var interactionData =
251-
new CustomInteractionData(OBJECT_MAPPER.readValue(rs.getString("fields"), CustomDemographicData.class));
251+
new InteractionData(OBJECT_MAPPER.readValue(rs.getString("fields"), CustomDemographicData.class));
252252
return new NodeInteraction(Node.NodeType.valueOf(rs.getString("type")), UUID.fromString(id), interactionData);
253253
}
254254
return null;

JeMPI_Apps/JeMPI_LibShared/src/main/java/org/jembi/jempi/shared/models/CustomDemographicData.java

+10-28
Original file line numberDiff line numberDiff line change
@@ -12,38 +12,20 @@ public class CustomDemographicData {
1212
public final String phoneNumber;
1313
public final String nationalId;
1414

15-
public final String getGivenName() {
16-
return givenName;
17-
}
18-
19-
public final String getFamilyName() {
20-
return familyName;
21-
}
22-
23-
public final String getGender() {
24-
return gender;
25-
}
26-
27-
public final String getDob() {
28-
return dob;
29-
}
30-
31-
public final String getCity() {
32-
return city;
33-
}
34-
35-
public final String getPhoneNumber() {
36-
return phoneNumber;
37-
}
38-
39-
public final String getNationalId() {
40-
return nationalId;
41-
}
42-
4315
public CustomDemographicData() {
4416
this(null, null, null, null, null, null, null);
4517
}
4618

19+
public CustomDemographicData(final CustomDemographicData demographicData) {
20+
this.givenName = demographicData.givenName;
21+
this.familyName = demographicData.familyName;
22+
this.gender = demographicData.gender;
23+
this.dob = demographicData.dob;
24+
this.city = demographicData.city;
25+
this.phoneNumber = demographicData.phoneNumber;
26+
this.nationalId = demographicData.nationalId;
27+
}
28+
4729
public CustomDemographicData(
4830
final String givenName,
4931
final String familyName,

0 commit comments

Comments
 (0)