Beispiel #1
0
        public async Task<Validation<string>> Create(Expense expense)
        {
            IEnumerable<KeyValuePair<string, string>> dict = UrlFormEncoded.Encode(expense);

            HttpRequestItem httpRequestItem = new HttpRequestItem()
            {
                Url = "https://api.toshl.com/expenses/",
                HttpMethod = HttpMethod.Post,
                AuthHeaderValue = new AuthenticationHeaderValue("Bearer", AccessToken),
                HttpContent = new FormUrlEncodedContent(dict)
            };

            HttpResponseMessage httpResponseMessage = await _requestHandler.RequestAsync(httpRequestItem);

            if (httpResponseMessage.IsSuccessStatusCode)
            {
                string id = httpResponseMessage.Headers.GetValues("Location").First();
                id = id.Split('/').Last();

                return new Validation<string>()
                {
                    ErrorMessages = new string[0],
                    ReturnObject = id
                };
            }

            return new Validation<string>()
            {
                ErrorMessages = new string[]
                {
                    httpResponseMessage.ReasonPhrase
                }
            };
        }
        public async Task<HttpResponseMessage> RequestAsync(HttpRequestItem httpRequestItem)
        {
            _client.DefaultRequestHeaders.Authorization = httpRequestItem.AuthHeaderValue;

            HttpRequestMessage httpRequest = new HttpRequestMessage()
            {
                RequestUri = new Uri(httpRequestItem.Url),
                Method = httpRequestItem.HttpMethod,
                Content = httpRequestItem.HttpContent
            };

            if (httpRequestItem.Headers != null)
            {
                foreach (var header in httpRequestItem.Headers)
                {
                    httpRequest.Headers.Add(header.Item1, header.Item2);
                }
            }

            if (httpRequestItem.IfUnmodifiedSinceHeader != DateTime.MinValue)
            {
                httpRequest.Headers.IfUnmodifiedSince = httpRequestItem.IfUnmodifiedSinceHeader;
            }

            HttpResponseMessage httpResponseMessage = await _client.SendAsync(httpRequest);

            return httpResponseMessage;
        }
Beispiel #3
0
        public async Task<User> Get()
        {
            HttpRequestItem httpRequestItem = new HttpRequestItem()
            {
                Url = Url,
                HttpMethod = HttpMethod.Get,
                AuthHeaderValue = new AuthenticationHeaderValue("Bearer", AccessToken)
            };

            HttpResponseMessage httpResponseMessage = await _requestHandler.RequestAsync(httpRequestItem);

            string content = await httpResponseMessage.Content.ReadAsStringAsync();

            User user = JsonConvertHelper.DeserializeObject<User>(content);

            return user;
        }
Beispiel #4
0
        public async Task<Expense> Get(int expenseId)
        {
            HttpRequestItem httpRequestItem = new HttpRequestItem()
            {
                Url = "https://api.toshl.com/expenses/" + expenseId,
                HttpMethod = HttpMethod.Get,
                AuthHeaderValue = new AuthenticationHeaderValue("Bearer", AccessToken)
            };

            HttpResponseMessage httpResponseMessage = await _requestHandler.RequestAsync(httpRequestItem);

            string content = await httpResponseMessage.Content.ReadAsStringAsync();

            Expense expense = JsonConvertHelper.DeserializeObject<Expense>(content);

            return expense;
        }
Beispiel #5
0
        public async Task<User> Put(User user)
        {
            HttpRequestItem httpRequestItem = new HttpRequestItem()
            {
                Url = Url,
                HttpMethod = HttpMethod.Put,
                AuthHeaderValue = new AuthenticationHeaderValue("Bearer", AccessToken),
                HttpContent = new FormUrlEncodedContent(JsonConvertHelper.SerializeToDictionary(user)),
                IfUnmodifiedSinceHeader = new DateTime(2014, 08, 02)
            };

            HttpResponseMessage httpResponseMessage = await _requestHandler.RequestAsync(httpRequestItem);

            string content = await httpResponseMessage.Content.ReadAsStringAsync();

            User updatedUser = JsonConvertHelper.DeserializeObject<User>(content);

            return updatedUser;
        }