// From body is a hack. Because query have length limit. public async Task <IActionResult> GetUsersSimpleInfoBatch(ulong guildId, [FromBody] GetUsersSimpleInfoBatchRequest request) { var guild = DiscordClient.GetGuild(guildId); if (guild == null) { return(BadRequest(new { Message = "Requested guild not found." })); } await guild.SyncGuildAsync(); var users = new List <SimpleUserInfo>(); foreach (var id in request.UserIDs) { var user = await guild.GetUserFromGuildAsync(id); if (user != null) { users.Add(SimpleUserInfo.Create(user)); } } return(Ok(users)); }
// From body is a hack. Because query have length limit. public async Task <IActionResult> GetUsersSimpleInfoBatch(ulong guild, [FromBody] GetUsersSimpleInfoBatchRequest request) { try { var data = await UserService.GetSimpleUsersList(guild, request.UserIDs); return(Ok(data)); } catch (BadRequestException ex) { return(BadRequest(new { ex.Message, Data = ex.Data["Data"] })); } }
public async Task <List <SimpleUserInfo> > GetUsersSimpleInfoBatchAsync(IEnumerable <ulong> userIds) { var request = new GetUsersSimpleInfoBatchRequest() { UserIDs = userIds.ToList() }; using var postData = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json"); var response = await HttpClient.PostAsync($"users/usersSimpleInfoBatch/{GuildID}", postData); if (!response.IsSuccessStatusCode) { var responseData = await response.Content.ReadAsStringAsync(); throw new WebException(responseData); } var content = await response.Content.ReadAsStringAsync(); return(JsonConvert.DeserializeObject <List <SimpleUserInfo> >(content)); }