use of ambit2.db.update.bundle.matrix.ReadEffectRecordByBundleMatrix._matrix in project ambit-mirror by ideaconsult.
the class ReadEffectRecordByBundleMatrixTest method createQuery.
@Override
protected ReadEffectRecordByBundleMatrix createQuery() throws Exception {
SubstanceEndpointsBundle bundle = new SubstanceEndpointsBundle();
bundle.setID(1);
ReadEffectRecordByBundleMatrix q = new ReadEffectRecordByBundleMatrix(bundle, _matrix.matrix_working);
SubstanceRecord record = new SubstanceRecord();
record.setSubstanceUUID("IUC4-efdb21bb-e79f-3286-a988-b6f6944d3734");
q.setFieldname(record);
return q;
}
use of ambit2.db.update.bundle.matrix.ReadEffectRecordByBundleMatrix._matrix in project ambit-mirror by ideaconsult.
the class BundleMatrixResource method put.
@Override
protected Representation put(Representation entity, Variant variant) throws ResourceException {
_matrix matrix = getList();
if ((entity == null) || !entity.isAvailable())
throw new ResourceException(Status.CLIENT_ERROR_BAD_REQUEST, "Empty content");
if (entity.getMediaType() != null) {
if (MediaType.APPLICATION_JSON.getName().equals(entity.getMediaType().getName())) {
_mode importmode = _mode.studyimport;
switch(matrix) {
case deleted_values:
{
importmode = _mode.matrixvaluedelete;
break;
}
case matrix_working:
{
importmode = _mode.studyimport;
break;
}
default:
throw new ResourceException(Status.CLIENT_ERROR_METHOD_NOT_ALLOWED);
}
try {
File file = File.createTempFile("_matrix_", ".json");
file.deleteOnExit();
DownloadTool.download(entity.getStream(), file);
String token = getToken();
QASettings qa = new QASettings();
// sets enabled to false and clears all flags
qa.clear();
CallableStudyBundleImporter<String> callable = new CallableStudyBundleImporter<String>(importmode, file, getRootRef(), getContext(), new SubstanceURIReporter(getRequest().getRootRef()), new DatasetURIReporter(getRequest().getRootRef()), token, getRequest().getResourceRef().toString(), getClientInfo());
callable.setBundle(bundle);
callable.setClearComposition(false);
callable.setClearMeasurements(false);
callable.setQASettings(qa);
ITask<Reference, Object> task = ((ITaskApplication) getApplication()).addTask("Substance import", callable, getRequest().getRootRef(), token);
ITaskStorage storage = ((ITaskApplication) getApplication()).getTaskStorage();
FactoryTaskConvertor<Object> tc = new FactoryTaskConvertor<Object>(storage);
task.update();
getResponse().setStatus(task.isDone() ? Status.SUCCESS_OK : Status.SUCCESS_ACCEPTED);
return tc.createTaskRepresentation(task.getUuid(), variant, getRequest(), getResponse(), null);
} catch (Exception x) {
x.printStackTrace();
} finally {
try {
entity.getStream().close();
} catch (Exception xx) {
}
}
} else if (MediaType.MULTIPART_FORM_DATA.getName().equals(entity.getMediaType().getName())) {
switch(matrix) {
case matrix_working:
{
break;
}
default:
throw new ResourceException(Status.CLIENT_ERROR_METHOD_NOT_ALLOWED);
}
DiskFileItemFactory factory = new DiskFileItemFactory();
RestletFileUpload upload = new RestletFileUpload(factory);
try {
List<FileItem> items = upload.parseRequest(getRequest());
String token = getToken();
QASettings qa = new QASettings();
// sets enabled to false and clears all flags
qa.clear();
boolean clearMeasurements = false;
boolean clearComposition = false;
for (FileItem file : items) {
if (file.isFormField()) {
// ignore
} else {
String ext = file.getName().toLowerCase();
if (ext.endsWith(".json")) {
} else
throw new ResourceException(Status.CLIENT_ERROR_BAD_REQUEST, "Unsupported format " + ext);
}
}
CallableStudyBundleImporter<String> callable = new CallableStudyBundleImporter<String>(items, CallableFileUpload.field_files, CallableFileUpload.field_config, getRootRef(), getContext(), new SubstanceURIReporter(getRequest().getRootRef()), new DatasetURIReporter(getRequest().getRootRef()), token, getRequest().getResourceRef().toString(), getClientInfo());
callable.setBundle(bundle);
callable.setClearComposition(clearComposition);
callable.setClearMeasurements(clearMeasurements);
callable.setQASettings(qa);
ITask<Reference, Object> task = ((ITaskApplication) getApplication()).addTask("Substance import", callable, getRequest().getRootRef(), token);
ITaskStorage storage = ((ITaskApplication) getApplication()).getTaskStorage();
FactoryTaskConvertor<Object> tc = new FactoryTaskConvertor<Object>(storage);
task.update();
getResponse().setStatus(task.isDone() ? Status.SUCCESS_OK : Status.SUCCESS_ACCEPTED);
return tc.createTaskRepresentation(task.getUuid(), variant, getRequest(), getResponse(), null);
} catch (ResourceException x) {
throw x;
} catch (Exception x) {
throw new ResourceException(Status.CLIENT_ERROR_BAD_REQUEST, x);
}
}
}
throw new ResourceException(Status.CLIENT_ERROR_UNSUPPORTED_MEDIA_TYPE);
}
use of ambit2.db.update.bundle.matrix.ReadEffectRecordByBundleMatrix._matrix in project ambit-mirror by ideaconsult.
the class BundleMatrixResource method delete.
@Override
protected Representation delete(Variant variant) throws ResourceException {
_matrix matrix = getList();
switch(matrix) {
case matrix_working:
break;
default:
throw new ResourceException(Status.CLIENT_ERROR_METHOD_NOT_ALLOWED);
}
String token = getToken();
SubstanceEndpointsBundle bundle = null;
Object id = getRequest().getAttributes().get(OpenTox.URI.bundle.getKey());
if ((id != null))
try {
Integer i = new Integer(Reference.decode(id.toString()));
if (i > 0)
bundle = new SubstanceEndpointsBundle(i);
} catch (Exception x) {
}
Connection conn = null;
try {
DatasetURIReporter r = new DatasetURIReporter(getRequest());
DBConnection dbc = new DBConnection(getApplication().getContext(), getConfigFile());
conn = dbc.getConnection(30, true, 8);
CallableBundleMatrixCreator callable = new CallableBundleMatrixCreator(_matrix.matrix_working, Method.DELETE, null, bundle, r, conn, getToken());
ITask<Reference, Object> task = ((ITaskApplication) getApplication()).addTask("Delete matrix from bundle", callable, getRequest().getRootRef(), token);
ITaskStorage storage = ((ITaskApplication) getApplication()).getTaskStorage();
FactoryTaskConvertor<Object> tc = new FactoryTaskConvertor<Object>(storage);
task.update();
getResponse().setStatus(task.isDone() ? Status.SUCCESS_OK : Status.SUCCESS_ACCEPTED);
return tc.createTaskRepresentation(task.getUuid(), variant, getRequest(), getResponse(), null);
} catch (Exception x) {
x.printStackTrace();
try {
conn.close();
} catch (Exception xx) {
}
throw new ResourceException(Status.SERVER_ERROR_INTERNAL, x);
}
}
Aggregations