示例#1
0
        // 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));
        }
示例#2
0
        // 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"]
                }));
            }
        }
示例#3
0
        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));
        }