mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2024-11-19 18:11:36 +01:00
Report shopify errors to the UI (Fix #3853)
This commit is contained in:
parent
f0e013e1f8
commit
0da97c5da3
@ -48,9 +48,15 @@ namespace BTCPayServer.Plugins.Shopify
|
||||
using var resp = await _httpClient.SendAsync(req);
|
||||
|
||||
var strResp = await resp.Content.ReadAsStringAsync();
|
||||
if (strResp?.StartsWith("{\"errors\":\"[API] Invalid API key or access token", StringComparison.OrdinalIgnoreCase) == true)
|
||||
throw new ShopifyApiException("Invalid API key or access token");
|
||||
|
||||
if (strResp.StartsWith("{", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
if (JObject.Parse(strResp)["errors"]?.Value<string>() is string error)
|
||||
{
|
||||
if (error == "Not Found")
|
||||
error = "Shop not found";
|
||||
throw new ShopifyApiException(error);
|
||||
}
|
||||
}
|
||||
return strResp;
|
||||
}
|
||||
|
||||
@ -73,7 +79,8 @@ namespace BTCPayServer.Plugins.Shopify
|
||||
public async Task<string[]> CheckScopes()
|
||||
{
|
||||
var req = CreateRequest(_credentials.ShopName, HttpMethod.Get, null, "admin/oauth/access_scopes.json");
|
||||
return JObject.Parse(await SendRequest(req))["access_scopes"].Values<JToken>()
|
||||
var c = JObject.Parse(await SendRequest(req));
|
||||
return c["access_scopes"].Values<JToken>()
|
||||
.Select(token => token["handle"].Value<string>()).ToArray();
|
||||
}
|
||||
|
||||
|
@ -236,16 +236,14 @@ namespace BTCPayServer.Plugins.Shopify
|
||||
TempData[WellKnownTempData.ErrorMessage] = "Please provide valid Shopify credentials";
|
||||
return View(vm);
|
||||
}
|
||||
|
||||
var apiClient = new ShopifyApiClient(_clientFactory, shopify.CreateShopifyApiCredentials());
|
||||
try
|
||||
{
|
||||
await apiClient.OrdersCount();
|
||||
}
|
||||
catch (ShopifyApiException)
|
||||
catch (ShopifyApiException err)
|
||||
{
|
||||
TempData[WellKnownTempData.ErrorMessage] =
|
||||
"Shopify rejected provided credentials, please correct values and try again";
|
||||
TempData[WellKnownTempData.ErrorMessage] = err.Message;
|
||||
return View(vm);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user