setAccessKey(($key) ?: $this->parseEnv('AWS_GIFT_CARD_KEY')); /** * @psalm-suppress InvalidScalarArgument * @phpstan-ignore-next-line */ $this->setSecret(($secret) ?: $this->parseEnv('AWS_GIFT_CARD_SECRET')); /** * @psalm-suppress InvalidScalarArgument * @phpstan-ignore-next-line */ $this->setPartner(($partner) ?: $this->parseEnv('AWS_GIFT_CARD_PARTNER_ID')); /** * @psalm-suppress InvalidScalarArgument * @phpstan-ignore-next-line */ $this->setEndpoint(($endpoint) ?: $this->parseEnv('AWS_GIFT_CARD_ENDPOINT')); /** * @psalm-suppress InvalidScalarArgument * @phpstan-ignore-next-line */ $this->setCurrency(($currency) ?: $this->parseEnv('AWS_GIFT_CARD_CURRENCY')); /** * @psalm-suppress InvalidScalarArgument * @phpstan-ignore-next-line */ $this->setDebug(($debug) ?: $this->parseEnv('AWS_DEBUG')); } /** * string key to search, returns entry from _ENV * if not matchin key, returns empty * * @param string $key To search in _ENV array * @return string|bool Returns either string or true/false (DEBUG flag) */ private function parseEnv(string $key) { $return = ''; switch ($key) { case 'AWS_DEBUG': $return = !empty($_ENV['AWS_DEBUG']) ? true : false; break; case 'AWS_GIFT_CARD_KEY': case 'AWS_GIFT_CARD_SECRET': case 'AWS_GIFT_CARD_PARTNER_ID': case 'AWS_GIFT_CARD_ENDPOINT': case 'AWS_GIFT_CARD_CURRENCY': $return = $_ENV[$key] ?? ''; break; default: break; } return $return; } /** * @return string */ public function getEndpoint(): string { return $this->endpoint; } /** * @param string $endpoint * @return ConfigInterface */ public function setEndpoint(string $endpoint): ConfigInterface { // TODO: check valid endpoint + set region $this->endpoint = (parse_url($endpoint, PHP_URL_HOST)) ?: ''; return $this; } /** * @return string */ public function getAccessKey(): string { return $this->access_key; } /** * @param string $key * @return ConfigInterface */ public function setAccessKey(string $key): ConfigInterface { $this->access_key = $key; return $this; } /** * @return string */ public function getSecret(): string { return $this->secret_key; } /** * @param string $secret * @return ConfigInterface */ public function setSecret(string $secret): ConfigInterface { $this->secret_key = $secret; return $this; } /** * @return string */ public function getCurrency(): string { return $this->currency; } /** * @param string $currency * @return ConfigInterface */ public function setCurrency(string $currency): ConfigInterface { // TODO: check currency valid + currenc valid for region $this->currency = $currency; return $this; } /** * @return string */ public function getPartner(): string { return $this->partner_id; } /** * @param string $partner * @return ConfigInterface */ public function setPartner(string $partner): ConfigInterface { $this->partner_id = $partner; return $this; } /** * @return bool */ public function getDebug(): bool { return $this->debug; } /** * @param bool $debug * @return ConfigInterface */ public function setDebug(bool $debug): ConfigInterface { $this->debug = $debug; return $this; } } // __END__