Skip to content

Commit 8a1c54c

Browse files
authored
Added 'path' to DocumentEvent (#9)
1 parent f7ce225 commit 8a1c54c

File tree

4 files changed

+104
-56
lines changed

4 files changed

+104
-56
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ spotless {
1616
}
1717

1818
allprojects {
19-
version = '1.2.3'
19+
version = '1.2.4'
2020
group = 'com.formkiq.stacks'
2121
}
2222

lambda-s3/src/main/java/com/formkiq/stacks/lambda/s3/DocumentEvent.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ public class DocumentEvent {
4848
private String content;
4949
/** Document Content Type. */
5050
private String contentType;
51+
/** Docuemnt Path. */
52+
private String path;
5153

5254
/**
5355
* constructor.
@@ -215,4 +217,24 @@ public DocumentEvent contentType(final String data) {
215217
this.contentType = data;
216218
return this;
217219
}
220+
221+
/**
222+
* Get {@link DocumentEvent} Path.
223+
*
224+
* @return {@link String}
225+
*/
226+
public String path() {
227+
return this.path;
228+
}
229+
230+
/**
231+
* Set {@link DocumentEvent} Path.
232+
*
233+
* @param s {@link String}
234+
* @return {@link DocumentEvent}
235+
*/
236+
public DocumentEvent path(final String s) {
237+
this.path = s;
238+
return this;
239+
}
218240
}

lambda-s3/src/main/java/com/formkiq/stacks/lambda/s3/DocumentsS3Update.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -454,9 +454,10 @@ private void sendSnsMessage(final LambdaLogger logger, final String eventType,
454454

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

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

461462
String eventJson = this.gson.toJson(event);
462463
if (eventJson.length() > MAX_SNS_MESSAGE_SIZE) {

lambda-s3/src/test/java/com/formkiq/stacks/lambda/s3/DocumentsS3UpdateTest.java

Lines changed: 77 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -188,11 +188,13 @@ public static void beforeClass() throws URISyntaxException, InterruptedException
188188
* @param sqsQueueUrl {@link String}
189189
* @param eventType {@link String}
190190
* @param hasContent boolean
191+
* @param childDoc boolean
191192
* @throws InterruptedException InterruptedException
192193
*/
193194
@SuppressWarnings("unchecked")
194195
private void assertPublishSnsMessage(final String siteId, final String sqsQueueUrl,
195-
final String eventType, final boolean hasContent) throws InterruptedException {
196+
final String eventType, final boolean hasContent, final boolean childDoc)
197+
throws InterruptedException {
196198

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

207209
map = this.gson.fromJson(message, Map.class);
208210
assertNotNull(map.get("documentId"));
209-
210211
assertEquals(eventType, map.get("type"));
211212

213+
if (!childDoc) {
214+
assertNotNull(map.get("path"));
215+
}
216+
212217
if (hasContent) {
213218
assertEquals("text/plain", map.get("contentType"));
214219
assertNotNull(map.get("content"));
@@ -282,6 +287,7 @@ public void testHandleRequest01() throws Exception {
282287
doc.setInsertedDate(new Date());
283288
doc.setDocumentId(BUCKET_KEY);
284289
doc.setUserId("joe");
290+
doc.setPath("test.txt");
285291
service.saveDocumentItemWithTag(siteId, doc);
286292

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

296-
assertEquals(2, tags.getResults().size());
297-
assertEquals("untagged", tags.getResults().get(0).getKey());
298-
assertEquals("true", tags.getResults().get(0).getValue());
299-
assertEquals(BUCKET_KEY, tags.getResults().get(0).getDocumentId());
300-
assertEquals(DocumentTagType.SYSTEMDEFINED, tags.getResults().get(0).getType());
301-
assertEquals("joe", tags.getResults().get(0).getUserId());
302-
assertNotNull(tags.getResults().get(0).getInsertedDate());
303-
304-
assertEquals("userId", tags.getResults().get(1).getKey());
305-
assertEquals("joe", tags.getResults().get(1).getValue());
306-
assertEquals(BUCKET_KEY, tags.getResults().get(1).getDocumentId());
307-
assertEquals(DocumentTagType.SYSTEMDEFINED, tags.getResults().get(1).getType());
308-
assertEquals("joe", tags.getResults().get(1).getUserId());
309-
assertNotNull(tags.getResults().get(1).getInsertedDate());
302+
final int count = 3;
303+
assertEquals(count, tags.getResults().size());
304+
305+
int i = 0;
306+
assertEquals("path", tags.getResults().get(i).getKey());
307+
assertEquals("test.txt", tags.getResults().get(i).getValue());
308+
assertEquals(BUCKET_KEY, tags.getResults().get(i).getDocumentId());
309+
assertEquals(DocumentTagType.SYSTEMDEFINED, tags.getResults().get(i).getType());
310+
assertEquals("joe", tags.getResults().get(i).getUserId());
311+
assertNotNull(tags.getResults().get(i++).getInsertedDate());
312+
313+
assertEquals("untagged", tags.getResults().get(i).getKey());
314+
assertEquals("true", tags.getResults().get(i).getValue());
315+
assertEquals(BUCKET_KEY, tags.getResults().get(i).getDocumentId());
316+
assertEquals(DocumentTagType.SYSTEMDEFINED, tags.getResults().get(i).getType());
317+
assertEquals("joe", tags.getResults().get(i).getUserId());
318+
assertNotNull(tags.getResults().get(i++).getInsertedDate());
319+
320+
assertEquals("userId", tags.getResults().get(i).getKey());
321+
assertEquals("joe", tags.getResults().get(i).getValue());
322+
assertEquals(BUCKET_KEY, tags.getResults().get(i).getDocumentId());
323+
assertEquals(DocumentTagType.SYSTEMDEFINED, tags.getResults().get(i).getType());
324+
assertEquals("joe", tags.getResults().get(i).getUserId());
325+
assertNotNull(tags.getResults().get(i++).getInsertedDate());
310326

311327
assertEquals(0,
312328
service.findDocumentFormats(siteId, BUCKET_KEY, null, MAX_RESULTS).getResults().size());
313329
verifyDocumentSaved(siteId, item, "pdf", "8");
314-
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "create", false);
330+
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "create", false, false);
315331
}
316332
}
317333

@@ -335,7 +351,8 @@ public void testHandleRequest02() throws Exception {
335351
doc.setInsertedDate(new Date());
336352
doc.setDocumentId(BUCKET_KEY);
337353
doc.setUserId("asd");
338-
354+
doc.setPath("test.txt");
355+
339356
DynamicDocumentTag tag = new DynamicDocumentTag(Map.of("documentId", BUCKET_KEY, "key",
340357
"person", "value", "category", "insertedDate", new Date(), "userId", "asd"));
341358
doc.put("tags", Arrays.asList(tag));
@@ -357,24 +374,27 @@ public void testHandleRequest02() throws Exception {
357374
PaginationResults<DocumentTag> tags =
358375
service.findDocumentTags(siteId, BUCKET_KEY, null, MAX_RESULTS);
359376

360-
final int size = 4;
377+
final int size = 5;
378+
int i = 0;
361379
assertEquals(size, tags.getResults().size());
362-
assertEquals("CLAMAV_SCAN_STATUS", tags.getResults().get(0).getKey());
363-
assertEquals("GOOD", tags.getResults().get(0).getValue());
364-
assertEquals(DocumentTagType.SYSTEMDEFINED, tags.getResults().get(0).getType());
365-
assertEquals("person", tags.getResults().get(1).getKey());
366-
assertEquals(DocumentTagType.USERDEFINED, tags.getResults().get(1).getType());
367-
assertEquals("12345", tags.getResults().get(2).getValue());
368-
assertEquals(DocumentTagType.USERDEFINED, tags.getResults().get(2).getType());
369-
assertEquals("12345", tags.getResults().get(2).getValue());
370-
assertEquals(DocumentTagType.SYSTEMDEFINED, tags.getResults().get(size - 1).getType());
371-
assertEquals("asd", tags.getResults().get(size - 1).getValue());
380+
assertEquals("CLAMAV_SCAN_STATUS", tags.getResults().get(i).getKey());
381+
assertEquals("GOOD", tags.getResults().get(i).getValue());
382+
assertEquals(DocumentTagType.SYSTEMDEFINED, tags.getResults().get(i++).getType());
383+
assertEquals("path", tags.getResults().get(i).getKey());
384+
assertEquals(DocumentTagType.SYSTEMDEFINED, tags.getResults().get(i++).getType());
385+
assertEquals("person", tags.getResults().get(i).getKey());
386+
assertEquals(DocumentTagType.USERDEFINED, tags.getResults().get(i++).getType());
387+
assertEquals("12345", tags.getResults().get(i).getValue());
388+
assertEquals(DocumentTagType.USERDEFINED, tags.getResults().get(i).getType());
389+
assertEquals("12345", tags.getResults().get(i++).getValue());
390+
assertEquals(DocumentTagType.SYSTEMDEFINED, tags.getResults().get(i).getType());
391+
assertEquals("asd", tags.getResults().get(i++).getValue());
372392

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

376396
verifyDocumentSaved(siteId, item, "pdf", "8");
377-
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "update", false);
397+
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "update", false, false);
378398
}
379399
}
380400

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

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

412433
// then
413434
assertNull(item);
414-
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "delete", false);
435+
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "delete", false, true);
415436
}
416437
}
417438

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

441463
DynamicDocumentItem child = new DynamicDocumentItem(Map.of());
@@ -462,26 +484,26 @@ public void testHandleRequest04() throws Exception {
462484
.key(keysDocument(siteId, child.getDocumentId())).build()).item();
463485
assertNull(m.get(GSI1_PK));
464486
}
465-
466-
assertEquals(2, tags.getResults().size());
467-
assertEquals("untagged", tags.getResults().get(0).getKey());
468-
assertEquals("true", tags.getResults().get(0).getValue());
469-
assertEquals(BUCKET_KEY, tags.getResults().get(0).getDocumentId());
470-
assertEquals(DocumentTagType.SYSTEMDEFINED, tags.getResults().get(0).getType());
471-
assertEquals("joe", tags.getResults().get(0).getUserId());
472-
assertNotNull(tags.getResults().get(0).getInsertedDate());
473-
474-
assertEquals("userId", tags.getResults().get(1).getKey());
475-
assertEquals("joe", tags.getResults().get(1).getValue());
476-
assertEquals(BUCKET_KEY, tags.getResults().get(1).getDocumentId());
477-
assertEquals(DocumentTagType.SYSTEMDEFINED, tags.getResults().get(1).getType());
478-
assertEquals("joe", tags.getResults().get(1).getUserId());
479-
assertNotNull(tags.getResults().get(1).getInsertedDate());
487+
488+
final int count = 3;
489+
int i = 0;
490+
assertEquals(count, tags.getResults().size());
491+
assertDocumentTagEquals(new DocumentTag().setKey("path").setValue("test.txt")
492+
.setDocumentId(BUCKET_KEY).setType(DocumentTagType.SYSTEMDEFINED).setUserId("joe"),
493+
tags.getResults().get(i++));
494+
495+
assertDocumentTagEquals(new DocumentTag().setKey("untagged").setValue("true")
496+
.setDocumentId(BUCKET_KEY).setType(DocumentTagType.SYSTEMDEFINED).setUserId("joe"),
497+
tags.getResults().get(i++));
498+
499+
assertDocumentTagEquals(new DocumentTag().setKey("userId").setValue("joe")
500+
.setDocumentId(BUCKET_KEY).setType(DocumentTagType.SYSTEMDEFINED).setUserId("joe"),
501+
tags.getResults().get(i++));
480502

481503
assertEquals(0,
482504
service.findDocumentFormats(siteId, BUCKET_KEY, null, MAX_RESULTS).getResults().size());
483505
verifyDocumentSaved(siteId, item, "pdf", "8");
484-
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "create", false);
506+
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "create", false, true);
485507

486508
tags = service.findDocumentTags(siteId, documentId, null, MAX_RESULTS);
487509
assertEquals(0, tags.getResults().size());
@@ -584,6 +606,7 @@ public void testHandleRequest06() throws Exception {
584606
doc.setInsertedDate(new Date());
585607
doc.setDocumentId(BUCKET_KEY);
586608
doc.setUserId("joe");
609+
doc.setPath("test.txt");
587610
service.saveDocumentItemWithTag(siteId, doc);
588611

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

594617
// then
595618
verifyDocumentSaved(siteId, item, "text/plain", "8");
596-
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "create", true);
619+
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "create", true, false);
597620
}
598621
}
599622

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

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

628652
// then
629653
verifyDocumentSaved(siteId, item, "text/plain", "" + content.length());
630-
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "create", false);
654+
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "create", false, false);
631655
}
632656
}
633657

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

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

662687
// then
663688
verifyDocumentSaved(siteId, item, "text/plain", "" + content.length());
664-
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "create", false);
689+
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "create", false, false);
665690
}
666691
}
667692

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

@@ -713,7 +739,7 @@ public void testHandleRequest09() throws Exception {
713739
}
714740

715741
verifyDocumentSaved(siteId, item, "pdf", "8");
716-
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "create", false);
742+
assertPublishSnsMessage(siteId, sqsDocumentEventUrl, "create", false, false);
717743
}
718744
}
719745

@@ -772,7 +798,6 @@ private DocumentItem verifyDocumentSaved(final String siteId, final DocumentItem
772798

773799
assertEquals(contentType, item.getContentType());
774800
assertEquals(contentLength, item.getContentLength().toString());
775-
assertNull(item.getPath());
776801

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

0 commit comments

Comments
 (0)