package com.airlock.iam.common.infrastructure.factory.uriinfo;

import jakarta.ws.rs.core.UriBuilder;
import jakarta.ws.rs.core.UriInfo;
import java.net.URI;
import org.apache.commons.lang3.Strings;

final class ExternalUriInfoFromConfig extends ExternalUriInfoBase {
   private final String configuredBaseUri;

   ExternalUriInfoFromConfig(String baseUriDerivedFromConfig, UriInfo uriInfo) {
      super(uriInfo);
      this.configuredBaseUri = Strings.CS.appendIfMissing(baseUriDerivedFromConfig, "/", new CharSequence[0]);
   }

   @Override
   public URI getBaseUri() {
      return UriBuilder.fromUri(this.configuredBaseUri).build(new Object[0]);
   }

   @Override
   public URI getRequestUri() {
      return this.buildRequestUri(URI.create(this.configuredBaseUri), this.getUriInfo().getPath(false));
   }
}
