Order of files attached to document

This commit is contained in:
jendib 2015-03-06 21:13:09 +01:00
parent 6c976087de
commit 2347483676
4 changed files with 19 additions and 25 deletions

View File

@ -80,32 +80,12 @@ public class FileDao {
}
/**
* Updates the content of a file.
* Update a file.
*
* @param file File to update
* @return Updated file
*/
public File updateContent(File file) {
EntityManager em = ThreadLocalContext.get().getEntityManager();
// Get the file
Query q = em.createQuery("select f from File f where f.id = :id and f.deleteDate is null");
q.setParameter("id", file.getId());
File fileFromDb = (File) q.getSingleResult();
// Update the file
fileFromDb.setContent(file.getContent());
return file;
}
/**
* Update the document of a file.
*
* @param file File to update
* @return Updated file
*/
public File updateDocument(File file) {
public File update(File file) {
EntityManager em = ThreadLocalContext.get().getEntityManager();
// Get the file
@ -115,6 +95,8 @@ public class FileDao {
// Update the file
fileFromDb.setDocumentId(file.getDocumentId());
fileFromDb.setContent(file.getContent());
fileFromDb.setOrder(file.getOrder());
return file;
}

View File

@ -40,6 +40,7 @@ public class FileCreatedAsyncListener {
final File file = fileCreatedAsyncEvent.getFile();
long startTime = System.currentTimeMillis();
final String content = FileUtil.extractContent(fileCreatedAsyncEvent.getDocument(), file, fileCreatedAsyncEvent.getInputStream());
fileCreatedAsyncEvent.getInputStream().close();
log.info(MessageFormat.format("File content extracted in {0}ms", System.currentTimeMillis() - startTime));
// Store the OCR-ization result in the database
@ -48,7 +49,7 @@ public class FileCreatedAsyncListener {
public void run() {
FileDao fileDao = new FileDao();
file.setContent(content);
fileDao.updateContent(file);
fileDao.update(file);
}
});

View File

@ -204,9 +204,9 @@ public class FileResource extends BaseResource {
}
// Update the file
// TODO Reorder files to put the new one at the end
file.setDocumentId(documentId);
fileDao.updateDocument(file);
file.setOrder(fileDao.getByDocumentId(documentId).size());
fileDao.update(file);
// Raise a new file created event (it wasn't sent during file creation)
try {

View File

@ -238,5 +238,16 @@ public class TestFileResource extends BaseJerseyTest {
response = documentResource.post(ClientResponse.class, postParams);
Assert.assertEquals(Status.OK, Status.fromStatusCode(response.getStatus()));
json = response.getEntity(JSONObject.class);
// Get all files from a document
fileResource = resource().path("/file/list");
fileResource.addFilter(new CookieAuthenticationFilter(file2AuthenticationToken));
MultivaluedMapImpl getParams = new MultivaluedMapImpl();
getParams.putSingle("id", document1Id);
response = fileResource.queryParams(getParams).get(ClientResponse.class);
json = response.getEntity(JSONObject.class);
Assert.assertEquals(Status.OK, Status.fromStatusCode(response.getStatus()));
JSONArray files = json.getJSONArray("files");
Assert.assertEquals(1, files.length());
}
}