Exemple #1
0
        private async Task <string> MakeRequest(string customerCode, string url)
        {
            string token;

            if (_settings.UseConsolidatedApi)
            {
                token = string.IsNullOrWhiteSpace(customerCode)
                    ? throw new CustomerCodeNotSpecifiedException("Customer code not specified")
                    : await _dpcDbClient.GetCachedHighloadApiAuthToken(customerCode);
            }
            else
            {
                token = _settings.XAuthToken;
            }

            var client  = _factory.CreateClient();
            var request = new HttpRequestMessage(HttpMethod.Get, url);

            if (!string.IsNullOrWhiteSpace(token))
            {
                request.Headers.Add("X-Auth-Token", token);
            }

            var response = await client.SendAsync(request);

            if (response.StatusCode == HttpStatusCode.Forbidden)
            {
                throw new GetProductJsonException("Access to product API denied");
            }
            return(await response.Content.ReadAsStringAsync());
        }
        public async Task <ActionResult> GetHighloadApiToken(string customerCode)
        {
            try
            {
                var token = await _dpcDbClient.GetCachedHighloadApiAuthToken(customerCode);

                return(new JsonResult(new { success = true, token }));
            }
            catch (Exception ex)
            {
                Logger.Error(ex, "Error while getting customer code configuration");
                return(new JsonResult(new { success = false, error = $"Error while getting auth token: {ex.Message}" }));
            }
        }