QueryResult<Individual> unsafeUpdate(Study study, Individual individual, ObjectMap parameters, QueryOptions options, String userId)
throws CatalogException {
try {
ParamUtils.checkAllParametersExist(parameters.keySet().iterator(), (a) -> IndividualDBAdaptor.UpdateParams.getParam(a) != null);
} catch (CatalogParameterException e) {
throw new CatalogException("Could not update: " + e.getMessage(), e);
}
MyResource<Individual> resource = new MyResource<>(userId, study, individual);
List<VariableSet> variableSetList = checkUpdateAnnotationsAndExtractVariableSets(resource, parameters, options,
individualDBAdaptor);
if (options.getBoolean(Constants.INCREMENT_VERSION)) {
options.put(Constants.CURRENT_RELEASE, studyManager.getCurrentRelease(study, userId));
}
QueryResult<Individual> queryResult = individualDBAdaptor.update(individual.getUid(), parameters, variableSetList, options);
auditManager.recordUpdate(AuditRecord.Resource.individual, individual.getUid(), userId, parameters, null, null);
return queryResult;
}