public AccountVendor()

in src/main/java/software/aws/chatops_lex_api/resource/AccountVendor.java [54:102]


	public AccountVendor() {

		logger.info("Logger configured");

		String lexBotRegion = "us-east-1";
		if (System.getenv("LEX_BOT_REGION") != null) {
			lexBotRegion = System.getenv("LEX_BOT_REGION");
		}
		logger.info("Will access lexbot in " + lexBotRegion);
		lexClient = LexRuntimeClient.builder().region(Region.of(lexBotRegion)).build();
		ddbClient = DynamoDbClient.builder().build();
		snsClient = SnsClient.builder().build();
		scClient = ServiceCatalogClient.builder().build();
		ssmClient = SsmClient.builder().build();

		String envName = System.getenv("ENVIRONMENT") == null ? "Dev" : System.getenv("ENVIRONMENT");
		String projectName = System.getenv("PROJECT_NAME") == null ? "chatops-lex" : System.getenv("PROJECT_NAME");
		if( projectName == null ) throw new IllegalArgumentException("Project name cannot be null");
		logger.info("Using Env: " + envName);
		if (!CHATOPS_APPROVAL_URL_PARAM.endsWith(envName)) {
			CHATOPS_APPROVAL_URL_PARAM = CHATOPS_APPROVAL_URL_PARAM.concat("_" + envName);
			CHATOPS_APPROVAL_URL_PARAM = projectName.concat(CHATOPS_APPROVAL_URL_PARAM);
		}
		logger.info("CHATOPS_APPROVAL_URL_PARAM: " + CHATOPS_APPROVAL_URL_PARAM);

		try {

			AccountVendor.CALLBACK_URL = AccountVendor.ssmClient.getParameter(GetParameterRequest.builder()
																				.name(CHATOPS_APPROVAL_URL_PARAM)
																				.build()).parameter().value();
			AccountVendor.DYNAMO_TABLE = System.getenv("DYNAMO_TABLE") == null ? DYNAMO_TABLE : System.getenv("DYNAMO_TABLE");
			AccountVendor.CONFIRM_TOPIC_ARN = System.getenv("CONFIRM_TOPIC_ARN");
			AccountVendor.BOT_NAME = System.getenv("BOT_NAME") != null ?  System.getenv("BOT_NAME") : AccountVendor.BOT_NAME;
			AccountVendor.SLACK_TOKEN = System.getenv("SLACK_TOKEN") == null ? "Slack Token not Set" : System.getenv("SLACK_TOKEN");

			logger.info("Using callback URL: " + AccountVendor.CALLBACK_URL);
			logger.info("Using DYNAMO_TABLE: " + AccountVendor.DYNAMO_TABLE);
			logger.info("Using bot name: " + AccountVendor.BOT_NAME);
			logger.info("Using CONFIRM_TOPIC_ARN: " + AccountVendor.CONFIRM_TOPIC_ARN);

		} catch (SsmException se) {
			logger.info("SSM Exception: " + se.getMessage());
			AccountVendor.CALLBACK_URL = "http://test-url";
		} catch (Exception e) {
			logger.info("Exception msg: " + e.getMessage());
			logger.info(
					"Could not retrieve callbackurl and confirm topic from Parameter Store. In case you are compiling or testing locally please ignore");
		}
	}