mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-14 09:25:43 +01:00
add autocomplete endpoint
This commit is contained in:
@@ -114,4 +114,13 @@ public interface GenericDAO<T>
|
||||
* @return all items
|
||||
*/
|
||||
public Collection<T> getAll();
|
||||
|
||||
/**
|
||||
* Returns items containing the searched string
|
||||
*
|
||||
* @param searched the search character
|
||||
* @param limit the max count of the result entities. if limit is <= 0 return all filtered entities
|
||||
* @return searched items
|
||||
*/
|
||||
Collection<T> getFiltered(String searched, int limit);
|
||||
}
|
||||
|
||||
@@ -77,6 +77,15 @@ public interface Manager<T extends ModelObject>
|
||||
*/
|
||||
Collection<T> getAll();
|
||||
|
||||
/**
|
||||
* Returns a {@link java.util.Collection} of filtered objects
|
||||
*
|
||||
* @param filter the searched string
|
||||
* @param limit the max count of the result entities. if limit is <= 0 return all filtered entities
|
||||
* @return all object in the store
|
||||
*/
|
||||
Collection<T> getFiltered(String filter, int limit);
|
||||
|
||||
/**
|
||||
* Returns all object of the store sorted by the given {@link java.util.Comparator}
|
||||
*
|
||||
|
||||
@@ -91,6 +91,11 @@ public class ManagerDecorator<T extends ModelObject> implements Manager<T> {
|
||||
decorated.refresh(object);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<T> getFiltered(String filter, int limit) {
|
||||
return decorated.getFiltered(filter, limit);
|
||||
}
|
||||
|
||||
@Override
|
||||
public T get(String id)
|
||||
{
|
||||
|
||||
@@ -44,7 +44,7 @@ import java.io.Serializable;
|
||||
*/
|
||||
public interface ModelObject
|
||||
extends TypedObject, LastModifiedAware, Cloneable, Validateable,
|
||||
Serializable
|
||||
Serializable, ReducedModelObject
|
||||
{
|
||||
|
||||
/**
|
||||
|
||||
15
scm-core/src/main/java/sonia/scm/ReducedModelObject.java
Normal file
15
scm-core/src/main/java/sonia/scm/ReducedModelObject.java
Normal file
@@ -0,0 +1,15 @@
|
||||
package sonia.scm;
|
||||
|
||||
|
||||
/**
|
||||
* This is a reduced form of a model object.
|
||||
* It can be used as search result to avoid returning the whole object properties.
|
||||
*
|
||||
* @author Mohamed Karray
|
||||
*/
|
||||
public interface ReducedModelObject {
|
||||
|
||||
String getId();
|
||||
|
||||
String getDisplayName();
|
||||
}
|
||||
@@ -55,12 +55,12 @@ import java.util.List;
|
||||
|
||||
/**
|
||||
* Organizes users into a group for easier permissions management.
|
||||
*
|
||||
*
|
||||
* TODO for 2.0: Use a set instead of a list for members
|
||||
*
|
||||
* @author Sebastian Sdorra
|
||||
*/
|
||||
@StaticPermissions(value = "group", globalPermissions = {"create", "list"})
|
||||
@StaticPermissions(value = "group", globalPermissions = {"create", "list", "autocomplete"})
|
||||
@XmlRootElement(name = "groups")
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
public class Group extends BasicPropertiesAware
|
||||
@@ -309,6 +309,11 @@ public class Group extends BasicPropertiesAware
|
||||
return name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDisplayName() {
|
||||
return description;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a timestamp of the last modified date of this group.
|
||||
*
|
||||
|
||||
@@ -256,6 +256,11 @@ public class Changeset extends BasicPropertiesAware implements ModelObject {
|
||||
return id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDisplayName() {
|
||||
return id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setLastModified(Long timestamp) {
|
||||
throw new UnsupportedOperationException("changesets are immutable");
|
||||
|
||||
@@ -60,11 +60,12 @@ import java.util.List;
|
||||
*/
|
||||
@StaticPermissions(
|
||||
value = "repository",
|
||||
permissions = {"read", "modify", "delete", "healthCheck", "pull", "push", "permissionRead", "permissionWrite"}
|
||||
permissions = {"read", "modify", "delete", "healthCheck", "pull", "push", "permissionRead", "permissionWrite"},
|
||||
globalPermissions = {"create", "autocomplete"}
|
||||
)
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlRootElement(name = "repositories")
|
||||
public class Repository extends BasicPropertiesAware implements ModelObject, PermissionObject {
|
||||
public class Repository extends BasicPropertiesAware implements ModelObject, PermissionObject{
|
||||
|
||||
|
||||
private static final long serialVersionUID = 3486560714961909711L;
|
||||
@@ -183,6 +184,11 @@ public class Repository extends BasicPropertiesAware implements ModelObject, Per
|
||||
return id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDisplayName() {
|
||||
return getNamespaceAndName().toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long getLastModified() {
|
||||
return lastModified;
|
||||
|
||||
@@ -55,7 +55,7 @@ import java.security.Principal;
|
||||
*
|
||||
* @author Sebastian Sdorra
|
||||
*/
|
||||
@StaticPermissions(value = "user", globalPermissions = {"create", "list"})
|
||||
@StaticPermissions(value = "user", globalPermissions = {"create", "list", "autocomplete"})
|
||||
@XmlRootElement(name = "users")
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
public class User extends BasicPropertiesAware implements Principal, ModelObject, PermissionObject
|
||||
|
||||
@@ -18,6 +18,7 @@ public class VndMediaType {
|
||||
public static final String INDEX = PREFIX + "index" + SUFFIX;
|
||||
public static final String USER = PREFIX + "user" + SUFFIX;
|
||||
public static final String GROUP = PREFIX + "group" + SUFFIX;
|
||||
public static final String AUTOCOMPLETE = PREFIX + "autocomplete" + SUFFIX;
|
||||
public static final String REPOSITORY = PREFIX + "repository" + SUFFIX;
|
||||
public static final String PERMISSION = PREFIX + "permission" + SUFFIX;
|
||||
public static final String CHANGESET = PREFIX + "changeset" + SUFFIX;
|
||||
|
||||
@@ -78,6 +78,11 @@ public class ManagerTest {
|
||||
return IntStream.range(0, givenItemCount).boxed().collect(toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection getFiltered(String filter, int limit) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection getAll(Comparator comparator) { return getAll(); }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user