feat: enhance oauth1 and oauth2 models to support env variable substitution

This commit is contained in:
Udhay-Adithya
2025-08-07 13:19:42 +05:30
parent b3e0411b4a
commit 98d4b84493

View File

@@ -168,7 +168,84 @@ AuthModel? substituteAuthModel(
}
break;
case APIAuthType.oauth1:
if (authModel.oauth1 != null) {
final oauth1 = authModel.oauth1!;
return authModel.copyWith(
oauth1: oauth1.copyWith(
consumerKey: substituteVariables(oauth1.consumerKey, envVarMap) ??
oauth1.consumerKey,
consumerSecret:
substituteVariables(oauth1.consumerSecret, envVarMap) ??
oauth1.consumerSecret,
credentialsFilePath:
substituteVariables(oauth1.credentialsFilePath, envVarMap) ??
oauth1.credentialsFilePath,
accessToken: substituteVariables(oauth1.accessToken, envVarMap) ??
oauth1.accessToken,
tokenSecret: substituteVariables(oauth1.tokenSecret, envVarMap) ??
oauth1.tokenSecret,
parameterLocation:
substituteVariables(oauth1.parameterLocation, envVarMap) ??
oauth1.parameterLocation,
version: substituteVariables(oauth1.version, envVarMap) ??
oauth1.version,
realm: substituteVariables(oauth1.realm, envVarMap) ?? oauth1.realm,
callbackUrl: substituteVariables(oauth1.callbackUrl, envVarMap) ??
oauth1.callbackUrl,
verifier: substituteVariables(oauth1.verifier, envVarMap) ??
oauth1.verifier,
nonce: substituteVariables(oauth1.nonce, envVarMap) ?? oauth1.nonce,
timestamp: substituteVariables(oauth1.timestamp, envVarMap) ??
oauth1.timestamp,
),
);
}
break;
case APIAuthType.oauth2:
if (authModel.oauth2 != null) {
final oauth2 = authModel.oauth2!;
return authModel.copyWith(
oauth2: oauth2.copyWith(
authorizationUrl:
substituteVariables(oauth2.authorizationUrl, envVarMap) ??
oauth2.authorizationUrl,
accessTokenUrl:
substituteVariables(oauth2.accessTokenUrl, envVarMap) ??
oauth2.accessTokenUrl,
clientId: substituteVariables(oauth2.clientId, envVarMap) ??
oauth2.clientId,
clientSecret: substituteVariables(oauth2.clientSecret, envVarMap) ??
oauth2.clientSecret,
credentialsFilePath:
substituteVariables(oauth2.credentialsFilePath, envVarMap) ??
oauth2.credentialsFilePath,
redirectUrl: substituteVariables(oauth2.redirectUrl, envVarMap) ??
oauth2.redirectUrl,
scope: substituteVariables(oauth2.scope, envVarMap) ?? oauth2.scope,
state: substituteVariables(oauth2.state, envVarMap) ?? oauth2.state,
codeChallengeMethod:
substituteVariables(oauth2.codeChallengeMethod, envVarMap) ??
oauth2.codeChallengeMethod,
codeVerifier: substituteVariables(oauth2.codeVerifier, envVarMap) ??
oauth2.codeVerifier,
codeChallenge:
substituteVariables(oauth2.codeChallenge, envVarMap) ??
oauth2.codeChallenge,
username: substituteVariables(oauth2.username, envVarMap) ??
oauth2.username,
password: substituteVariables(oauth2.password, envVarMap) ??
oauth2.password,
refreshToken: substituteVariables(oauth2.refreshToken, envVarMap) ??
oauth2.refreshToken,
identityToken:
substituteVariables(oauth2.identityToken, envVarMap) ??
oauth2.identityToken,
accessToken: substituteVariables(oauth2.accessToken, envVarMap) ??
oauth2.accessToken,
),
);
}
break;
case APIAuthType.none:
break;
}