Skip to content

Commit 43f8b12

Browse files
committed
fix to the reference data download to include the user rating stabilities
1 parent 75d4f26 commit 43f8b12

File tree

3 files changed

+26
-36
lines changed

3 files changed

+26
-36
lines changed

haikudepotserver-core-test/src/test/java/org/haiku/haikudepotserver/reference/job/ReferenceDumpExportJobRunnerIT.java

Lines changed: 7 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,13 @@
1515
import org.haiku.haikudepotserver.job.model.JobService;
1616
import org.haiku.haikudepotserver.job.model.JobSnapshot;
1717
import org.haiku.haikudepotserver.reference.model.ReferenceDumpExportJobSpecification;
18-
import org.haiku.haikudepotserver.support.DateTimeHelper;
18+
import org.haiku.haikudepotserver.support.RuntimeInformationService;
1919
import org.junit.Assert;
2020
import org.junit.Test;
2121
import org.springframework.test.context.ContextConfiguration;
2222

2323
import javax.annotation.Resource;
24-
import javax.sql.DataSource;
2524
import java.io.InputStream;
26-
import java.sql.Connection;
27-
import java.sql.PreparedStatement;
28-
import java.sql.ResultSet;
29-
import java.sql.SQLException;
30-
import java.util.Date;
3125
import java.util.Optional;
3226
import java.util.stream.IntStream;
3327
import java.util.zip.GZIPInputStream;
@@ -42,7 +36,7 @@ public class ReferenceDumpExportJobRunnerIT extends AbstractIntegrationTest {
4236
private ObjectMapper objectMapper;
4337

4438
@Resource
45-
private DataSource dataSource;
39+
private RuntimeInformationService runtimeInformationService;
4640

4741
/**
4842
* <p>Uses the sample data and checks that the output from the report matches a captured, sensible-looking
@@ -52,10 +46,9 @@ public class ReferenceDumpExportJobRunnerIT extends AbstractIntegrationTest {
5246
@Test
5347
public void testRun() throws Exception {
5448

55-
long now = DateTimeHelper.secondAccuracyDate(new Date()).getTime();
5649
ReferenceDumpExportJobSpecification specification = new ReferenceDumpExportJobSpecification();
5750
specification.setNaturalLanguageCode(NaturalLanguage.CODE_GERMAN);
58-
java.util.Date latestModifyTimestamp = getLatestReferenceDataDate();
51+
java.util.Date latestModifyTimestamp = new java.util.Date(runtimeInformationService.getBuildTimestamp().toEpochMilli());
5952

6053
// ------------------------------------
6154
String guid = jobService.submit(
@@ -99,28 +92,12 @@ public void testRun() throws Exception {
9992
// the request was in German so the results should be in German too.
10093
JsonNode pkgCategoriesArrayNode = rootNode.get("pkgCategories");
10194
assertItemWithCodeAndName(pkgCategoriesArrayNode, "graphics", "Grafik");
102-
}
103-
104-
}
105-
106-
private java.util.Date getLatestReferenceDataDate() throws SQLException {
10795

108-
String query = "WITH mt AS (SELECT modify_timestamp FROM haikudepot.country\n"
109-
+ "UNION SELECT modify_timestamp FROM haikudepot.natural_language\n"
110-
+ "UNION SELECT modify_timestamp FROM haikudepot.pkg_category)\n"
111-
+ "SELECT MAX(mt.modify_timestamp) FROM mt";
112-
113-
try (
114-
Connection connection = dataSource.getConnection();
115-
PreparedStatement statement = connection.prepareStatement(query);
116-
ResultSet resultSet = statement.executeQuery()
117-
) {
118-
while (resultSet.next()) {
119-
return DateTimeHelper.secondAccuracyDate(resultSet.getTimestamp(1));
120-
}
121-
122-
throw new AssertionError("unable to get the latest reference data date");
96+
// check a user rating stability
97+
JsonNode userRatingStabilitiesArrayNode = rootNode.get("userRatingStabilities");
98+
assertItemWithCodeAndName(userRatingStabilitiesArrayNode, "unstablebutusable", "Nicht stabil, aber benutzbar");
12399
}
100+
124101
}
125102

126103
private void assertItemWithCodeAndName(JsonNode array, String code, String name) {

haikudepotserver-core/src/main/java/org/haiku/haikudepotserver/reference/job/ReferenceDumpExportJobRunner.java

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,13 @@
1414
import org.haiku.haikudepotserver.dataobjects.Country;
1515
import org.haiku.haikudepotserver.dataobjects.NaturalLanguage;
1616
import org.haiku.haikudepotserver.dataobjects.PkgCategory;
17+
import org.haiku.haikudepotserver.dataobjects.UserRatingStability;
1718
import org.haiku.haikudepotserver.job.AbstractJobRunner;
1819
import org.haiku.haikudepotserver.job.model.JobDataWithByteSink;
1920
import org.haiku.haikudepotserver.job.model.JobService;
2021
import org.haiku.haikudepotserver.pkg.job.PkgDumpExportJobRunner;
2122
import org.haiku.haikudepotserver.reference.model.ReferenceDumpExportJobSpecification;
22-
import org.haiku.haikudepotserver.reference.model.dumpexport.DumpExportReference;
23-
import org.haiku.haikudepotserver.reference.model.dumpexport.DumpExportReferenceCountry;
24-
import org.haiku.haikudepotserver.reference.model.dumpexport.DumpExportReferenceNaturalLanguage;
25-
import org.haiku.haikudepotserver.reference.model.dumpexport.DumpExportReferencePkgCategory;
23+
import org.haiku.haikudepotserver.reference.model.dumpexport.*;
2624
import org.haiku.haikudepotserver.support.ArchiveInfo;
2725
import org.haiku.haikudepotserver.support.RuntimeInformationService;
2826
import org.haiku.haikudepotserver.support.cayenne.GeneralQueryHelper;
@@ -99,6 +97,8 @@ private void writeData(
9997
objectMapper.writeValue(jsonGenerator, dumpExportReference.getNaturalLanguages());
10098
jsonGenerator.writeFieldName("pkgCategories");
10199
objectMapper.writeValue(jsonGenerator, dumpExportReference.getPkgCategories());
100+
jsonGenerator.writeFieldName("userRatingStabilities");
101+
objectMapper.writeValue(jsonGenerator, dumpExportReference.getUserRatingStabilities());
102102
}
103103

104104
public static Date getModifyTimestamp(ObjectContext context, RuntimeInformationService runtimeInformationService) {
@@ -166,6 +166,21 @@ private DumpExportReference createDumpExportReference(ReferenceDumpExportJobSpec
166166
})
167167
.collect(Collectors.toList()));
168168

169+
dumpExportReference.setUserRatingStabilities(
170+
UserRatingStability.getAll(context)
171+
.stream()
172+
.map(urs -> {
173+
DumpExportReferenceUserRatingStability derurs = new DumpExportReferenceUserRatingStability();
174+
derurs.setCode(urs.getCode());
175+
derurs.setName(
176+
messageSource.getMessage(
177+
urs.getTitleKey(),
178+
new Object[] {},
179+
naturalLanguage.toLocale()));
180+
return derurs;
181+
})
182+
.collect(Collectors.toList()));
183+
169184
return dumpExportReference;
170185
}
171186

haikudepotserver-core/src/main/java/org/haiku/haikudepotserver/support/URLHelperService.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,6 @@ public Optional<Long> tryGetPayloadLength(URL url) throws IOException {
9090
}
9191

9292
private Optional<Long> tryGetPayloadLengthHttp(URI uri) throws IOException {
93-
// return Optional.empty();
94-
// }
9593
try {
9694
HttpResponse<?> response = httpClient.send(HttpRequest.newBuilder(uri)
9795
.method("HEAD", HttpRequest.BodyPublishers.noBody())

0 commit comments

Comments
 (0)