Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,15 @@ public Optional<PageRequest> getPageRequest() {
return Optional.ofNullable(pageRequest);
}

/**
* Returns the page request, defaulting to an unbounded request if none was specified.
*
* @return the page request; never null
*/
public PageRequest getPageRequestOrDefault() {
return pageRequest != null ? pageRequest : new PageRequest();
}

public ScimRequestContext setPageRequest(PageRequest pageRequest) {
this.pageRequest = pageRequest;
return this;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,16 +115,12 @@ public void delete(String id) throws ResourceException {

@Override
public FilterResponse<ScimGroup> find(Filter filter, ScimRequestContext requestContext) {
long count = requestContext.getPageRequest().map(PageRequest::getCount).orElse(groups.size());
long startIndex = requestContext.getPageRequest().map(PageRequest::getStartIndex).map(it -> it - 1).orElse(0);

List<ScimGroup> result = groups.values().stream()
.skip(startIndex)
.limit(count)
List<ScimGroup> filtered = groups.values().stream()
.filter(FilterExpressions.inMemory(filter, schemaRegistry.getSchema(ScimGroup.SCHEMA_URI)))
.toList();

return new FilterResponse<>(result, result.size());
PageRequest pageRequest = requestContext.getPageRequestOrDefault();
return new FilterResponse<>(pageRequest.paginate(filtered), filtered.size());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,9 +108,6 @@ public void init() {
users.put(user.getId(), user);
}

/**
* @see Repository#create(ScimResource, ScimRequestContext)
*/
@Override
public ScimUser create(ScimUser resource, ScimRequestContext requestContext) throws UnableToCreateResourceException {
String id = UUID.randomUUID().toString();
Expand All @@ -137,44 +134,28 @@ public ScimUser update(String id, ScimUser resource, ScimRequestContext requestC
return resource;
}

/**
* @see Repository#get(java.lang.String, ScimRequestContext)
*/
@Override
public ScimUser get(String id, ScimRequestContext requestContext) {
return users.get(id);
}

/**
* @see Repository#delete(java.lang.String)
*/
@Override
public void delete(String id) throws ResourceException {
if (users.remove(id) == null) {
throw new ResourceNotFoundException(id);
}
}

/**
* @see Repository#find(Filter, ScimRequestContext)
*/
@Override
public FilterResponse<ScimUser> find(Filter filter, ScimRequestContext requestContext) {
long count = requestContext.getPageRequest().map(PageRequest::getCount).orElse(users.size());
long startIndex = requestContext.getPageRequest().map(PageRequest::getStartIndex).map(it -> it - 1).orElse(0);

List<ScimUser> result = users.values().stream()
.skip(startIndex)
.limit(count)
List<ScimUser> filtered = users.values().stream()
.filter(FilterExpressions.inMemory(filter, schemaRegistry.getSchema(ScimUser.SCHEMA_URI)))
.toList();

return new FilterResponse<>(result, result.size());
PageRequest pageRequest = requestContext.getPageRequestOrDefault();
return new FilterResponse<>(pageRequest.paginate(filtered), filtered.size());
}

/**
* @see Repository#getExtensionList()
*/
@Override
public List<Class<? extends ScimExtension>> getExtensionList() {
return List.of(LuckyNumberExtension.class, EnterpriseExtension.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,16 +115,12 @@ public void delete(String id) throws ResourceException {

@Override
public FilterResponse<ScimGroup> find(Filter filter, ScimRequestContext requestContext) {
long count = requestContext.getPageRequest().map(PageRequest::getCount).orElse(groups.size());
long startIndex = requestContext.getPageRequest().map(PageRequest::getStartIndex).map(it -> it - 1).orElse(0);

List<ScimGroup> result = groups.values().stream()
.skip(startIndex)
.limit(count)
List<ScimGroup> filtered = groups.values().stream()
.filter(FilterExpressions.inMemory(filter, schemaRegistry.getSchema(ScimGroup.SCHEMA_URI)))
.toList();

return new FilterResponse<>(result, result.size());
PageRequest pageRequest = requestContext.getPageRequestOrDefault();
return new FilterResponse<>(pageRequest.paginate(filtered), filtered.size());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,9 +108,6 @@ public void init() {
users.put(user.getId(), user);
}

/**
* @see Repository#create(ScimResource, ScimRequestContext)
*/
@Override
public ScimUser create(ScimUser resource, ScimRequestContext requestContext) throws UnableToCreateResourceException {
String id = UUID.randomUUID().toString();
Expand All @@ -137,44 +134,28 @@ public ScimUser update(String id, ScimUser resource, ScimRequestContext requestC
return resource;
}

/**
* @see Repository#get(java.lang.String, ScimRequestContext)
*/
@Override
public ScimUser get(String id, ScimRequestContext requestContext) {
return users.get(id);
}

/**
* @see Repository#delete(java.lang.String)
*/
@Override
public void delete(String id) throws ResourceException {
if (users.remove(id) == null) {
throw new ResourceNotFoundException(id);
}
}

/**
* @see Repository#find(Filter, ScimRequestContext)
*/
@Override
public FilterResponse<ScimUser> find(Filter filter, ScimRequestContext requestContext) {
long count = requestContext.getPageRequest().map(PageRequest::getCount).orElse(users.size());
long startIndex = requestContext.getPageRequest().map(PageRequest::getStartIndex).map(it -> it - 1).orElse(0);

List<ScimUser> result = users.values().stream()
.skip(startIndex)
.limit(count)
List<ScimUser> filtered = users.values().stream()
.filter(FilterExpressions.inMemory(filter, schemaRegistry.getSchema(ScimUser.SCHEMA_URI)))
.toList();

return new FilterResponse<>(result, result.size());
PageRequest pageRequest = requestContext.getPageRequestOrDefault();
return new FilterResponse<>(pageRequest.paginate(filtered), filtered.size());
}

/**
* @see Repository#getExtensionList()
*/
@Override
public List<Class<? extends ScimExtension>> getExtensionList() {
return List.of(LuckyNumberExtension.class, EnterpriseExtension.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,16 +115,12 @@ public void delete(String id) throws ResourceException {

@Override
public FilterResponse<ScimGroup> find(Filter filter, ScimRequestContext requestContext) {
long count = requestContext.getPageRequest().map(PageRequest::getCount).orElse(groups.size());
long startIndex = requestContext.getPageRequest().map(PageRequest::getStartIndex).map(it -> it - 1).orElse(0);

List<ScimGroup> result = groups.values().stream()
.skip(startIndex)
.limit(count)
List<ScimGroup> filtered = groups.values().stream()
.filter(FilterExpressions.inMemory(filter, schemaRegistry.getSchema(ScimGroup.SCHEMA_URI)))
.toList();

return new FilterResponse<>(result, result.size());
PageRequest pageRequest = requestContext.getPageRequestOrDefault();
return new FilterResponse<>(pageRequest.paginate(filtered), filtered.size());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,9 +108,6 @@ public void init() {
users.put(user.getId(), user);
}

/**
* @see Repository#create(ScimResource, ScimRequestContext)
*/
@Override
public ScimUser create(ScimUser resource, ScimRequestContext requestContext) throws UnableToCreateResourceException {
String id = UUID.randomUUID().toString();
Expand All @@ -137,44 +134,28 @@ public ScimUser update(String id, ScimUser resource, ScimRequestContext requestC
return resource;
}

/**
* @see Repository#get(java.lang.String, ScimRequestContext)
*/
@Override
public ScimUser get(String id, ScimRequestContext requestContext) {
return users.get(id);
}

/**
* @see Repository#delete(java.lang.String)
*/
@Override
public void delete(String id) throws ResourceException {
if (users.remove(id) == null) {
throw new ResourceNotFoundException(id);
}
}

/**
* @see Repository#find(Filter, ScimRequestContext)
*/
@Override
public FilterResponse<ScimUser> find(Filter filter, ScimRequestContext requestContext) {
long count = requestContext.getPageRequest().map(PageRequest::getCount).orElse(users.size());
long startIndex = requestContext.getPageRequest().map(PageRequest::getStartIndex).map(it -> it - 1).orElse(0);

List<ScimUser> result = users.values().stream()
.skip(startIndex)
.limit(count)
List<ScimUser> filtered = users.values().stream()
.filter(FilterExpressions.inMemory(filter, schemaRegistry.getSchema(ScimUser.SCHEMA_URI)))
.toList();

return new FilterResponse<>(result, result.size());
PageRequest pageRequest = requestContext.getPageRequestOrDefault();
return new FilterResponse<>(pageRequest.paginate(filtered), filtered.size());
}

/**
* @see Repository#getExtensionList()
*/
@Override
public List<Class<? extends ScimExtension>> getExtensionList() {
return List.of(LuckyNumberExtension.class, EnterpriseExtension.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,16 +115,12 @@ public void delete(String id) throws ResourceException {

@Override
public FilterResponse<ScimGroup> find(Filter filter, ScimRequestContext requestContext) {
long count = requestContext.getPageRequest().map(PageRequest::getCount).orElse(groups.size());
long startIndex = requestContext.getPageRequest().map(PageRequest::getStartIndex).map(it -> it - 1).orElse(0);

List<ScimGroup> result = groups.values().stream()
.skip(startIndex)
.limit(count)
List<ScimGroup> filtered = groups.values().stream()
.filter(FilterExpressions.inMemory(filter, schemaRegistry.getSchema(ScimGroup.SCHEMA_URI)))
.toList();

return new FilterResponse<>(result, result.size());
PageRequest pageRequest = requestContext.getPageRequestOrDefault();
return new FilterResponse<>(pageRequest.paginate(filtered), filtered.size());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,9 +108,6 @@ public void init() {
users.put(user.getId(), user);
}

/**
* @see Repository#create(ScimResource, ScimRequestContext)
*/
@Override
public ScimUser create(ScimUser resource, ScimRequestContext requestContext) throws UnableToCreateResourceException {
String id = UUID.randomUUID().toString();
Expand All @@ -137,44 +134,28 @@ public ScimUser update(String id, ScimUser resource, ScimRequestContext requestC
return resource;
}

/**
* @see Repository#get(java.lang.String, ScimRequestContext)
*/
@Override
public ScimUser get(String id, ScimRequestContext requestContext) {
return users.get(id);
}

/**
* @see Repository#delete(java.lang.String)
*/
@Override
public void delete(String id) throws ResourceException {
if (users.remove(id) == null) {
throw new ResourceNotFoundException(id);
}
}

/**
* @see Repository#find(Filter, ScimRequestContext)
*/
@Override
public FilterResponse<ScimUser> find(Filter filter, ScimRequestContext requestContext) {
long count = requestContext.getPageRequest().map(PageRequest::getCount).orElse(users.size());
long startIndex = requestContext.getPageRequest().map(PageRequest::getStartIndex).map(it -> it - 1).orElse(0);

List<ScimUser> result = users.values().stream()
.skip(startIndex)
.limit(count)
List<ScimUser> filtered = users.values().stream()
.filter(FilterExpressions.inMemory(filter, schemaRegistry.getSchema(ScimUser.SCHEMA_URI)))
.toList();

return new FilterResponse<>(result, result.size());
PageRequest pageRequest = requestContext.getPageRequestOrDefault();
return new FilterResponse<>(pageRequest.paginate(filtered), filtered.size());
}

/**
* @see Repository#getExtensionList()
*/
@Override
public List<Class<? extends ScimExtension>> getExtensionList() {
return List.of(LuckyNumberExtension.class, EnterpriseExtension.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,16 +109,12 @@ public void delete(String id) throws ResourceException {

@Override
public FilterResponse<ScimGroup> find(Filter filter, ScimRequestContext requestContext) {
long count = requestContext.getPageRequest().map(PageRequest::getCount).orElse(groups.size());
long startIndex = requestContext.getPageRequest().map(PageRequest::getStartIndex).map(it -> it - 1).orElse(0);

List<ScimGroup> result = groups.values().stream()
.skip(startIndex)
.limit(count)
List<ScimGroup> filtered = groups.values().stream()
.filter(FilterExpressions.inMemory(filter, schemaRegistry.getSchema(ScimGroup.SCHEMA_URI)))
.toList();

return new FilterResponse<>(result, result.size());
PageRequest pageRequest = requestContext.getPageRequestOrDefault();
return new FilterResponse<>(pageRequest.paginate(filtered), filtered.size());
}

@Override
Expand Down
Loading
Loading