/// <summary> /// Set contributor permissions on the live thread. /// </summary> /// <param name="userName"></param> /// <param name="permissions">Permissions to set.</param> public async Task <bool> SetContributorPermissions(string userName, LiveUpdateEventPermission permissions) { var request = WebAgent.CreateRequest(SetContributorPermissionUrl, "POST"); WebAgent.WritePostBody(request, new { api_type = "json", name = userName, type = "liveupdate_contributor", permissions = GetPermissionsString(permissions) }); var response = await WebAgent.GetResponseAsync(request).ConfigureAwait(false); if (response.IsSuccessStatusCode) { return(true); } return(false); }
/// <summary> /// Set permissions on a contributor who has been invited but has not accepted. /// </summary> /// <param name="name"></param> /// <param name="permissions">Permissions to set.</param> public void SetInvitedContributorPermissions(string userName, LiveUpdateEventPermission permissions) { if (Reddit.User == null) { throw new AuthenticationException("No user logged in."); } var request = WebAgent.CreatePost(String.Format(SetContributorPermissionUrl, Name)); var stream = request.GetRequestStream(); WebAgent.WritePostBody(stream, new { api_type = "json", name = userName, type = "liveupdate_contributor_invite", permissions = GetPermissionsString(permissions), uh = Reddit.User.Modhash }); stream.Close(); var response = request.GetResponse(); var data = WebAgent.GetResponseString(response.GetResponseStream()); }
private string GetPermissionsString(LiveUpdateEventPermission input) { // settings of edit + close // -all,-close,+edit,-manage,+settings,-update if (input == LiveUpdateEventPermission.All) { return("+all"); } if (input == LiveUpdateEventPermission.None) { return("-all,-close,-edit,-manage,-settings,-update"); } var result = "-all,"; if (input.HasFlag(LiveUpdateEventPermission.Close)) { result += "+close,"; } else { result += "-close,"; } if (input.HasFlag(LiveUpdateEventPermission.Edit)) { result += "+edit,"; } else { result += "-edit,"; } if (input.HasFlag(LiveUpdateEventPermission.Manage)) { result += "+manage,"; } else { result += "-manage,"; } if (input.HasFlag(LiveUpdateEventPermission.Settings)) { result += "+settings,"; } else { result += "-settings,"; } if (input.HasFlag(LiveUpdateEventPermission.Update)) { result += "+update,"; } else { result += "-update,"; } if (result.EndsWith(",")) { result = result.Remove(result.Length - 1, 1); } return(result); }
/// <summary> /// Set permissions on a contributor who has been invited but has not accepted. /// </summary> /// <param name="name"></param> /// <param name="permissions">Permissions to set.</param> public void SetInvitedContributorPermissions(RedditUser user, LiveUpdateEventPermission permissions) { SetInvitedContributorPermissions(user.Name, permissions); }
/// <summary> /// Set permissions on a contributor who has been invited but has not accepted. /// </summary> /// <param name="user"></param> /// <param name="permissions">Permissions to set.</param> public async Task <bool> SetInvitedContributorPermissionsAsync(RedditUser user, LiveUpdateEventPermission permissions) { return(await SetInvitedContributorPermissionsAsync(user.Name, permissions).ConfigureAwait(false)); }