use of org.obiba.mica.micaConfig.domain.MicaConfig in project mica2 by obiba.
the class MicaConfigResource method create.
@PUT
@Timed
@RequiresRoles(Roles.MICA_ADMIN)
public Response create(@SuppressWarnings("TypeMayBeWeakened") Mica.MicaConfigDto dto) {
MicaConfig micaConfig = dtos.fromDto(dto);
taxonomyService.refreshTaxonomyTaxonomyIfNeeded(micaConfigService.getConfig(), micaConfig);
micaConfigService.save(micaConfig);
return Response.noContent().build();
}
use of org.obiba.mica.micaConfig.domain.MicaConfig in project mica2 by obiba.
the class DatasetDtos method asContingencyDto.
public Mica.DatasetVariableContingencyDto.Builder asContingencyDto(@NotNull OpalTable opalTable, DatasetVariable variable, DatasetVariable crossVariable, @Nullable Search.QueryResultDto results) {
Mica.DatasetVariableContingencyDto.Builder crossDto = Mica.DatasetVariableContingencyDto.newBuilder();
if (opalTable instanceof StudyTable)
crossDto.setStudyTable(asDto((StudyTable) opalTable, true));
else if (opalTable instanceof HarmonizationStudyTable)
crossDto.setHarmonizationStudyTable(asDto((HarmonizationStudyTable) opalTable));
Mica.DatasetVariableAggregationDto.Builder allAggBuilder = Mica.DatasetVariableAggregationDto.newBuilder();
if (results == null) {
allAggBuilder.setN(0);
allAggBuilder.setTotal(0);
crossDto.setAll(allAggBuilder);
return crossDto;
}
allAggBuilder.setTotal(results.getTotalHits());
MicaConfig micaConfig = micaConfigService.getConfig();
int privacyThreshold = micaConfig.getPrivacyThreshold();
crossDto.setPrivacyThreshold(privacyThreshold);
boolean privacyChecks = crossVariable.hasCategories() ? validatePrivacyThreshold(results, privacyThreshold) : true;
boolean totalPrivacyChecks = validateTotalPrivacyThreshold(results, privacyThreshold);
// add facet results in the same order as the variable categories
variable.getCategories().forEach(cat -> results.getFacetsList().stream().filter(facet -> facet.hasFacet() && cat.getName().equals(facet.getFacet())).forEach(facet -> {
boolean privacyCheck = privacyChecks && checkPrivacyThreshold(facet.getFilters(0).getCount(), privacyThreshold);
Mica.DatasetVariableAggregationDto.Builder aggBuilder = Mica.DatasetVariableAggregationDto.newBuilder();
aggBuilder.setTotal(totalPrivacyChecks ? results.getTotalHits() : 0);
aggBuilder.setTerm(facet.getFacet());
DatasetCategory category = variable.getCategory(facet.getFacet());
aggBuilder.setMissing(category != null && category.isMissing());
addSummaryStatistics(crossVariable, aggBuilder, facet, privacyCheck, totalPrivacyChecks);
crossDto.addAggregations(aggBuilder);
}));
// add total facet for all variable categories
results.getFacetsList().stream().filter(facet -> facet.hasFacet() && "_total".equals(facet.getFacet())).forEach(facet -> {
boolean privacyCheck = privacyChecks && facet.getFilters(0).getCount() > micaConfig.getPrivacyThreshold();
addSummaryStatistics(crossVariable, allAggBuilder, facet, privacyCheck, totalPrivacyChecks);
});
crossDto.setAll(allAggBuilder);
return crossDto;
}
use of org.obiba.mica.micaConfig.domain.MicaConfig in project mica2 by obiba.
the class DatasetDtosTest method before.
@Before
public void before() {
MicaConfig config = new MicaConfig();
config.setLocales(Arrays.asList(Locale.ENGLISH, Locale.FRENCH));
when(micaConfigService.getConfig()).thenReturn(config);
when(subjectAclService.isPermitted(anyString(), anyString(), anyString())).thenReturn(true);
when(publishedStudyService.findById(anyString())).thenReturn(new HarmonizationStudy());
when(studySummaryDtos.asHarmoStudyDto(anyString())).thenReturn(Mica.StudySummaryDto.newBuilder().setId("123").setPublished(true).build());
when(studySummaryDtos.asDto(anyString())).thenReturn(Mica.StudySummaryDto.newBuilder().setId("123").setPublished(true).build());
when(permissionsDtos.asDto(any(StudyDataset.class))).thenReturn(Mica.PermissionsDto.getDefaultInstance());
when(permissionsDtos.asDto(any(HarmonizationDataset.class))).thenReturn(Mica.PermissionsDto.getDefaultInstance());
}
use of org.obiba.mica.micaConfig.domain.MicaConfig in project mica2 by obiba.
the class MicaConfigDtosTest method test_with_values.
@Test
public void test_with_values() {
MicaConfig config = new MicaConfig();
config.setName("Test");
config.setPublicUrl("http://localhost/mica-test");
config.setDefaultCharacterSet("utf-8");
config.getLocales().add(Locale.CHINESE);
config.getLocales().add(Locale.GERMAN);
Mica.MicaConfigDto dto = dtos.asDto(config);
assertThat(dto).isNotNull();
MicaConfig fromDto = dtos.fromDto(dto);
assertThat(fromDto).isEqualToIgnoringGivenFields(config, "createdDate");
}
use of org.obiba.mica.micaConfig.domain.MicaConfig in project mica2 by obiba.
the class CustomTranslationsResource method getTranslations.
private JsonNode getTranslations(@NotNull String locale) {
MicaConfig config = micaConfigService.getConfig();
JsonNode node = objectMapper.createObjectNode();
if (config.hasTranslations() && config.getTranslations().get(locale) != null) {
try {
node = objectMapper.readTree(config.getTranslations().get(locale));
} catch (IOException e) {
logger.warn("Cannot read custom translations tree for locale {0}", locale, e);
}
}
return node;
}
Aggregations