private void List(string spaceId, string personId, string personEmail, int?max, Action <WebexApiEventArgs <List <Membership> > > completionHandler)
        {
            ServiceRequest request = BuildRequest();

            request.Method      = HttpMethod.GET;
            request.RootElement = "items";
            if (spaceId != null)
            {
                request.AddQueryParameters("roomId", spaceId);
            }
            if (personId != null)
            {
                request.AddQueryParameters("personId", personId);
            }
            if (personEmail != null)
            {
                request.AddQueryParameters("personEmail", personEmail);
            }
            if (max != null)
            {
                request.AddQueryParameters("max", max);
            }

            request.Execute <List <Membership> >(completionHandler);
        }
예제 #2
0
        /// <summary>
        /// Posts a webhook for the authenticated user.
        /// </summary>
        /// <param name="name">A user-friendly name for this webhook.</param>
        /// <param name="targetUrl">The URL that receives POST requests for each event.</param>
        /// <param name="resource">The resource type for the webhook.</param>
        /// <param name="eventType">The event type for the webhook.</param>
        /// <param name="filter">The filter that defines the webhook scope.</param>
        /// <param name="secret">Secret use to generate payload signiture</param>
        /// <param name="completionHandler">The completion event handler.</param>
        /// <remarks>Since: 0.1.0</remarks>
        public void Create(string name, string targetUrl, string resource, string eventType, string filter, string secret, Action <WebexApiEventArgs <Webhook> > completionHandler)
        {
            ServiceRequest request = BuildRequest();

            request.Method = HttpMethod.POST;
            if (name != null)
            {
                request.AddBodyParameters("name", name);
            }
            if (targetUrl != null)
            {
                request.AddBodyParameters("targetUrl", targetUrl);
            }
            if (resource != null)
            {
                request.AddBodyParameters("resource", resource);
            }
            if (eventType != null)
            {
                request.AddBodyParameters("event", eventType);
            }
            if (filter != null)
            {
                request.AddBodyParameters("filter", filter);
            }
            if (secret != null)
            {
                request.AddBodyParameters("secret", secret);
            }

            request.Execute <Webhook>(completionHandler);
        }
예제 #3
0
        /// <summary>
        /// Adds a person to a space by email address; optionally making the person a moderator.
        /// </summary>
        /// <param name="spaceId">The identifier of the space where the person is to be added.</param>
        /// <param name="personEmail">The email address of the person to be added.</param>
        /// <param name="isModerator">if set to <c>true</c> [is moderator of the space]. The default is false.</param>
        /// <param name="completionHandler">The completion handler.</param>
        /// <remarks>Since: 0.1.0</remarks>
        public void CreateByPersonEmail(string spaceId, string personEmail, bool?isModerator = false, Action <WebexApiEventArgs <Membership> > completionHandler = null)
        {
            ServiceRequest request = BuildRequest();

            request.Method = HttpMethod.POST;
            if (spaceId != null)
            {
                request.AddBodyParameters("roomId", spaceId);
            }
            if (personEmail != null)
            {
                request.AddBodyParameters("personEmail", personEmail);
            }
            if (isModerator != null)
            {
                request.AddBodyParameters("isModerator", isModerator.ToString());
            }

            request.Execute <InternalMembership>(r =>
            {
                Membership m = null;
                if (r.IsSuccess)
                {
                    m = ConvertToMembership(r.Data);
                }
                completionHandler?.Invoke(new WebexApiEventArgs <Membership>(r.IsSuccess, r.Error, m));
            });
        }
예제 #4
0
        /// <summary>
        /// Retrieves the details for a person by person id.
        /// </summary>
        /// <param name="personId">The identifier of the person.</param>
        /// <param name="completionHandler">The completion event handler.</param>
        /// <remarks>Since: 0.1.0</remarks>
        public void Get(string personId, Action <WebexApiEventArgs <Person> > completionHandler)
        {
            ServiceRequest request = BuildRequest();

            request.Resource = personId;

            request.Execute <Person>(completionHandler);
        }
예제 #5
0
        /// <summary>
        /// Retrieves the details for the authenticated user.
        /// </summary>
        /// <param name="completionHandler">The completion event handler.</param>
        /// <remarks>Since: 0.1.0</remarks>
        public void GetMe(Action <WebexApiEventArgs <Person> > completionHandler)
        {
            ServiceRequest request = BuildRequest();

            request.Resource = "me";

            request.Execute <Person>(completionHandler);
        }
예제 #6
0
        /// <summary>
        /// Deletes a membership by id.
        /// </summary>
        /// <param name="membershipId">The identifier of the membership.</param>
        /// <param name="completionHandler">The completion event handler.</param>
        /// <remarks>Since: 0.1.0</remarks>
        public void Delete(string membershipId, Action <WebexApiEventArgs> completionHandler)
        {
            ServiceRequest request = BuildRequest();

            request.Method   = HttpMethod.DELETE;
            request.Resource = membershipId;

            request.Execute <bool>(completionHandler);
        }
예제 #7
0
        /// <summary>
        /// Retrieves the details for a membership by id.
        /// </summary>
        /// <param name="membershipId">The identifier of the membership.</param>
        /// <param name="completionHandler">The completion event handler.</param>
        /// <remarks>Since: 0.1.0</remarks>
        public void Get(string membershipId, Action <WebexApiEventArgs <TeamMembership> > completionHandler)
        {
            ServiceRequest request = BuildRequest();

            request.Method   = HttpMethod.GET;
            request.Resource = membershipId;

            request.Execute <TeamMembership>(completionHandler);
        }
예제 #8
0
        /// <summary>
        /// Retrieves the details for a space by id.
        /// </summary>
        /// <param name="spaceId">The identifier of the space.</param>
        /// <param name="completionHandler">The completion event handler.</param>
        /// <remarks>Since: 0.1.0</remarks>
        public void Get(string spaceId, Action <WebexApiEventArgs <Space> > completionHandler)
        {
            ServiceRequest request = BuildRequest();

            request.Method   = HttpMethod.GET;
            request.Resource = spaceId;

            request.Execute <Space>(completionHandler);
        }
예제 #9
0
        /// <summary>
        /// Creates a team. The authenticated user is automatically added as a member of the team.
        /// See the Team Memberships API to learn how to add more people to the team.
        /// </summary>
        /// <param name="name">A user-friendly name for the team.</param>
        /// <param name="completionHandler">The completion event handler.</param>
        /// <remarks>Since: 0.1.0</remarks>
        public void Create(string name, Action <WebexApiEventArgs <Team> > completionHandler)
        {
            ServiceRequest request = BuildRequest();

            request.Method = HttpMethod.POST;
            if (name != null)
            {
                request.AddBodyParameters("name", name);
            }

            request.Execute <Team>(completionHandler);
        }
예제 #10
0
        /// <summary>
        /// Updates the details for a space by id.
        /// </summary>
        /// <param name="spaceId">The identifier of the space.</param>
        /// <param name="title">A user-friendly name for the space.</param>
        /// <param name="completionHandler">The completion event handler.</param>
        /// <remarks>Since: 0.1.0</remarks>
        public void Update(string spaceId, string title, Action <WebexApiEventArgs <Space> > completionHandler)
        {
            ServiceRequest request = BuildRequest();

            request.Method   = HttpMethod.PUT;
            request.Resource = spaceId;
            if (title != null)
            {
                request.AddQueryParameters("title", title);
            }

            request.Execute <Space>(completionHandler);
        }
예제 #11
0
        /// <summary>
        /// Updates the details for a membership by id.
        /// </summary>
        /// <param name="membershipId">The identifier of the membership.</param>
        /// <param name="isModerator">if set to <c>true</c> [is moderator of the team]. The default is false.</param>
        /// <param name="completionHandler">The completion event handler.</param>
        /// <remarks>Since: 0.1.0</remarks>
        public void Update(string membershipId, bool?isModerator, Action <WebexApiEventArgs <TeamMembership> > completionHandler)
        {
            ServiceRequest request = BuildRequest();

            request.Method   = HttpMethod.PUT;
            request.Resource = membershipId;
            if (isModerator != null)
            {
                request.AddBodyParameters("isModerator", isModerator.ToString());
            }

            request.Execute <TeamMembership>(completionHandler);
        }
예제 #12
0
        /// <summary>
        /// Lists teams to which the authenticated user belongs.
        /// </summary>
        /// <param name="max">The maximum number of teams in the response. if null, list all teams.</param>
        /// <param name="completionHandler">The completion event handler.</param>
        /// <remarks>Since: 0.1.0</remarks>
        public void List(int?max, Action <WebexApiEventArgs <List <Team> > > completionHandler)
        {
            ServiceRequest request = BuildRequest();

            request.Method      = HttpMethod.GET;
            request.RootElement = "items";
            if (max != null)
            {
                request.AddQueryParameters("max", max.ToString());
            }

            request.Execute <List <Team> >(completionHandler);
        }
예제 #13
0
        /// <summary>
        /// Updates the details for a team by id.
        /// </summary>
        /// <param name="teamId">The team id.</param>
        /// <param name="name">A user-friendly name for the team.</param>
        /// <param name="completionHandler">The completion event handler.</param>
        /// <remarks>Since: 0.1.0</remarks>
        public void Update(string teamId, string name, Action <WebexApiEventArgs <Team> > completionHandler)
        {
            ServiceRequest request = BuildRequest();

            request.Method   = HttpMethod.PUT;
            request.Resource = teamId;
            if (name != null)
            {
                request.AddQueryParameters("name", name);
            }

            request.Execute <Team>(completionHandler);
        }
예제 #14
0
        /// <summary>
        /// Creates a space. The authenticated user is automatically added as a member of the space. See the Memberships API to learn how to add more people to the space.
        /// </summary>
        /// <param name="title">A user-friendly name for the space.</param>
        /// <param name="teamId">If not null, this space will be associated with the team by team id. Otherwise, this space is not associated with any team.</param>
        /// <param name="completionHandler">The completion event handler.</param>
        /// <remarks>Since: 0.1.0</remarks>
        public void Create(string title, string teamId, Action <WebexApiEventArgs <Space> > completionHandler)
        {
            ServiceRequest request = BuildRequest();

            request.Method = HttpMethod.POST;
            if (title != null)
            {
                request.AddBodyParameters("title", title);
            }
            if (teamId != null)
            {
                request.AddBodyParameters("teamId", teamId);
            }

            request.Execute <Space>(completionHandler);
        }
예제 #15
0
        /// <summary>
        /// Updates a webhook by id.
        /// </summary>
        /// <param name="webhookId">The identifier of  the webhook.</param>
        /// <param name="name">A user-friendly name for this webhook.</param>
        /// <param name="targetUrl">The URL that receives POST requests for each event.</param>
        /// <param name="completionHandler">The completion event handler.</param>
        /// <remarks>Since: 0.1.0</remarks>
        public void Update(string webhookId, string name, string targetUrl, Action <WebexApiEventArgs <Webhook> > completionHandler)
        {
            ServiceRequest request = BuildRequest();

            request.Method   = HttpMethod.PUT;
            request.Resource = webhookId;
            if (name != null)
            {
                request.AddBodyParameters("name", name);
            }
            if (targetUrl != null)
            {
                request.AddBodyParameters("targetUrl", targetUrl);
            }

            request.Execute <Webhook>(completionHandler);
        }
예제 #16
0
        /// <summary>
        /// Retrieves the details for a membership by membership id.
        /// </summary>
        /// <param name="membershipId">The identifier of the membership.</param>
        /// <param name="completionHandler">The completion event handler.</param>
        /// <remarks>Since: 0.1.0</remarks>
        public void Get(string membershipId, Action <WebexApiEventArgs <Membership> > completionHandler)
        {
            ServiceRequest request = BuildRequest();

            request.Method   = HttpMethod.GET;
            request.Resource = membershipId;

            request.Execute <InternalMembership>(r =>
            {
                Membership m = null;
                if (r.IsSuccess)
                {
                    m = ConvertToMembership(r.Data);
                }
                completionHandler?.Invoke(new WebexApiEventArgs <Membership>(r.IsSuccess, r.Error, m));
            });
        }
예제 #17
0
        /// <summary>
        /// Lists all team memberships where the authenticated user belongs.
        /// </summary>
        /// <param name="teamId">Limit results to a specific team, by ID.</param>
        /// <param name="max">The maximum number of team memberships in the response.</param>
        /// <param name="completionHandler">The completion event handler.</param>
        /// <remarks>Since: 0.1.0</remarks>
        public void List(string teamId, int?max, Action <WebexApiEventArgs <List <TeamMembership> > > completionHandler)
        {
            ServiceRequest request = BuildRequest();

            request.Method      = HttpMethod.GET;
            request.RootElement = "items";
            if (teamId != null)
            {
                request.AddQueryParameters("teamId", teamId);
            }
            if (max != null)
            {
                request.AddQueryParameters("max", max);
            }

            request.Execute <List <TeamMembership> >(completionHandler);
        }
예제 #18
0
        /// <summary>
        /// Lists all spaces where the authenticated user belongs.
        /// </summary>
        /// <param name="teamId">If not null, only list the spaces that are associated with the team by team id.</param>
        /// <param name="max">The maximum number of spaces in the response. If null, all spaces are listed.</param>
        /// <param name="type">If not null, only list the spaces of this type. Otherwise all spaces are listed.</param>
        /// <param name="sortBy">If not null, sort results by spaceId(id), most recent activity(lastactivity), or most recently created(created).</param>
        /// <param name="completionHandler">The completion handler.</param>
        /// <remarks>Since: 0.1.0</remarks>
        public void List(string teamId, int?max, SpaceType?type, SpaceSortType?sortBy, Action <WebexApiEventArgs <List <Space> > > completionHandler)
        {
            ServiceRequest request = BuildRequest();

            request.Method      = HttpMethod.GET;
            request.RootElement = "items";
            if (teamId != null)
            {
                request.AddQueryParameters("teamId", teamId);
            }
            if (max != null)
            {
                request.AddQueryParameters("max", max);
            }
            if (type != null)
            {
                request.AddQueryParameters("type", type.ToString().ToLower());
            }
            if (sortBy != null)
            {
                string strSortBy = null;
                switch (sortBy)
                {
                case SpaceSortType.ById:
                    strSortBy = "id";
                    break;

                case SpaceSortType.ByLastActivity:
                    strSortBy = "lastactivity";
                    break;

                case SpaceSortType.ByCreated:
                    strSortBy = "created";
                    break;

                default:
                    completionHandler?.Invoke(new WebexApiEventArgs <List <Space> >(false, new WebexError(WebexErrorCode.IllegalOperation, "sort type is invalid."), null));
                    return;
                }
                request.AddQueryParameters("sortBy", strSortBy);
            }

            request.Execute <List <Space> >(completionHandler);
        }
예제 #19
0
        /// <summary>
        /// Adds a person to a team by person id; optionally making the person a moderator of the team.
        /// </summary>
        /// <param name="teamId">The identifier of the team.</param>
        /// <param name="personId">The identifier of the person.</param>
        /// <param name="isModerator">if set to <c>true</c> [is moderator of the team]. The default is false.</param>
        /// <param name="completionHandler">The completion event handler.</param>
        /// <remarks>Since: 0.1.0</remarks>
        public void CreateById(string teamId, string personId, bool?isModerator = false, Action <WebexApiEventArgs <TeamMembership> > completionHandler = null)
        {
            ServiceRequest request = BuildRequest();

            request.Method = HttpMethod.POST;
            if (teamId != null)
            {
                request.AddBodyParameters("teamId", teamId);
            }
            if (personId != null)
            {
                request.AddBodyParameters("personId", personId);
            }
            if (isModerator != null)
            {
                request.AddBodyParameters("isModerator", isModerator.ToString());
            }

            request.Execute <TeamMembership>(completionHandler);
        }
        /// <summary>
        /// Adds a person to a space by email address; optionally making the person a moderator.
        /// </summary>
        /// <param name="spaceId">The identifier of the space where the person is to be added.</param>
        /// <param name="personEmail">The email address of the person to be added.</param>
        /// <param name="isModerator">if set to <c>true</c> [is moderator of the space]. The default is false.</param>
        /// <param name="completionHandler">The completion handler.</param>
        /// <remarks>Since: 0.1.0</remarks>
        public void CreateByPersonEmail(string spaceId, string personEmail, bool?isModerator = false, Action <WebexApiEventArgs <Membership> > completionHandler = null)
        {
            ServiceRequest request = BuildRequest();

            request.Method = HttpMethod.POST;
            if (spaceId != null)
            {
                request.AddBodyParameters("roomId", spaceId);
            }
            if (personEmail != null)
            {
                request.AddBodyParameters("personEmail", personEmail);
            }
            if (isModerator != null)
            {
                request.AddBodyParameters("isModerator", isModerator);
            }

            request.Execute <Membership>(completionHandler);
        }
예제 #21
0
        /// <summary>
        /// Lists people in the authenticated user's organization.
        /// </summary>
        /// <param name="email">if not null, only list people with this email address.</param>
        /// <param name="displayName">if not null, only list people whose name starts with this string.</param>
        /// <param name="max">The maximum number of people in the response.</param>
        /// <param name="completionHandler">The completion event handler.</param>
        /// <remarks>Since: 0.1.0</remarks>
        public void List(string email, string displayName, int?max, Action <WebexApiEventArgs <List <Person> > > completionHandler)
        {
            ServiceRequest request = BuildRequest();

            request.RootElement = "items";
            if (email != null)
            {
                request.AddQueryParameters("email", email);
            }
            if (displayName != null)
            {
                request.AddQueryParameters("displayName", displayName);
            }
            if (max != null)
            {
                request.AddQueryParameters("max", max);
            }

            request.Execute <List <Person> >(completionHandler);
        }
예제 #22
0
        /// <summary>
        /// Updates the properties of a membership by membership id.
        /// </summary>
        /// <param name="membershipId">The identifier of the membership.</param>
        /// <param name="isModerator">if set to <c>true</c> [is moderator of the space]. The default is false.</param>
        /// <param name="completionHandler">The completion event handler.</param>
        /// <remarks>Since: 0.1.0</remarks>
        public void Update(string membershipId, bool?isModerator, Action <WebexApiEventArgs <Membership> > completionHandler)
        {
            ServiceRequest request = BuildRequest();

            request.Method   = HttpMethod.PUT;
            request.Resource = membershipId;
            if (isModerator != null)
            {
                request.AddBodyParameters("isModerator", isModerator.ToString());
            }

            request.Execute <InternalMembership>(r =>
            {
                Membership m = null;
                if (r.IsSuccess)
                {
                    m = ConvertToMembership(r.Data);
                }
                completionHandler?.Invoke(new WebexApiEventArgs <Membership>(r.IsSuccess, r.Error, m));
            });
        }
예제 #23
0
        private void List(string spaceId, string personId, string personEmail, int?max, Action <WebexApiEventArgs <List <Membership> > > completionHandler)
        {
            ServiceRequest request = BuildRequest();

            request.Method      = HttpMethod.GET;
            request.RootElement = "items";
            if (spaceId != null)
            {
                request.AddQueryParameters("roomId", spaceId);
            }
            if (personId != null)
            {
                request.AddQueryParameters("personId", personId);
            }
            if (personEmail != null)
            {
                request.AddQueryParameters("personEmail", personEmail);
            }
            if (max != null)
            {
                request.AddQueryParameters("max", max.ToString());
            }

            request.Execute <List <InternalMembership> >(r =>
            {
                List <Membership> m = null;
                if (r.IsSuccess)
                {
                    m = new List <Membership>();
                    foreach (var item in r.Data)
                    {
                        m.Add(ConvertToMembership(item));
                    }
                }
                completionHandler?.Invoke(new WebexApiEventArgs <List <Membership> >(r.IsSuccess, r.Error, m));
            });
        }