import { SecretsManagerClient, GetSecretValueCommand, } from '@aws-sdk/client-secrets-manager'; class OauthSecretsObject { client_id = ''; client_secret = ''; redirect_uri = ''; } // @Injectable() export class OauthSecrets { hubspot = new OauthSecretsObject(); google = new OauthSecretsObject(); mailchimp = new OauthSecretsObject(); facebook = new OauthSecretsObject(); salesforce = new OauthSecretsObject(); } export async function getOauthSecrets() { const secrets = new OauthSecrets(); const path = process.env.SM_OAUTH_PATH; const secretsManagerClient = new SecretsManagerClient({}); for (const key in secrets) { const getSecretComand = new GetSecretValueCommand({ SecretId: `${path}/${key}`, }); const res = await secretsManagerClient .send(getSecretComand) .catch(() => null); if (res) { secrets[key] = JSON.parse(res.SecretString); } else { secrets[key] = { client_id: 'id', client_secret: 'id', redirect_uri: 'id', }; } } return secrets; }