80 SearchRequest searchReq =
new SearchRequest();
81 Response response =
prepareSearchRequest(searchRequest.getSchemas(), searchRequest.getFilter(), searchRequest.getSortBy(),
82 searchRequest.getSortOrder(), searchRequest.getStartIndex(), searchRequest.getCount(),
83 searchRequest.getAttributesStr(), searchRequest.getExcludedAttributesStr(), searchReq);
85 if (response == null) {
87 List<JsonNode> resources =
new ArrayList<JsonNode>();
88 Pair<Integer, Integer> totals =
computeResults(searchReq, resources);
90 ListResponseJsonSerializer custSerializer =
new ListResponseJsonSerializer(
resourceSerializer, searchReq.getAttributesStr(),
91 searchReq.getExcludedAttributesStr(), searchReq.getCount() == 0);
92 if (resources.size() > 0)
93 custSerializer.setJsonResources(resources);
95 ObjectMapper objmapper =
new ObjectMapper();
96 SimpleModule module =
new SimpleModule(
"ListResponseModule", Version.unknownVersion());
97 module.addSerializer(ListResponse.class, custSerializer);
98 objmapper.registerModule(module);
101 ListResponse listResponse =
new ListResponse(searchReq.getStartIndex(), totals.getFirst(), totals.getSecond());
102 String json = objmapper.writeValueAsString(listResponse);
103 response = Response.ok(json).location(
new URI(
endpointUrl)).build();
106 log.error(
"Failure at search method", e);
107 response=
getErrorResponse(Response.Status.INTERNAL_SERVER_ERROR,
"Unexpected error: " + e.getMessage());
Pair< Integer, Integer > computeResults(SearchRequest searchRequest, List< JsonNode > resources)
Definition: SearchResourcesWebService.java:124
ScimResourceSerializer resourceSerializer
Definition: BaseScimWebService.java:62
String endpointUrl
Definition: BaseScimWebService.java:69
Logger log
Definition: BaseScimWebService.java:56
static Response getErrorResponse(Response.Status status, String detail)
Definition: BaseScimWebService.java:75
Response prepareSearchRequest(List< String > schemas, String filter, String sortBy, String sortOrder, Integer startIndex, Integer count, String attrsList, String excludedAttrsList, SearchRequest request)
Definition: BaseScimWebService.java:166