public static DataSharingSettings fromJSON(JsonReader jsonReader, Username username, TimeProvider timeProvider, DataSharingSettings fromServer) { DataSharingSettings dataSharingSettings = new DataSharingSettings(); Boolean consent = jsonReader.optBoolean("allow").orElse(fromServer.allowSharing()); dataSharingSettings.setAllowSharing(consent); dataSharingSettings.setUpdatedBy(username.getUsername().toString()); dataSharingSettings.setUpdatedOn(new Timestamp(timeProvider.currentTimeMillis())); return dataSharingSettings; } }
@Test public void shouldNotCopyPersistentObjectIdWhileCopying() { DataSharingSettings current = new DataSharingSettings(); current.setId(1); DataSharingSettings latest = new DataSharingSettings(); latest.setId(2); assertThat(current.getId(), is(1L)); current.copyFrom(latest); assertThat(current.getId(), is(1L)); } }
public void saveOrUpdate(DataSharingSettings dataSharingSettings) throws DuplicateDataSharingSettingsException { DataSharingSettings existing = load(); if (dataSharingSettings.hasId() && dataSharingSettings.getId() != existing.getId()) { throw new DuplicateDataSharingSettingsException(); } if (existing != null) { existing.copyFrom(dataSharingSettings); } else { existing = dataSharingSettings; } sessionFactory.getCurrentSession().saveOrUpdate(existing); }
@Test public void shouldCopyDataSharingAttributesFromProvidedObject() { Date currentUpdatedOn = new Date(); currentUpdatedOn.setTime(currentUpdatedOn.getTime() - 10000); DataSharingSettings current = new DataSharingSettings(false, "default", currentUpdatedOn); DataSharingSettings latest = new DataSharingSettings(true, "Bob", new Date()); assertThat(current.allowSharing(), is(not(latest.allowSharing()))); assertThat(current.updatedBy(), is(not(latest.updatedBy()))); assertThat(current.updatedOn().getTime(), is(not(latest.updatedOn().getTime()))); current.copyFrom(latest); assertThat(current.allowSharing(), is(latest.allowSharing())); assertThat(current.updatedBy(), is(latest.updatedBy())); assertThat(current.updatedOn().getTime(), is(latest.updatedOn().getTime())); }
public static void toJSON(OutputWriter outputWriter, DataSharingSettings dataSharingSettings) { outputWriter .addLinks(linksWriter -> linksWriter.addLink("self", DataSharing.SETTINGS_PATH) .addAbsoluteLink("doc", DataSharing.SETTINGS_DOC)) .addChild("_embedded", childWriter -> { childWriter .add("allow", dataSharingSettings.allowSharing()) .add("updated_by", dataSharingSettings.updatedBy()) .add("updated_on", dataSharingSettings.updatedOn()); }); }
public void initialize() { DataSharingSettings existingDataSharingSettings = get(); if (existingDataSharingSettings == null) { createOrUpdate(new DataSharingSettings(true, "Default", new Date())); } if (new SystemEnvironment().shouldFailStartupOnDataError()) { assert get() != null; } register(this); }
public UsageStatisticsReporting get() { UsageStatisticsReporting loaded = usageStatisticsReportingSqlMapDao.load(); loaded.setDataSharingServerUrl(systemEnvironment.getGoDataSharingServerUrl()); loaded.setDataSharingGetEncryptionKeysUrl(systemEnvironment.getGoDataSharingGetEncryptionKeysUrl()); boolean canReport = !isDevelopmentServer() && dataSharingSettingsService.get().allowSharing() && !isToday(loaded.lastReportedAt()) && !isReportingInProgress(); loaded.canReport(canReport); return loaded; }