public void handleRequest()

in src/main/java/com/amazonaws/partners/saasfactory/metering/onboarding/OnboardNewTenant.java [133:158]


    public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) {
        if (this.tableConfig.getTableName().isEmpty() || this.tableConfig.getIndexName().isEmpty()) {
            return;
        }

        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
        EventBridgeOnboardTenantEvent event = gson.fromJson(reader, EventBridgeOnboardTenantEvent.class);

        // Create onboarding event
        OnboardingEvent onboardingEvent = OnboardingEvent.createOnboardingEvent(event);
        if (onboardingEvent == null) {
            if (event.getDetail().getTenantID() == null) {
                this.logger.error("Failed to create a new tenant because tenant ID unspecified");
                throw new TenantOnboardingException("Failed to create a new tenant because tenant ID unspecified");
            }
            if (event.getDetail().getExternalSubscriptionIdentifier() == null) {
                this.logger.error("Failed to create a new tenant because external subscription identifier unspecified");
                throw new TenantOnboardingException("Failed to create a new tenant because external subscription identifier unspecified");
            }
            return;
        }

        // Put the onboarding event into DynamoDB
        putTenant(onboardingEvent);
        this.logger.info("Created tenant with ID {}", onboardingEvent.getTenantID());
    }