diff --git a/j-lawyer-client/lib/j-lawyer-cloud/j-lawyer-cloud.jar b/j-lawyer-client/lib/j-lawyer-cloud/j-lawyer-cloud.jar index 02474dc70..3eb0d9cb2 100644 Binary files a/j-lawyer-client/lib/j-lawyer-cloud/j-lawyer-cloud.jar and b/j-lawyer-client/lib/j-lawyer-cloud/j-lawyer-cloud.jar differ diff --git a/j-lawyer-server/j-lawyer-io/src/java/org/jlawyer/io/rest/v1/CasesEndpointLocalV1.java b/j-lawyer-server/j-lawyer-io/src/java/org/jlawyer/io/rest/v1/CasesEndpointLocalV1.java index ada7f84be..bc4ac71fa 100644 --- a/j-lawyer-server/j-lawyer-io/src/java/org/jlawyer/io/rest/v1/CasesEndpointLocalV1.java +++ b/j-lawyer-server/j-lawyer-io/src/java/org/jlawyer/io/rest/v1/CasesEndpointLocalV1.java @@ -667,6 +667,7 @@ You should also get your employer (if you work as a programmer) or school, import javax.ws.rs.core.Response; import org.jlawyer.io.rest.v1.pojo.RestfulCaseV1; import org.jlawyer.io.rest.v1.pojo.RestfulDocumentContentV1; +import org.jlawyer.io.rest.v1.pojo.RestfulDocumentV1; import org.jlawyer.io.rest.v1.pojo.RestfulPartyV1; /** @@ -690,6 +691,7 @@ public interface CasesEndpointLocalV1 { Response getCaseDocumentsInTrash(String id); Response getDocumentContent(String id); + Response getDocument(String id); Response getDueDates(String id); @@ -698,6 +700,7 @@ public interface CasesEndpointLocalV1 { Response createDocument(RestfulDocumentContentV1 document); Response updateDocument(RestfulDocumentContentV1 document); + Response updateDocument(RestfulDocumentV1 document); Response deleteDocument(String id); diff --git a/j-lawyer-server/j-lawyer-io/src/java/org/jlawyer/io/rest/v1/CasesEndpointV1.java b/j-lawyer-server/j-lawyer-io/src/java/org/jlawyer/io/rest/v1/CasesEndpointV1.java index fac4d6810..ccac7482a 100644 --- a/j-lawyer-server/j-lawyer-io/src/java/org/jlawyer/io/rest/v1/CasesEndpointV1.java +++ b/j-lawyer-server/j-lawyer-io/src/java/org/jlawyer/io/rest/v1/CasesEndpointV1.java @@ -667,6 +667,7 @@ You should also get your employer (if you work as a programmer) or school, import com.jdimension.jlawyer.persistence.ArchiveFileAddressesBean; import com.jdimension.jlawyer.persistence.ArchiveFileBean; import com.jdimension.jlawyer.persistence.ArchiveFileDocumentsBean; +import com.jdimension.jlawyer.persistence.ArchiveFileDocumentsBeanFacadeLocal; import com.jdimension.jlawyer.persistence.ArchiveFileFormsBean; import com.jdimension.jlawyer.persistence.ArchiveFileReviewsBean; import com.jdimension.jlawyer.persistence.ArchiveFileTagsBean; @@ -1012,20 +1013,7 @@ private Response getCaseDocuments(String caseId, boolean deleted) { Collection documents = cases.getDocuments(caseId, deleted); ArrayList docList = new ArrayList<>(); for (ArchiveFileDocumentsBean doc : documents) { - RestfulDocumentV1 d = new RestfulDocumentV1(); - d.setId(doc.getId()); - d.setExternalId(doc.getExternalId()); - d.setVersion(doc.getVersion()); - d.setName(doc.getName()); - d.setCreationDate(doc.getCreationDate()); - d.setChangeDate(doc.getChangeDate()); - d.setFavorite(doc.isFavorite()); - d.setSize(doc.getSize()); - d.setHighlight1(doc.getHighlight1()); - d.setHighlight2(doc.getHighlight2()); - if(doc.getFolder()!=null) - d.setFolderId(doc.getFolder().getId()); - docList.add(d); + docList.add(RestfulDocumentV1.fromDocumentsBean(doc)); } Response res = Response.ok(docList).build(); @@ -1037,6 +1025,35 @@ private Response getCaseDocuments(String caseId, boolean deleted) { } } + /** + * Returns a a document given its ID. + * + * @param id document ID + * @response 401 User not authorized + * @response 403 User not authenticated + */ + @Override + @GET + @Produces(MediaType.APPLICATION_JSON+";charset=utf-8") + @Path("/document/{id}") + @RolesAllowed({"readArchiveFileRole"}) + public Response getDocument(@PathParam("id") String id) { + //http://localhost:8080/j-lawyer-io/rest/cases/document/0c6f1f867f00010173b54cfcd4cce056/content + try { + InitialContext ic = new InitialContext(); + ArchiveFileServiceLocal cases = (ArchiveFileServiceLocal) ic.lookup("java:global/j-lawyer-server/j-lawyer-server-ejb/ArchiveFileService!com.jdimension.jlawyer.services.ArchiveFileServiceLocal"); + ArchiveFileDocumentsBean doc = cases.getDocument(id); + if (doc == null) { + log.error("can not get document " + id); + return Response.serverError().build(); + } + return Response.ok(RestfulDocumentV1.fromDocumentsBean(doc)).build(); + } catch (Exception ex) { + log.error("can not get document " + id, ex); + return Response.serverError().build(); + } + } + /** * Returns a a documents content given its ID. The return value is Base64 * encoded. @@ -1307,6 +1324,71 @@ public Response updateDocument(RestfulDocumentContentV1 document) { } + /** + * Updates a documents metadata. + * + * @param document the documents new data + * @response 401 User not authorized + * @response 403 User not authenticated + */ + @Override + @PUT + @Produces(MediaType.APPLICATION_JSON+";charset=utf-8") + @Consumes(MediaType.APPLICATION_JSON) + @Path("/document/update-metadata") + @RolesAllowed({"writeArchiveFileRole"}) + public Response updateDocument(RestfulDocumentV1 document) { + + // curl -X PUT "http://localhost:8080/j-lawyer-io/rest/cases/document/update" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"base64content\": \"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Zz5jb20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCTxhcnJheT4KCQkJPGRpY3Q+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNSG9yaXpvbnRhbFJlczwva2V5PgoJCQkJPHJlYWw+NzI8L3JlYWw+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQk8L2RpY3Q+CgkJPC9hcnJheT4KCTwvZGljdD4KCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1PcmllbnRhdGlvbjwva2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJCQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1PcmllbnRhdGlvbjwva2V5PgoJCQkJPGludGVnZXI+MTwvaW50ZWdlcj4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVNjYWxpbmc8L2tleT4KCTxkaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJPHN0cmluZz5jb20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCTxhcnJheT4KCQkJPGRpY3Q+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNU2NhbGluZzwva2V5PgoJCQkJPHJlYWw+MTwvcmVhbD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsUmVzPC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLmpvYnRpY2tldDwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsUmVzPC9rZXk+CgkJCQk8cmVhbD43MjwvcmVhbD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsU2NhbGluZzwva2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJCQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1WZXJ0aWNhbFNjYWxpbmc8L2tleT4KCQkJCTxyZWFsPjE8L3JlYWw+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQk8L2RpY3Q+CgkJPC9hcnJheT4KCTwvZGljdD4KCTxrZXk+Y29tLmFwcGxlLnByaW50LnN1YlRpY2tldC5wYXBlcl9pbmZvX3RpY2tldDwva2V5PgoJPGRpY3Q+CgkJPGtleT5QTVBQRFBhcGVyQ29kZU5hbWU8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0cmluZz5jb20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5QTVBQRFBhcGVyQ29kZU5hbWU8L2tleT4KCQkJCQk8c3RyaW5nPkE0PC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+UE1UaW9nYVBhcGVyTmFtZTwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PlBNVGlvZ2FQYXBlck5hbWU8L2tleT4KCQkJCQk8c3RyaW5nPmlzby1hNDwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNQWRqdXN0ZWRQYWdlUmVjdDwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNQWRqdXN0ZWRQYWdlUmVjdDwva2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCQkJPHJlYWw+NzgzPC9yZWFsPgoJCQkJCQk8cmVhbD41NTk8L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUFkanVzdGVkUGFwZXJSZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLmpvYnRpY2tldDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHJlYWw+LTE4PC9yZWFsPgoJCQkJCQk8cmVhbD4tMTg8L3JlYWw+CgkJCQkJCTxyZWFsPjgyNDwvcmVhbD4KCQkJCQkJPHJlYWw+NTc3PC9yZWFsPgoJCQkJCTwvYXJyYXk+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVBhcGVyTmFtZTwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYXBlckluZm8uUE1QYXBlck5hbWU8L2tleT4KCQkJCQk8c3RyaW5nPmlzby1hNDwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYXBlckluZm8uUE1VbmFkanVzdGVkUGFnZVJlY3Q8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0cmluZz5jb20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBhZ2VSZWN0PC9rZXk+CgkJCQkJPGFycmF5PgoJCQkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJCQk8cmVhbD43ODM8L3JlYWw+CgkJCQkJCTxyZWFsPjU1OTwvcmVhbD4KCQkJCQk8L2FycmF5PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYXBlckluZm8uUE1VbmFkanVzdGVkUGFwZXJSZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLmpvYnRpY2tldDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVVuYWRqdXN0ZWRQYXBlclJlY3Q8L2tleT4KCQkJCQk8YXJyYXk+CgkJCQkJCTxyZWFsPi0xODwvcmVhbD4KCQkJCQkJPHJlYWw+LTE4PC9yZWFsPgoJCQkJCQk8cmVhbD44MjQ8L3JlYWw+CgkJCQkJCTxyZWFsPjU3NzwvcmVhbD4KCQkJCQk8L2FycmF5PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYXBlckluZm8ucHBkLlBNUGFwZXJOYW1lPC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLmpvYnRpY2tldDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5wcGQuUE1QYXBlck5hbWU8L2tleT4KCQkJCQk8c3RyaW5nPkE0PC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5BUElWZXJzaW9uPC9rZXk+CgkJPHN0cmluZz4wMC4yMDwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC50eXBlPC9rZXk+CgkJPHN0cmluZz5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvVGlja2V0PC9zdHJpbmc+Cgk8L2RpY3Q+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuQVBJVmVyc2lvbjwva2V5PgoJPHN0cmluZz4wMC4yMDwvc3RyaW5nPgoJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnR5cGU8L2tleT4KCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXRUaWNrZXQ8L3N0cmluZz4KPC9kaWN0Pgo8L3BsaXN0PgoAOEJJTQPtAAAAAAAQAEgAAAABAAIASAAAAAEAAjhCSU0EJgAAAAAADgAAAAAAAAAAAAA/gAAAOEJJTQQNAAAAAAAEAAAAeDhCSU0EGQAAAAAABAAAAB44QklNA/MAAAAAAAkAAAAAAAAAAAEAOEJJTQQKAAAAAAABAAA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0EAAAAAAAAAgABOEJJTQQCAAAAAAAEAAAAADhCSU0EMAAAAAAAAgEBOEJJTQQtAAAAAAAGAAEAAAACOEJJTQQIAAAAAAAQ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eG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iIGRjOmZvcm1hdD0iaW1hZ2UvanBlZyIgeGFwOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1MzIE1hY2ludG9zaCIgeGFwOkNyZWF0ZURhdGU9IjIwMTgtMTEtMDdUMTk6NTg6MDIrMDE6MDAiIHhhcDpNb2RpZnlEYXRlPSIyMDE4LTExLTA3VDE5OjU4OjAyKzAxOjAwIiB4YXA6TWV0YWRhdGFEYXRlPSIyMDE4LTExLTA3VDE5OjU4OjAyKzAxOjAwIiB4YXBNTTpEb2N1bWVudElEPSJ1dWlkOkFFODg5Mzg4NTlFNEU4MTE5MzEwQTI2QkZDMTBENThBIiB4YXBNTTpJbnN0YW5jZUlEPSJ1dWlkOkFGODg5Mzg4NTlFNEU4MTE5MzEwQTI2QkZDMTBENThBIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHBob3Rvc2hvcDpIaXN0b3J5PSIiIHRpZmY6T3JpZW50YXRpb249IjEiIHRpZmY6WFJlc29sdXRpb249IjcyMDAwMC8xMDAwMCIgdGlmZjpZUmVzb2x1dGlvbj0iNzIwMDAwLzEwMDAwIiB0aWZmOlJlc29sdXRpb25Vbml0PSIyIiB0aWZmOk5hdGl2ZURpZ2VzdD0iMjU2LDI1NywyNTgsMjU5LDI2MiwyNzQsMjc3LDI4NCw1MzAsNTMxLDI4MiwyODMsMjk2LDMwMSwzMTgsMzE5LDUyOSw1MzIsMzA2LDI3MCwyNzEsMjcyLDMwNSwzMTUsMzM0MzI7NTU2MjFFNDY0NDAyM0NGRTRERkEyMDNDNEQyNjJGRUYiIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSIyMTEiIGV4aWY6UGl4ZWxZRGltZW5zaW9uPSIxNzIiIGV4aWY6Q29sb3JTcGFjZT0iMSIgZXhpZjpOYXRpdmVEaWdlc3Q9IjM2ODY0LDQwOTYwLDQwOTYxLDM3MTIxLDM3MTIyLDQwOTYyLDQwOTYzLDM3NTEwLDQwOTY0LDM2ODY3LDM2ODY4LDMzNDM0LDMzNDM3LDM0ODUwLDM0ODUyLDM0ODU1LDM0ODU2LDM3Mzc3LDM3Mzc4LDM3Mzc5LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzk2LDQxNDgzLDQxNDg0LDQxNDg2LDQxNDg3LDQxNDg4LDQxNDkyLDQxNDkzLDQxNDk1LDQxNzI4LDQxNzI5LDQxNzMwLDQxOTg1LDQxOTg2LDQxOTg3LDQxOTg4LDQxOTg5LDQxOTkwLDQxOTkxLDQxOTkyLDQxOTkzLDQxOTk0LDQxOTk1LDQxOTk2LDQyMDE2LDAsMiw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwyMCwyMiwyMywyNCwyNSwyNiwyNywyOCwzMDszOUUxMURCQTBGMTFCNDc5M0UyRDBCQ0VERkYwMDE2NyI+IDx4YXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ1dWlkOjhBM0YzODRCNTlFNEU4MTE5MzEwQTI2QkZDMTBENThBIiBzdFJlZjpkb2N1bWVudElEPSJ1dWlkOjhBM0YzODRCNTlFNEU4MTE5MzEwQTI2QkZDMTBENThBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/eHBhY2tldCBlbmQ9InciPz7/4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABtbnRyUkdCIFhZ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\", \"caseId\": \"string\", \"fileName\": \"schnuffelschnaffel.jpg\", \"id\": \"a0d1d7487f0001016dd877cd9684ba8e\"}" + try { + + InitialContext ic = new InitialContext(); + ArchiveFileServiceLocal cases = (ArchiveFileServiceLocal) ic.lookup("java:global/j-lawyer-server/j-lawyer-server-ejb/ArchiveFileService!com.jdimension.jlawyer.services.ArchiveFileServiceLocal"); + + if(document.getFolderId()!=null) { + ArrayList docIds=new ArrayList<>(); + docIds.add(document.getId()); + cases.moveDocumentsToFolder(docIds, document.getFolderId()); + } + + if(document.getExternalId()!=null) { + cases.updateDocumentExternalId(document.getId(), document.getExternalId()); + } + + ArchiveFileDocumentsBean currentDoc = cases.getDocument(document.getId()); + if (currentDoc == null) { + log.error("document with id " + document.getId() + " does not exist"); + Response res = Response.serverError().build(); + return res; + } + + if (document.getName()!=null && !currentDoc.getName().equals(document.getName())) { + currentDoc.setName(document.getName()); + } + currentDoc.setChangeDate(document.getChangeDate()); + currentDoc.setCreationDate(document.getCreationDate()); + currentDoc.setHighlight1(document.getHighlight1()); + currentDoc.setHighlight2(document.getHighlight2()); + currentDoc.setExternalId(document.getExternalId()); + currentDoc.setFavorite(document.isFavorite()); + + ArchiveFileDocumentsBeanFacadeLocal docs = (ArchiveFileDocumentsBeanFacadeLocal) ic.lookup("java:global/j-lawyer-server/j-lawyer-server-ejb/ArchiveFileDocumentsBeanFacade!com.jdimension.jlawyer.persistence.ArchiveFileDocumentsBeanFacadeLocal"); + docs.edit(currentDoc); + + + + + Response res = Response.ok(RestfulDocumentV1.fromDocumentsBean(currentDoc)).build(); + + return res; + } catch (Exception ex) { + log.error("can not update metadata of document " + document.getId() + " " + document.getName(), ex); + Response res = Response.serverError().build(); + return res; + } + + } + /** diff --git a/j-lawyer-server/j-lawyer-io/src/java/org/jlawyer/io/rest/v1/pojo/RestfulDocumentV1.java b/j-lawyer-server/j-lawyer-io/src/java/org/jlawyer/io/rest/v1/pojo/RestfulDocumentV1.java index 6cd4e7207..5ba13c51a 100644 --- a/j-lawyer-server/j-lawyer-io/src/java/org/jlawyer/io/rest/v1/pojo/RestfulDocumentV1.java +++ b/j-lawyer-server/j-lawyer-io/src/java/org/jlawyer/io/rest/v1/pojo/RestfulDocumentV1.java @@ -216,7 +216,7 @@ includes interface definition files associated with source files for permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. - d) If the work has interactive user interfaces, each must display + doc) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. @@ -261,7 +261,7 @@ conveying of source, or (2) access to copy the only if you received the object code with such an offer, in accord with subsection 6b. - d) Convey the object code by offering access from a designated + doc) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the @@ -362,7 +362,7 @@ add to a covered work, you may (if authorized by the copyright holders of requiring that modified versions of such material be marked in reasonable ways as different from the original version; or - d) Limiting the use for publicity purposes of names of licensors or + doc) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some @@ -663,6 +663,7 @@ You should also get your employer (if you work as a programmer) or school, */ package org.jlawyer.io.rest.v1.pojo; +import com.jdimension.jlawyer.persistence.ArchiveFileDocumentsBean; import java.util.Date; /** @@ -670,22 +671,40 @@ You should also get your employer (if you work as a programmer) or school, * @author jens */ public class RestfulDocumentV1 { - - private String id=null; - private String externalId=null; - private String name=null; - private Date creationDate=null; - private Date changeDate=null; - private long size=0l; - private boolean favorite=false; - protected String folderId=null; - protected long version=1l; - protected int highlight1=-1; - protected int highlight2=-1; + + private String id = null; + private String externalId = null; + private String name = null; + private Date creationDate = null; + private Date changeDate = null; + private long size = 0l; + private boolean favorite = false; + protected String folderId = null; + protected long version = 1l; + protected int highlight1 = -1; + protected int highlight2 = -1; public RestfulDocumentV1() { } + public static RestfulDocumentV1 fromDocumentsBean(ArchiveFileDocumentsBean d) { + RestfulDocumentV1 doc = new RestfulDocumentV1(); + doc.setId(d.getId()); + doc.setExternalId(d.getExternalId()); + doc.setVersion(d.getVersion()); + doc.setName(d.getName()); + doc.setCreationDate(d.getCreationDate()); + doc.setChangeDate(d.getChangeDate()); + doc.setFavorite(d.isFavorite()); + doc.setSize(d.getSize()); + doc.setHighlight1(d.getHighlight1()); + doc.setHighlight2(d.getHighlight2()); + if (d.getFolder() != null) { + doc.setFolderId(d.getFolder().getId()); + } + return doc; + } + /** * @return the id */ @@ -839,7 +858,5 @@ public String getExternalId() { public void setExternalId(String externalId) { this.externalId = externalId; } - - - + }