import AuthRequestBuilder from "@lonelyplanet/open-planet-node/dist/authRequestBuilder";
import TYPES from "../types";
import {
  IAuthOptionsDefaults,
  IAuthRequestParams,
} from "../interfaces";
import { authDefaults } from "../constants";

export const authSetupWithDefaults = (params: IAuthRequestParams = {}) => {
  const defaults = authDefaults;
  const options = params.options || {};
  const host = params.host || defaults.host;
  return AuthRequestBuilder.build({
    host: host,
    options: {
      ...options,
      clientId: options.clientId || defaults.options.clientId,
      scope: options.scope || defaults.options.scope,
      redirectUri: options.redirectUri || `${host.replace(/http:/, "https:")}/sso`,
      targetLinkUri: options.targetLinkUri || (typeof window !== "undefined" && window.location.origin + window.location.pathname),
    }
  });
}


export default {
  authSetupWithDefaults,
};
