/// <summary> /// Ban a Single User. /// Only Moderator that can ban other user. /// </summary> /// <param name="userId">Ban user's user ID</param> /// <param name="banType">The type of Ban</param> /// <param name="reason">The reason of Banning</param> /// <param name="endDate">The date when the ban is lifted</param> /// <param name="comment">The detail or comment about the banning</param> /// <param name="notifyUser">Notify user via email or not</param> /// <param name="callback">Returns a result via callback when completed</param> public void BanUser(string userId, BanType banType, BanReason reason, DateTime endDate, string comment, bool notifyUser, ResultCallback <UserBanResponseV3> callback) { Report.GetFunctionLog(this.GetType().Name); if (!this.loginSession.IsValid()) { callback.TryError(ErrorCode.IsNotLoggedIn); return; } var banRequest = new BanCreateRequest { ban = banType.ToString(), comment = comment, endDate = endDate.ToString("o"), reason = reason.ToString(), skipNotif = !notifyUser }; this.coroutineRunner.Run( this.userAccount.BanUser( AccelBytePlugin.Config.Namespace, this.loginSession.AuthorizationToken, userId, banRequest, callback)); }
public IEnumerator BanUser(string @namespace, string accessToken, string userId, BanCreateRequest banRequest, ResultCallback <UserBanResponseV3> callback) { Assert.IsNotNull(@namespace, nameof(@namespace) + " cannot be null"); Assert.IsNotNull(userId, nameof(userId) + " cannot be null"); Assert.IsNotNull(accessToken, nameof(accessToken) + " cannot be null"); var request = HttpRequestBuilder .CreatePost(this.baseUrl + "/v3/admin/namespaces/{namespace}/users/{userId}/bans") .WithPathParam("namespace", @namespace) .WithPathParam("userId", userId) .WithBearerAuth(accessToken) .WithContentType(MediaType.ApplicationJson) .Accepts(MediaType.ApplicationJson) .WithBody(banRequest.ToUtf8Json()) .GetResult(); IHttpResponse response = null; yield return(this.httpClient.SendRequest(request, rsp => response = rsp)); var result = response.TryParseJson <UserBanResponseV3>(); callback.Try(result); }