public async Task <Result <DirectThreadItemsOnly> > GetItemsInDirectThreadAsync(string threadId,
                                                                                        params string[] itemIds)
        {
            ValidateLoggedIn();
            try
            {
                var uri      = UriCreator.GetDirectThreadItemsUri(threadId, itemIds);
                var response = await _httpClient.GetAsync(uri);

                var json = await response.Content.ReadAsStringAsync();

                DebugLogger.LogResponse(response);

                if (!response.IsSuccessStatusCode)
                {
                    return(Result <DirectThreadItemsOnly> .Fail(json, response.ReasonPhrase));
                }
                var obj = JsonConvert.DeserializeObject <DirectThreadItemsOnly>(json);
                return(!obj.IsOk() ? Result <DirectThreadItemsOnly> .Fail(json) : Result <DirectThreadItemsOnly> .Success(obj));
            }
            catch (Exception e)
            {
                DebugLogger.LogException(e);
                return(Result <DirectThreadItemsOnly> .Except(e));
            }
        }