<?php

namespace Autogedal\TbiBank\Plugin;

use Autogedal\TbiBank\Model\Environment;
use Magento\Framework\HTTP\Client\Curl;

class ApiEndpoint
{
    private Environment $environment;

    public function __construct(Environment $environment)
    {
        $this->environment = $environment;
    }

    public function beforePost(Curl $subject, $uri, $params): array
    {
        return [$this->resolve((string) $uri), $params];
    }

    public function beforeGet(Curl $subject, $uri): array
    {
        return [$this->resolve((string) $uri)];
    }

    private function resolve(string $uri): string
    {
        // Do not redirect CDN assets, public version metadata, or unrelated HTTP calls.
        if (strpos($uri, Environment::VENDOR_ORIGIN . '/api/') !== 0) {
            return $uri;
        }
        $this->environment->assertUatCredentials();
        return $this->environment->replaceVendorOrigin($uri);
    }
}
