use of org.hisp.dhis.common.IdSchemes in project dhis2-core by dhis2.
the class AdxDataServiceIntegrationTest method testGetFromUrl1.
// --------------------------------------------------------------------------
// Test get data export params from URL arguments
// --------------------------------------------------------------------------
@Test
void testGetFromUrl1() {
Date now = new Date();
DataExportParams expected = new DataExportParams().setDataSets(Sets.newHashSet(dsA)).setPeriods(Sets.newHashSet(pe202001)).setOrganisationUnits(Sets.newHashSet(ouA)).setIncludeDescendants(true).setIncludeDeleted(false).setLastUpdated(now).setLimit(999).setOutputIdSchemes(new IdSchemes().setIdScheme("CODE"));
DataExportParams actual = adxDataService.getFromUrl(DataValueSetQueryParams.builder().dataSet(Sets.newHashSet(dsA.getUid())).period(Sets.newHashSet("202001")).orgUnit(Sets.newHashSet(ouA.getUid())).children(true).includeDeleted(false).lastUpdated(now).limit(999).build());
assertEquals(expected.toString(), actual.toString());
}
use of org.hisp.dhis.common.IdSchemes in project dhis2-core by dhis2.
the class DefaultSynchronizationManager method executeDataValuePush.
/**
* Executes a push of data values to the given remote instance.
*
* @param instance the remote system instance.
* @return an ImportSummary.
*/
private ImportConflicts executeDataValuePush(SystemInstance instance) throws WebMessageParseException {
// ---------------------------------------------------------------------
// Set time for last success to start of process to make data saved
// subsequently part of next synch process without being ignored
// ---------------------------------------------------------------------
final Date startTime = new Date();
final Date lastSuccessTime = SyncUtils.getLastSyncSuccess(systemSettingManager, SettingKey.LAST_SUCCESSFUL_DATA_VALUE_SYNC);
final Date skipChangedBefore = systemSettingManager.getDateSetting(SettingKey.SKIP_SYNCHRONIZATION_FOR_DATA_CHANGED_BEFORE);
final Date lastUpdatedAfter = lastSuccessTime.after(skipChangedBefore) ? lastSuccessTime : skipChangedBefore;
final int objectsToSynchronize = dataValueService.getDataValueCountLastUpdatedAfter(lastUpdatedAfter, true);
log.info("DataValues last changed before " + skipChangedBefore + " will not be synchronized.");
if (objectsToSynchronize == 0) {
SyncUtils.setLastSyncSuccess(systemSettingManager, SettingKey.LAST_SUCCESSFUL_DATA_VALUE_SYNC, startTime);
log.debug("Skipping data values push, no new or updated data values");
ImportCount importCount = new ImportCount(0, 0, 0, 0);
return new ImportSummary(ImportStatus.SUCCESS, "No new or updated data values to push.", importCount);
}
log.info("Data Values: " + objectsToSynchronize + " to push since last synchronization success: " + lastSuccessTime);
log.info("Remote server POST URL: " + instance.getUrl());
final RequestCallback requestCallback = request -> {
request.getHeaders().setContentType(MediaType.APPLICATION_JSON);
request.getHeaders().add(HEADER_AUTHORIZATION, CodecUtils.getBasicAuthString(instance.getUsername(), instance.getPassword()));
dataValueSetService.exportDataValueSetJson(lastUpdatedAfter, request.getBody(), new IdSchemes());
};
final int maxSyncAttempts = systemSettingManager.getIntSetting(SettingKey.MAX_SYNC_ATTEMPTS);
Optional<AbstractWebMessageResponse> responseSummary = SyncUtils.runSyncRequest(restTemplate, requestCallback, SyncEndpoint.DATA_VALUE_SETS.getKlass(), instance.getUrl(), maxSyncAttempts);
ImportSummary summary = null;
if (responseSummary.isPresent()) {
summary = (ImportSummary) responseSummary.get();
if (ImportStatus.SUCCESS.equals(summary.getStatus())) {
log.info("Push successful: " + summary);
} else {
log.warn("Push failed: " + summary);
}
}
return summary;
}
use of org.hisp.dhis.common.IdSchemes in project dhis2-core by dhis2.
the class DataValueSetServiceExportTest method testExportOutputIdSchemeAttribute.
@Test
void testExportOutputIdSchemeAttribute() throws IOException {
ByteArrayOutputStream out = new ByteArrayOutputStream();
String attributeIdScheme = IdScheme.ATTR_ID_SCHEME_PREFIX + atA.getUid();
IdSchemes idSchemes = new IdSchemes().setDataElementIdScheme(attributeIdScheme).setOrgUnitIdScheme(attributeIdScheme).setCategoryOptionComboIdScheme(attributeIdScheme);
DataExportParams params = new DataExportParams().setDataSets(Sets.newHashSet(dsB)).setOrganisationUnits(Sets.newHashSet(ouA)).setPeriods(Sets.newHashSet(peB)).setOutputIdSchemes(idSchemes);
dataValueSetService.exportDataValueSetJson(params, out);
DataValueSet dvs = jsonMapper.readValue(out.toByteArray(), DataValueSet.class);
assertNotNull(dvs);
assertNotNull(dvs.getDataSet());
assertEquals(dsB.getUid(), dvs.getDataSet());
assertEquals(2, dvs.getDataValues().size());
for (org.hisp.dhis.dxf2.datavalue.DataValue dv : dvs.getDataValues()) {
assertNotNull(dv);
assertEquals(avA.getValue(), dv.getDataElement());
assertEquals(avB.getValue(), dv.getOrgUnit());
}
}
use of org.hisp.dhis.common.IdSchemes in project dhis2-core by dhis2.
the class DataValueSetServiceExportTest method testExportLastUpdated.
@Test
void testExportLastUpdated() throws IOException {
Date lastUpdated = getDate(1970, 1, 1);
ByteArrayOutputStream out = new ByteArrayOutputStream();
dataValueSetService.exportDataValueSetJson(lastUpdated, out, new IdSchemes());
DataValueSet dvs = jsonMapper.readValue(out.toByteArray(), DataValueSet.class);
assertNotNull(dvs);
assertEquals(12, dvs.getDataValues().size());
for (org.hisp.dhis.dxf2.datavalue.DataValue dv : dvs.getDataValues()) {
assertNotNull(dv);
}
}
use of org.hisp.dhis.common.IdSchemes in project dhis2-core by dhis2.
the class DataValueSetServiceTest method testImportDataValuesXmlUpdatesOnly.
@Test
void testImportDataValuesXmlUpdatesOnly() throws Exception {
in = new ClassPathResource("datavalueset/dataValueSetB.xml").getInputStream();
ImportOptions importOptions = new ImportOptions().setImportStrategy(ImportStrategy.UPDATES);
IdSchemes idSchemes = new IdSchemes();
idSchemes.setIdScheme("UID");
idSchemes.setDataElementIdScheme("UID");
idSchemes.setOrgUnitIdScheme("UID");
importOptions.setIdSchemes(idSchemes);
ImportSummary summary = dataValueSetService.importDataValueSetXml(in, importOptions);
assertHasNoConflicts(summary);
assertEquals(0, summary.getImportCount().getImported());
assertEquals(0, summary.getImportCount().getUpdated());
assertEquals(0, summary.getImportCount().getDeleted());
assertEquals(12, summary.getImportCount().getIgnored());
assertEquals(ImportStatus.SUCCESS, summary.getStatus());
Collection<DataValue> dataValues = mockDataValueBatchHandler.getInserts();
assertNotNull(dataValues);
assertEquals(0, dataValues.size());
}
Aggregations