mirror of
https://github.com/sismics/docs.git
synced 2025-12-13 17:56:20 +00:00
Closes #66: Search by creator
This commit is contained in:
@@ -295,6 +295,7 @@ public class DocumentResource extends BaseResource {
|
||||
}
|
||||
|
||||
TagDao tagDao = new TagDao();
|
||||
UserDao userDao = new UserDao();
|
||||
DateTimeParser[] parsers = {
|
||||
DateTimeFormat.forPattern("yyyy").getParser(),
|
||||
DateTimeFormat.forPattern("yyyy-MM").getParser(),
|
||||
@@ -370,6 +371,16 @@ public class DocumentResource extends BaseResource {
|
||||
if (Constants.SUPPORTED_LANGUAGES.contains(params[1])) {
|
||||
documentCriteria.setLanguage(params[1]);
|
||||
}
|
||||
} else if (params[0].equals("by")) {
|
||||
// New creator criteria
|
||||
User user = userDao.getActiveByUsername(params[1]);
|
||||
if (user == null) {
|
||||
// This user doesn't exists, return nothing
|
||||
documentCriteria.setCreatorId(UUID.randomUUID().toString());
|
||||
} else {
|
||||
// This user exists, search its documents
|
||||
documentCriteria.setCreatorId(user.getId());
|
||||
}
|
||||
} else if (params[0].equals("full")) {
|
||||
// New full content search criteria
|
||||
fullQuery.add(params[1]);
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
tag:car<br/>
|
||||
full:led<br/>
|
||||
shared:yes<br/>
|
||||
lang:fra"></span>
|
||||
lang:fra<br/>
|
||||
by:user1"></span>
|
||||
</span>
|
||||
<input type="search" class="form-control" placeholder="Search" ng-model="search" />
|
||||
<span class="input-group-addon">
|
||||
|
||||
@@ -55,7 +55,7 @@ public class TestDocumentResource extends BaseJerseyTest {
|
||||
String tag1Id = json.getString("id");
|
||||
Assert.assertNotNull(tag1Id);
|
||||
|
||||
// Create a document
|
||||
// Create a document with document1
|
||||
long create1Date = new Date().getTime();
|
||||
json = target().path("/document").request()
|
||||
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, document1Token)
|
||||
@@ -176,6 +176,9 @@ public class TestDocumentResource extends BaseJerseyTest {
|
||||
Assert.assertEquals(1, searchDocuments("software", document1Token));
|
||||
Assert.assertEquals(1, searchDocuments("greenland", document1Token));
|
||||
Assert.assertEquals(1, searchDocuments("public domain", document1Token));
|
||||
Assert.assertEquals(0, searchDocuments("by:document3", document1Token));
|
||||
Assert.assertEquals(1, searchDocuments("by:document1", document1Token));
|
||||
Assert.assertEquals(0, searchDocuments("by:nobody", document1Token));
|
||||
Assert.assertEquals(1, searchDocuments("at:" + DateTimeFormat.forPattern("yyyy").print(new Date().getTime()), document1Token));
|
||||
Assert.assertEquals(1, searchDocuments("at:" + DateTimeFormat.forPattern("yyyy-MM").print(new Date().getTime()), document1Token));
|
||||
Assert.assertEquals(1, searchDocuments("at:" + DateTimeFormat.forPattern("yyyy-MM-dd").print(new Date().getTime()), document1Token));
|
||||
|
||||
Reference in New Issue
Block a user