diff options
Diffstat (limited to 'base/tps/src/org/dogtagpki/server/tps/rest/TokenService.java')
-rw-r--r-- | base/tps/src/org/dogtagpki/server/tps/rest/TokenService.java | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/base/tps/src/org/dogtagpki/server/tps/rest/TokenService.java b/base/tps/src/org/dogtagpki/server/tps/rest/TokenService.java index 226f039f4..a0ca7add3 100644 --- a/base/tps/src/org/dogtagpki/server/tps/rest/TokenService.java +++ b/base/tps/src/org/dogtagpki/server/tps/rest/TokenService.java @@ -268,7 +268,14 @@ public class TokenService extends PKIService implements TokenResource { } @Override - public Response findTokens(String filter, Integer start, Integer size) { + public Response findTokens( + String filter, + String tokenID, + String userID, + String type, + String status, + Integer start, + Integer size) { CMS.debug("TokenService.findTokens()"); @@ -276,6 +283,24 @@ public class TokenService extends PKIService implements TokenResource { throw new BadRequestException("Filter is too short."); } + Map<String, String> attributes = new HashMap<String, String>(); + + if (StringUtils.isNotEmpty(tokenID)) { + attributes.put("id", tokenID); + } + + if (StringUtils.isNotEmpty(userID)) { + attributes.put("userID", userID); + } + + if (StringUtils.isNotEmpty(type)) { + attributes.put("type", type); + } + + if (StringUtils.isNotEmpty(status)) { + attributes.put("status", status); + } + start = start == null ? 0 : start; size = size == null ? DEFAULT_SIZE : size; @@ -283,7 +308,7 @@ public class TokenService extends PKIService implements TokenResource { TPSSubsystem subsystem = (TPSSubsystem)CMS.getSubsystem(TPSSubsystem.ID); TokenDatabase database = subsystem.getTokenDatabase(); - Iterator<TokenRecord> tokens = database.findRecords(filter).iterator(); + Iterator<TokenRecord> tokens = database.findRecords(filter, attributes).iterator(); TokenCollection response = new TokenCollection(); int i = 0; |