Skip to content

Commit

Permalink
Added 'path' to DocumentEvent (#9)
Browse files Browse the repository at this point in the history
  • Loading branch information
mfriesen committed Feb 6, 2021
1 parent f7ce225 commit 8a1c54c
Show file tree
Hide file tree
Showing 4 changed files with 104 additions and 56 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ spotless {
}

allprojects {
version = '1.2.3'
version = '1.2.4'
group = 'com.formkiq.stacks'
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ public class DocumentEvent {
private String content;
/** Document Content Type. */
private String contentType;
/** Docuemnt Path. */
private String path;

/**
* constructor.
Expand Down Expand Up @@ -215,4 +217,24 @@ public DocumentEvent contentType(final String data) {
this.contentType = data;
return this;
}

/**
* Get {@link DocumentEvent} Path.
*
* @return {@link String}
*/
public String path() {
return this.path;
}

/**
* Set {@link DocumentEvent} Path.
*
* @param s {@link String}
* @return {@link DocumentEvent}
*/
public DocumentEvent path(final String s) {
this.path = s;
return this;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -454,9 +454,10 @@ private void sendSnsMessage(final LambdaLogger logger, final String eventType,

String site = siteId != null ? siteId : SiteIdKeyGenerator.DEFAULT_SITE_ID;

DocumentEvent event = new DocumentEvent().siteId(site)
.documentId(resetDatabaseKey(siteId, doc.getDocumentId())).s3bucket(s3Bucket).s3key(s3Key)
.type(eventType).userId(doc.getUserId()).content(content).contentType(doc.getContentType());
DocumentEvent event =
new DocumentEvent().siteId(site).documentId(resetDatabaseKey(siteId, doc.getDocumentId()))
.s3bucket(s3Bucket).s3key(s3Key).type(eventType).userId(doc.getUserId())
.content(content).contentType(doc.getContentType()).path(doc.getPath());

String eventJson = this.gson.toJson(event);
if (eventJson.length() > MAX_SNS_MESSAGE_SIZE) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -188,11 +188,13 @@ public static void beforeClass() throws URISyntaxException, InterruptedException
* @param sqsQueueUrl {@link String}
* @param eventType {@link String}
* @param hasContent boolean
* @param childDoc boolean
* @throws InterruptedException InterruptedException
*/
@SuppressWarnings("unchecked")
private void assertPublishSnsMessage(final String siteId, final String sqsQueueUrl,
final String eventType, final boolean hasContent) throws InterruptedException {
final String eventType, final boolean hasContent, final boolean childDoc)
throws InterruptedException {

List<Message> msgs = sqsService.receiveMessages(sqsQueueUrl).messages();
while (msgs.size() != 1) {
Expand All @@ -206,9 +208,12 @@ private void assertPublishSnsMessage(final String siteId, final String sqsQueueU

map = this.gson.fromJson(message, Map.class);
assertNotNull(map.get("documentId"));

assertEquals(eventType, map.get("type"));

if (!childDoc) {
assertNotNull(map.get("path"));
}

if (hasContent) {
assertEquals("text/plain", map.get("contentType"));
assertNotNull(map.get("content"));
Expand Down Expand Up @@ -282,6 +287,7 @@ public void testHandleRequest01() throws Exception {
doc.setInsertedDate(new Date());
doc.setDocumentId(BUCKET_KEY);
doc.setUserId("joe");
doc.setPath("test.txt");
service.saveDocumentItemWithTag(siteId, doc);

addS3File(key, "pdf", false, "testdata");
Expand All @@ -293,25 +299,35 @@ public void testHandleRequest01() throws Exception {
PaginationResults<DocumentTag> tags =
service.findDocumentTags(siteId, BUCKET_KEY, null, MAX_RESULTS);

assertEquals(2, tags.getResults().size());
assertEquals("untagged", tags.getResults().get(0).getKey());
assertEquals("true", tags.getResults().get(0).getValue());
assertEquals(BUCKET_KEY, tags.getResults().get(0).getDocumentId());
assertEquals(DocumentTagType.SYSTEMDEFINED, tags.getResults().get(0).getType());
assertEquals("joe", tags.getResults().get(0).getUserId());
assertNotNull(tags.getResults().get(0).getInsertedDate());

assertEquals("userId", tags.getResults().get(1).getKey());
assertEquals("joe", tags.getResults().get(1).getValue());
assertEquals(BUCKET_KEY, tags.getResults().get(1).getDocumentId());
assertEquals(DocumentTagType.SYSTEMDEFINED, tags.getResults().get(1).getType());
assertEquals("joe", tags.getResults().get(1).getUserId());
assertNotNull(tags.getResults().get(1).getInsertedDate());
final int count = 3;
assertEquals(count, tags.getResults().size());

int i = 0;
assertEquals("path", tags.getResults().get(i).getKey());
assertEquals("test.txt", tags.getResults().get(i).getValue());
assertEquals(BUCKET_KEY, tags.getResults().get(i).getDocumentId());
assertEquals(DocumentTagType.SYSTEMDEFINED, tags.getResults().get(i).getType());
assertEquals("joe", tags.getResults().get(i).getUserId());
assertNotNull(tags.getResults().get(i++).getInsertedDate());

assertEquals("untagged", tags.getResults().get(i).getKey());
assertEquals("true", tags.getResults().get(i).getValue());
assertEquals(BUCKET_KEY, tags.getResults().get(i).getDocumentId());
assertEquals(DocumentTagType.SYSTEMDEFINED, tags.getResults().get(i).getType());
assertEquals("joe", tags.getResults().get(i).getUserId());
assertNotNull(tags.getResults().get(i++).getInsertedDate());

assertEquals("userId", tags.getResults().get(i).getKey());
assertEquals("joe", tags.getResults().get(i).getValue());
assertEquals(BUCKET_KEY, tags.getResults().get(i).getDocumentId());
assertEquals(DocumentTagType.SYSTEMDEFINED, tags.getResults().get(i).getType());
assertEquals("joe", tags.getResults().get(i).getUserId());
assertNotNull(tags.getResults().get(i++).getInsertedDate());

assertEquals(0,
service.findDocumentFormats(siteId, BUCKET_KEY, null, MAX_RESULTS).getResults().size());
verifyDocumentSaved(siteId, item, "pdf", "8");
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "create", false);
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "create", false, false);
}
}

Expand All @@ -335,7 +351,8 @@ public void testHandleRequest02() throws Exception {
doc.setInsertedDate(new Date());
doc.setDocumentId(BUCKET_KEY);
doc.setUserId("asd");

doc.setPath("test.txt");

DynamicDocumentTag tag = new DynamicDocumentTag(Map.of("documentId", BUCKET_KEY, "key",
"person", "value", "category", "insertedDate", new Date(), "userId", "asd"));
doc.put("tags", Arrays.asList(tag));
Expand All @@ -357,24 +374,27 @@ public void testHandleRequest02() throws Exception {
PaginationResults<DocumentTag> tags =
service.findDocumentTags(siteId, BUCKET_KEY, null, MAX_RESULTS);

final int size = 4;
final int size = 5;
int i = 0;
assertEquals(size, tags.getResults().size());
assertEquals("CLAMAV_SCAN_STATUS", tags.getResults().get(0).getKey());
assertEquals("GOOD", tags.getResults().get(0).getValue());
assertEquals(DocumentTagType.SYSTEMDEFINED, tags.getResults().get(0).getType());
assertEquals("person", tags.getResults().get(1).getKey());
assertEquals(DocumentTagType.USERDEFINED, tags.getResults().get(1).getType());
assertEquals("12345", tags.getResults().get(2).getValue());
assertEquals(DocumentTagType.USERDEFINED, tags.getResults().get(2).getType());
assertEquals("12345", tags.getResults().get(2).getValue());
assertEquals(DocumentTagType.SYSTEMDEFINED, tags.getResults().get(size - 1).getType());
assertEquals("asd", tags.getResults().get(size - 1).getValue());
assertEquals("CLAMAV_SCAN_STATUS", tags.getResults().get(i).getKey());
assertEquals("GOOD", tags.getResults().get(i).getValue());
assertEquals(DocumentTagType.SYSTEMDEFINED, tags.getResults().get(i++).getType());
assertEquals("path", tags.getResults().get(i).getKey());
assertEquals(DocumentTagType.SYSTEMDEFINED, tags.getResults().get(i++).getType());
assertEquals("person", tags.getResults().get(i).getKey());
assertEquals(DocumentTagType.USERDEFINED, tags.getResults().get(i++).getType());
assertEquals("12345", tags.getResults().get(i).getValue());
assertEquals(DocumentTagType.USERDEFINED, tags.getResults().get(i).getType());
assertEquals("12345", tags.getResults().get(i++).getValue());
assertEquals(DocumentTagType.SYSTEMDEFINED, tags.getResults().get(i).getType());
assertEquals("asd", tags.getResults().get(i++).getValue());

assertEquals(0,
service.findDocumentFormats(siteId, BUCKET_KEY, null, MAX_RESULTS).getResults().size());

verifyDocumentSaved(siteId, item, "pdf", "8");
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "update", false);
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "update", false, false);
}
}

Expand All @@ -397,6 +417,7 @@ public void testHandleRequest03() throws Exception {
DynamicDocumentItem doc = new DynamicDocumentItem(Map.of());
doc.setInsertedDate(new Date());
doc.setDocumentId(BUCKET_KEY);
doc.setPath("test.txt");

DynamicDocumentTag tag = new DynamicDocumentTag(Map.of("documentId", BUCKET_KEY, "key",
"person", "value", "category", "insertedDate", new Date(), "userId", "asd"));
Expand All @@ -411,7 +432,7 @@ public void testHandleRequest03() throws Exception {

// then
assertNull(item);
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "delete", false);
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "delete", false, true);
}
}

Expand All @@ -436,6 +457,7 @@ public void testHandleRequest04() throws Exception {
DynamicDocumentItem doc = new DynamicDocumentItem(Map.of());
doc.setInsertedDate(new Date());
doc.setDocumentId(BUCKET_KEY);
doc.setPath("test.txt");
doc.setUserId("joe");

DynamicDocumentItem child = new DynamicDocumentItem(Map.of());
Expand All @@ -462,26 +484,26 @@ public void testHandleRequest04() throws Exception {
.key(keysDocument(siteId, child.getDocumentId())).build()).item();
assertNull(m.get(GSI1_PK));
}
assertEquals(2, tags.getResults().size());
assertEquals("untagged", tags.getResults().get(0).getKey());
assertEquals("true", tags.getResults().get(0).getValue());
assertEquals(BUCKET_KEY, tags.getResults().get(0).getDocumentId());
assertEquals(DocumentTagType.SYSTEMDEFINED, tags.getResults().get(0).getType());
assertEquals("joe", tags.getResults().get(0).getUserId());
assertNotNull(tags.getResults().get(0).getInsertedDate());

assertEquals("userId", tags.getResults().get(1).getKey());
assertEquals("joe", tags.getResults().get(1).getValue());
assertEquals(BUCKET_KEY, tags.getResults().get(1).getDocumentId());
assertEquals(DocumentTagType.SYSTEMDEFINED, tags.getResults().get(1).getType());
assertEquals("joe", tags.getResults().get(1).getUserId());
assertNotNull(tags.getResults().get(1).getInsertedDate());

final int count = 3;
int i = 0;
assertEquals(count, tags.getResults().size());
assertDocumentTagEquals(new DocumentTag().setKey("path").setValue("test.txt")
.setDocumentId(BUCKET_KEY).setType(DocumentTagType.SYSTEMDEFINED).setUserId("joe"),
tags.getResults().get(i++));

assertDocumentTagEquals(new DocumentTag().setKey("untagged").setValue("true")
.setDocumentId(BUCKET_KEY).setType(DocumentTagType.SYSTEMDEFINED).setUserId("joe"),
tags.getResults().get(i++));
assertDocumentTagEquals(new DocumentTag().setKey("userId").setValue("joe")
.setDocumentId(BUCKET_KEY).setType(DocumentTagType.SYSTEMDEFINED).setUserId("joe"),
tags.getResults().get(i++));

assertEquals(0,
service.findDocumentFormats(siteId, BUCKET_KEY, null, MAX_RESULTS).getResults().size());
verifyDocumentSaved(siteId, item, "pdf", "8");
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "create", false);
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "create", false, true);

tags = service.findDocumentTags(siteId, documentId, null, MAX_RESULTS);
assertEquals(0, tags.getResults().size());
Expand Down Expand Up @@ -584,6 +606,7 @@ public void testHandleRequest06() throws Exception {
doc.setInsertedDate(new Date());
doc.setDocumentId(BUCKET_KEY);
doc.setUserId("joe");
doc.setPath("test.txt");
service.saveDocumentItemWithTag(siteId, doc);

addS3File(key, "text/plain", false, "testdata");
Expand All @@ -593,7 +616,7 @@ public void testHandleRequest06() throws Exception {

// then
verifyDocumentSaved(siteId, item, "text/plain", "8");
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "create", true);
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "create", true, false);
}
}

Expand All @@ -617,6 +640,7 @@ public void testHandleRequest07() throws Exception {
doc.setInsertedDate(new Date());
doc.setDocumentId(BUCKET_KEY);
doc.setUserId("joe");
doc.setPath("test.txt");
service.saveDocumentItemWithTag(siteId, doc);

String content = loadFile(this, "/256kb-text.txt");
Expand All @@ -627,7 +651,7 @@ public void testHandleRequest07() throws Exception {

// then
verifyDocumentSaved(siteId, item, "text/plain", "" + content.length());
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "create", false);
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "create", false, false);
}
}

Expand All @@ -651,6 +675,7 @@ public void testHandleRequest08() throws Exception {
doc.setInsertedDate(new Date());
doc.setDocumentId(BUCKET_KEY);
doc.setUserId("joe");
doc.setPath("test.txt");
service.saveDocumentItemWithTag(siteId, doc);

String content = loadFile(this, "/255kb-text.txt");
Expand All @@ -661,7 +686,7 @@ public void testHandleRequest08() throws Exception {

// then
verifyDocumentSaved(siteId, item, "text/plain", "" + content.length());
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "create", false);
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "create", false, false);
}
}

Expand All @@ -685,6 +710,7 @@ public void testHandleRequest09() throws Exception {
doc.setInsertedDate(new Date());
doc.setDocumentId(BUCKET_KEY);
doc.setUserId("joe");
doc.setPath("test.txt");
doc.put("TimeToLive", ttl);
service.saveDocumentItemWithTag(siteId, doc);

Expand Down Expand Up @@ -713,7 +739,7 @@ public void testHandleRequest09() throws Exception {
}

verifyDocumentSaved(siteId, item, "pdf", "8");
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "create", false);
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "create", false, false);
}
}

Expand Down Expand Up @@ -772,7 +798,6 @@ private DocumentItem verifyDocumentSaved(final String siteId, final DocumentItem

assertEquals(contentType, item.getContentType());
assertEquals(contentLength, item.getContentLength().toString());
assertNull(item.getPath());

try (S3Client s3 = s3service.buildClient()) {
s3service.deleteAllObjectTags(s3, "example-bucket", item.getDocumentId());
Expand Down

0 comments on commit 8a1c54c

Please sign in to comment.