Search in sources :

Example 1 with IGroupCollectionPage

use of com.microsoft.graph.extensions.IGroupCollectionPage in project android-java-snippets-sample by microsoftgraph.

the class GroupsSnippets method getGroupsSnippets.

static GroupsSnippets[] getGroupsSnippets() {
    return new GroupsSnippets[] { // Marker element
    new GroupsSnippets(null) {

        @Override
        public void request(ICallback callback) {
        // Not implemented
        }
    }, /*
                 * Get a group by id
                 * GET https://graph.microsoft.com/{version}/myOrganization/groups/{Group.objectId}
                 * @see https://graph.microsoft.io/docs/api-reference/v1.0/api/group_get
                 */
    new GroupsSnippets<JsonObject>(get_a_group) {

        @Override
        public void request(final ICallback<JsonObject> callback) {
            // create a group then query it
            Group group = createGroupObject();
            mGraphServiceClient.getGroups().buildRequest().post(group, new ICallback<Group>() {

                @Override
                public void success(Group group) {
                    mGraphServiceClient.getGroups().byId(group.id).buildRequest().get(new ICallback<Group>() {

                        @Override
                        public void success(Group group) {
                            callback.success(group.getRawObject());
                        }

                        @Override
                        public void failure(ClientException ex) {
                            callback.failure(ex);
                        }
                    });
                }

                @Override
                public void failure(ClientException ex) {
                    callback.failure(ex);
                }
            });
        }
    }, /* Get all of the members of a newly created organization group
                 * GET https://graph.microsoft.com/{version}/myOrganization/groups/{Group.objectId}/members
                 * @see https://graph.microsoft.io/docs/api-reference/v1.0/api/group_list_members
                 */
    new GroupsSnippets<JsonObject>(get_group_members) {

        @Override
        public void request(final ICallback<JsonObject> callback) {
            // create a group then ask for its members
            Group group = createGroupObject();
            mGraphServiceClient.getGroups().buildRequest().post(group, new ICallback<Group>() {

                @Override
                public void success(Group group) {
                    mGraphServiceClient.getGroups().byId(group.id).getMembers().buildRequest().get(new ICallback<IDirectoryObjectCollectionWithReferencesPage>() {

                        @Override
                        public void success(IDirectoryObjectCollectionWithReferencesPage iDirectoryObjectCollectionWithReferencesPage) {
                            callback.success(iDirectoryObjectCollectionWithReferencesPage.getRawObject());
                        }

                        @Override
                        public void failure(ClientException ex) {
                            callback.failure(ex);
                        }
                    });
                }

                @Override
                public void failure(ClientException ex) {
                    callback.failure(ex);
                }
            });
        }
    }, /* Get all of a group's owners
                 * GET https://graph.microsoft.com/{version}/myOrganization/groups/{Group.objectId}/owners
                 * @see https://graph.microsoft.io/docs/api-reference/v1.0/api/group_list_owners
                 */
    new GroupsSnippets<JsonObject>(get_group_owners) {

        @Override
        public void request(final ICallback<JsonObject> callback) {
            // create a group and then request its owner
            Group group = createGroupObject();
            mGraphServiceClient.getGroups().buildRequest().post(group, new ICallback<Group>() {

                @Override
                public void success(Group group) {
                    mGraphServiceClient.getGroups().byId(group.id).getOwners().buildRequest().get(new ICallback<IDirectoryObjectCollectionWithReferencesPage>() {

                        @Override
                        public void success(IDirectoryObjectCollectionWithReferencesPage iDirectoryObjectCollectionWithReferencesPage) {
                            callback.success(iDirectoryObjectCollectionWithReferencesPage.getRawObject());
                        }

                        @Override
                        public void failure(ClientException ex) {
                            callback.failure(ex);
                        }
                    });
                }

                @Override
                public void failure(ClientException ex) {
                    callback.failure(ex);
                }
            });
        }
    }, /* List all organization groups
                 * GET https://graph.microsoft.com/v1.0/groups
                 * @see https://graph.microsoft.io/docs/api-reference/v1.0/api/group_list
                 */
    new GroupsSnippets<JsonObject>(get_all_groups) {

        @Override
        public void request(final ICallback<JsonObject> callback) {
            mGraphServiceClient.getGroups().buildRequest().get(new ICallback<IGroupCollectionPage>() {

                @Override
                public void success(IGroupCollectionPage iGroupCollectionPage) {
                    callback.success(iGroupCollectionPage.getRawObject());
                }

                @Override
                public void failure(ClientException ex) {
                    callback.failure(ex);
                }
            });
        }
    }, /* Create a new group with a random name
                 * POST https://graph.microsoft.com/{version}/myOrganization/groups
                 * @see https://graph.microsoft.io/docs/api-reference/v1.0/resources/group
                 */
    new GroupsSnippets<JsonObject>(insert_a_group) {

        @Override
        public void request(final ICallback<JsonObject> callback) {
            // create a new group
            Group group = createGroupObject();
            mGraphServiceClient.getGroups().buildRequest().post(group, new ICallback<Group>() {

                @Override
                public void success(Group group) {
                    callback.success(group.getRawObject());
                }

                @Override
                public void failure(ClientException ex) {
                    callback.failure(ex);
                }
            });
        }
    }, /* Delete a group
                 * DELETE https://graph.microsoft.com/{version}/myOrganization/groups/{Group.objectId}
                 * @see https://graph.microsoft.io/docs/api-reference/v1.0/api/group_delete
                 */
    new GroupsSnippets<JsonObject>(delete_a_group) {

        @Override
        public void request(final ICallback<JsonObject> callback) {
            // Create a group that we will delete
            // create a group and then request its owner
            Group group = createGroupObject();
            mGraphServiceClient.getGroups().buildRequest().post(group, new ICallback<Group>() {

                @Override
                public void success(Group group) {
                    mGraphServiceClient.getGroups().byId(group.id).buildRequest().delete(new ICallback<Void>() {

                        @Override
                        public void success(Void aVoid) {
                            callback.success(null);
                        }

                        @Override
                        public void failure(ClientException ex) {
                            callback.failure(ex);
                        }
                    });
                }

                @Override
                public void failure(ClientException ex) {
                    callback.failure(ex);
                }
            });
        }
    } };
}
Also used : Group(com.microsoft.graph.extensions.Group) ICallback(com.microsoft.graph.concurrency.ICallback) IGroupCollectionPage(com.microsoft.graph.extensions.IGroupCollectionPage) IDirectoryObjectCollectionWithReferencesPage(com.microsoft.graph.extensions.IDirectoryObjectCollectionWithReferencesPage) ClientException(com.microsoft.graph.core.ClientException)

Aggregations

ICallback (com.microsoft.graph.concurrency.ICallback)1 ClientException (com.microsoft.graph.core.ClientException)1 Group (com.microsoft.graph.extensions.Group)1 IDirectoryObjectCollectionWithReferencesPage (com.microsoft.graph.extensions.IDirectoryObjectCollectionWithReferencesPage)1 IGroupCollectionPage (com.microsoft.graph.extensions.IGroupCollectionPage)1