mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-06-21 01:25:55 +02:00
Disable GET_GROSS_PRICES option for TME info provider when using private key. Otherwise we receive an error.
This fixes issue #838
This commit is contained in:
parent
1e19ff24ba
commit
fd7a0156bc
3 changed files with 22 additions and 4 deletions
3
.env
3
.env
|
@ -143,7 +143,8 @@ PROVIDER_TME_CURRENCY=EUR
|
||||||
PROVIDER_TME_LANGUAGE=en
|
PROVIDER_TME_LANGUAGE=en
|
||||||
# The country to get results for
|
# The country to get results for
|
||||||
PROVIDER_TME_COUNTRY=DE
|
PROVIDER_TME_COUNTRY=DE
|
||||||
# Set this to 1 to get gross prices (including VAT) instead of net prices
|
# [DEPRECATED] Set this to 1 to get gross prices (including VAT) instead of net prices
|
||||||
|
# With private API keys, this option cannot be used anymore is ignored by Part-DB. The VAT inclusion depends on your TME account settings.
|
||||||
PROVIDER_TME_GET_GROSS_PRICES=1
|
PROVIDER_TME_GET_GROSS_PRICES=1
|
||||||
|
|
||||||
# Octopart / Nexar Provider:
|
# Octopart / Nexar Provider:
|
||||||
|
|
|
@ -50,6 +50,16 @@ class TMEClient
|
||||||
return $this->token !== '' && $this->secret !== '';
|
return $this->token !== '' && $this->secret !== '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns true if the client is using a private (account related token) instead of a deprecated anonymous token
|
||||||
|
* to authenticate with TME.
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function isUsingPrivateToken(): bool
|
||||||
|
{
|
||||||
|
//Private tokens are longer than anonymous ones (50 instead of 45 characters)
|
||||||
|
return strlen($this->token) > 45;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generates the signature for the given action and parameters.
|
* Generates the signature for the given action and parameters.
|
||||||
|
|
|
@ -36,12 +36,19 @@ class TMEProvider implements InfoProviderInterface
|
||||||
|
|
||||||
private const VENDOR_NAME = 'TME';
|
private const VENDOR_NAME = 'TME';
|
||||||
|
|
||||||
|
/** @var bool If true, the prices are gross prices. If false, the prices are net prices. */
|
||||||
|
private readonly bool $get_gross_prices;
|
||||||
|
|
||||||
public function __construct(private readonly TMEClient $tmeClient, private readonly string $country,
|
public function __construct(private readonly TMEClient $tmeClient, private readonly string $country,
|
||||||
private readonly string $language, private readonly string $currency,
|
private readonly string $language, private readonly string $currency,
|
||||||
/** @var bool If true, the prices are gross prices. If false, the prices are net prices. */
|
bool $get_gross_prices)
|
||||||
private readonly bool $get_gross_prices)
|
|
||||||
{
|
{
|
||||||
|
//If we have a private token, set get_gross_prices to false, as it is automatically determined by the account type then
|
||||||
|
if ($this->tmeClient->isUsingPrivateToken()) {
|
||||||
|
$this->get_gross_prices = false;
|
||||||
|
} else {
|
||||||
|
$this->get_gross_prices = $get_gross_prices;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getProviderInfo(): array
|
public function getProviderInfo(): array
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue