Skip to content

Commit 23ef72e

Browse files
Implementation of who-icatx/icatx-project#233
1 parent 005aec7 commit 23ef72e

6 files changed

Lines changed: 16 additions & 12 deletions

File tree

src/main/java/edu/stanford/protege/webprotegeeventshistory/uiHistoryConcern/handlers/GetProjectChangesForHistoryViewCommandHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public Class<ProjectChangesForHistoryViewRequest> getRequestClass() {
3333
public Mono<ProjectChangesForHistoryViewResponse> handleRequest(ProjectChangesForHistoryViewRequest request, ExecutionContext executionContext) {
3434
int pageNumber = request.pageRequest().getPageNumber();
3535
int pageSize = request.pageRequest().getPageSize();
36-
var changes = service.fetchPaginatedProjectChanges(request.projectId(), request.subject(), pageNumber, pageSize);
36+
var changes = service.fetchPaginatedProjectChanges(request.projectId(), request.subject(), pageNumber, pageSize, request.filter());
3737
return Mono.just(ProjectChangesForHistoryViewResponse.create(changes));
3838
}
3939
}

src/main/java/edu/stanford/protege/webprotegeeventshistory/uiHistoryConcern/handlers/ProjectChangesForHistoryViewRequest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
public record ProjectChangesForHistoryViewRequest(
1414
@JsonProperty("projectId") ProjectId projectId,
1515
@JsonProperty("subject") Optional<OWLEntity> subject,
16-
@JsonProperty("pageRequest") PageRequest pageRequest
16+
@JsonProperty("pageRequest") PageRequest pageRequest,
17+
@JsonProperty("filter") String filter
1718
) implements ProjectRequest<ProjectChangesForHistoryViewResponse> {
1819

1920
public final static String CHANNEL = "webprotege.events.projects.history.ProjectChangesForHistory";

src/main/java/edu/stanford/protege/webprotegeeventshistory/uiHistoryConcern/services/NewRevisionsEventService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public interface NewRevisionsEventService {
1212

1313
void registerEvent(NewRevisionsEvent newLinRevEvent);
1414

15-
Page<ProjectChange> fetchPaginatedProjectChanges(ProjectId projectId, Optional<OWLEntity> subject, int pageNumber, int pageSize);
15+
Page<ProjectChange> fetchPaginatedProjectChanges(ProjectId projectId, Optional<OWLEntity> subject, int pageNumber, int pageSize, String filter);
1616

1717
ChangedEntities getChangedEntitiesAfterTimestamp(ProjectId projectId, long timestamp);
1818

src/main/java/edu/stanford/protege/webprotegeeventshistory/uiHistoryConcern/services/NewRevisionsEventServiceImpl.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import edu.stanford.protege.webprotegeeventshistory.uiHistoryConcern.mappers.ProjectChangeMapper;
1313
import edu.stanford.protege.webprotegeeventshistory.uiHistoryConcern.mappers.RevisionEventMapper;
1414
import edu.stanford.protege.webprotegeeventshistory.uiHistoryConcern.repositories.RevisionsEventRepository;
15+
import org.bson.Document;
1516
import org.semanticweb.owlapi.model.*;
1617
import org.slf4j.Logger;
1718
import org.slf4j.LoggerFactory;
@@ -61,15 +62,16 @@ public void registerEvent(NewRevisionsEvent newRevEvent) {
6162
}
6263

6364
@Override
64-
public Page<ProjectChange> fetchPaginatedProjectChanges(ProjectId projectId, Optional<OWLEntity> subject, int pageNumber, int pageSize) {
65+
public Page<ProjectChange> fetchPaginatedProjectChanges(ProjectId projectId, Optional<OWLEntity> subject, int pageNumber, int pageSize, String filter) {
66+
LOGGER.warn("Fetching changes with filter: {}", filter);
6567
String entityIriSubject = subject.map(sub -> sub.getIRI().toString()).orElse(null);
6668
RevisionsEvent probe = RevisionsEvent.create(
6769
projectId,
6870
entityIriSubject,
6971
null,
7072
null,
7173
0,
72-
null,
74+
new Document("summary", filter),
7375
null
7476
);
7577
ExampleMatcher matcher = ExampleMatcher.matching()
@@ -78,6 +80,7 @@ public Page<ProjectChange> fetchPaginatedProjectChanges(ProjectId projectId, Opt
7880
.withMatcher(WHOFIC_ENTITY_IRI, ExampleMatcher.GenericPropertyMatchers.exact())
7981
.withIgnorePaths(CHANGE_TYPE)
8082
.withIgnorePaths(ENTITY_TYPE)
83+
.withMatcher("projectChange.summary", m -> m.contains().ignoreCase())
8184
.withIgnoreNullValues();
8285

8386
Example<RevisionsEvent> example = Example.of(probe, matcher);

src/test/java/edu/stanford/protege/webprotegeeventshistory/uiHistoryConcern/handlers/GetProjectChangesForHistoryViewCommandHandlerIntegrationTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public void GIVEN_validRequestWithSubject_WHEN_handleRequestCalled_THEN_returnCo
5151
ProjectId projectId = ProjectId.generate();
5252
OWLEntity subject = mockOWLEntity("http://example.com/Entity1");
5353
PageRequest pageRequest = PageRequest.requestPageWithSize(1, 10);
54-
ProjectChangesForHistoryViewRequest request = new ProjectChangesForHistoryViewRequest(projectId, Optional.of(subject), pageRequest);
54+
ProjectChangesForHistoryViewRequest request = new ProjectChangesForHistoryViewRequest(projectId, Optional.of(subject), pageRequest, "");
5555

5656
ProjectChange pc1 = insertMockRevisionsEvent(projectId, "http://example.com/Entity1", 12345L);
5757
ProjectChange pc2 = insertMockRevisionsEvent(projectId, "http://example.com/Entity1", 12346L);
@@ -73,7 +73,7 @@ public void GIVEN_validRequestWithSubject_WHEN_handleRequestCalled_THEN_returnCo
7373
public void GIVEN_validRequestWithoutSubject_WHEN_handleRequestCalled_THEN_returnAllProjectChanges() {
7474
ProjectId projectId = ProjectId.generate();
7575
PageRequest pageRequest = PageRequest.requestPageWithSize(1, 10);
76-
ProjectChangesForHistoryViewRequest request = new ProjectChangesForHistoryViewRequest(projectId, Optional.empty(), pageRequest);
76+
ProjectChangesForHistoryViewRequest request = new ProjectChangesForHistoryViewRequest(projectId, Optional.empty(), pageRequest, "");
7777

7878
ProjectChange pc1 = insertMockRevisionsEvent(projectId, "http://example.com/Entity1", 12345L);
7979
ProjectChange pc2 = insertMockRevisionsEvent(projectId, "http://example.com/Entity1", 12346L);
@@ -96,7 +96,7 @@ public void GIVEN_validRequestWithoutSubject_WHEN_handleRequestCalled_THEN_retur
9696
public void GIVEN_emptyProject_WHEN_handleRequestCalled_THEN_returnEmptyPage() {
9797
ProjectId projectId = ProjectId.generate();
9898
PageRequest pageRequest = PageRequest.requestPageWithSize(1, 10);
99-
ProjectChangesForHistoryViewRequest request = new ProjectChangesForHistoryViewRequest(projectId, Optional.empty(), pageRequest);
99+
ProjectChangesForHistoryViewRequest request = new ProjectChangesForHistoryViewRequest(projectId, Optional.empty(), pageRequest, "");
100100

101101

102102
Mono<ProjectChangesForHistoryViewResponse> responseMono = commandHandler.handleRequest(request, null);
@@ -111,7 +111,7 @@ public void GIVEN_emptyProject_WHEN_handleRequestCalled_THEN_returnEmptyPage() {
111111
public void GIVEN_requestWithPagination_WHEN_handleRequestCalled_THEN_returnPaginatedResults() {
112112
ProjectId projectId = ProjectId.generate();
113113
PageRequest pageRequest = PageRequest.requestPageWithSize(1, 1);
114-
ProjectChangesForHistoryViewRequest request = new ProjectChangesForHistoryViewRequest(projectId, Optional.empty(), pageRequest);
114+
ProjectChangesForHistoryViewRequest request = new ProjectChangesForHistoryViewRequest(projectId, Optional.empty(), pageRequest, "");
115115

116116
insertMockRevisionsEvent(projectId, "http://example.com/Entity1", 12345L);
117117
insertMockRevisionsEvent(projectId, "http://example.com/Entity2", 12346L);

src/test/java/edu/stanford/protege/webprotegeeventshistory/uiHistoryConcern/services/NewRevisionsEventServiceTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public void GIVEN_validProjectIdAndSubject_WHEN_fetchPaginatedProjectChangesCall
8282
ProjectChange mockProjectChange = mock(ProjectChange.class);
8383
when(projectChangeMapper.mapProjectChangeDocumentToProjectChange(any())).thenReturn(mockProjectChange);
8484

85-
Page<ProjectChange> result = service.fetchPaginatedProjectChanges(projectId, Optional.of(mockEntity), 1, 1);
85+
Page<ProjectChange> result = service.fetchPaginatedProjectChanges(projectId, Optional.of(mockEntity), 1, 1, "");
8686

8787
assertNotNull(result);
8888
assertEquals(1, result.getPageElements().size());
@@ -104,7 +104,7 @@ public void GIVEN_nullSubject_WHEN_fetchPaginatedProjectChangesCalled_THEN_retur
104104
ProjectChange mockProjectChange = mock(ProjectChange.class);
105105
when(projectChangeMapper.mapProjectChangeDocumentToProjectChange(any())).thenReturn(mockProjectChange);
106106

107-
Page<ProjectChange> result = service.fetchPaginatedProjectChanges(projectId, Optional.empty(), 1, 1);
107+
Page<ProjectChange> result = service.fetchPaginatedProjectChanges(projectId, Optional.empty(), 1, 1, "");
108108

109109
assertNotNull(result);
110110
assertEquals(1, result.getPageElements().size());
@@ -122,7 +122,7 @@ public void GIVEN_noResults_WHEN_fetchPaginatedProjectChangesCalled_THEN_returnE
122122

123123
when(repository.findAll(any(Example.class), eq(pageRequest))).thenReturn(mockPage);
124124

125-
Page<ProjectChange> result = service.fetchPaginatedProjectChanges(projectId, Optional.empty(), 1, 1);
125+
Page<ProjectChange> result = service.fetchPaginatedProjectChanges(projectId, Optional.empty(), 1, 1, "");
126126

127127
assertNotNull(result);
128128
assertTrue(result.getPageElements().isEmpty());

0 commit comments

Comments
 (0)