Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Implementing a group $filter query using the msgraph-sdk-java

This is what I have so far but I can't seem to be able to find .filter(s), is that done in some other way?

        IGroupCollectionRequest request = graphServiceClient.groups().buildRequest();
        IGroupCollectionPage page = request.get();
        IGroupCollectionRequestBuilder builder = page.getNextPage();
        while (builder != null) {
            request = builder.buildRequest();
            page = request.get();
            builder = page.getNextPage();
        }
like image 679
StackMonkey Avatar asked Nov 19 '25 07:11

StackMonkey


1 Answers

You can include $filter (or any other query parameter) in the requestOptions parameter of the first call to buildRequest():

// Include any filters in the initial request's `requestOptions`
List<Option> requestOptions = new ArrayList<Option>();
requestOptions.add(new QueryOption("$filter", "startsWith(displayName,'Foo')"));

IGroupCollectionRequest request = graphServiceClient.groups().buildRequest(requestOptions);
IGroupCollectionPage page = request.get();
// Process first page
IGroupCollectionRequestBuilder builder = page.getNextPage();
while (builder != null) {
    request = builder.buildRequest();
    page = request.get();
    // Process each subsequent page
    builder = page.getNextPage();
}

An alternative way to structure the requests (for the same result), which I find to be a little bit easier to read:

IGroupCollectionPage page;
IGroupCollectionRequestBuilder builder;

// Build the initial request (including any filters)
List<Option> requestOptions = new ArrayList<Option>();
requestOptions.add(new QueryOption("$filter", "startsWith(displayName,'Foo')"));
IGroupCollectionRequest request = graphServiceClient.groups().buildRequest(requestOptions);

do {
    // Make request
    page = request.get();

    // Process results
    for(Group g: page.getCurrentPage()) {
        System.out.println(g.displayName);
    }

    // Get and build request for next page
    builder = page.getNextPage();
    if (builder == null) {
        request = null;
    } else {
        request = builder.buildRequest();
    }
} while (request != null);
like image 78
Philippe Signoret Avatar answered Nov 20 '25 20:11

Philippe Signoret



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!