package org.sample.aws.serverless.books;

import com.amazonaws.regions.Regions;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder;
import com.amazonaws.services.dynamodbv2.document.DynamoDB;
import com.amazonaws.services.dynamodbv2.document.Table;

/**
 * @author arungupta
 */
public class DynamoDBUtil {

    private static AmazonDynamoDB dynamodbClient;
    private static Table table;

    public static final AmazonDynamoDB getClient() {
        if (null != dynamodbClient) {
            return dynamodbClient;
        }

        String region = System.getenv("DYNAMODB_REGION");
        if (null == region) {
            System.err.println("Region is null, using default \"" + Regions.US_WEST_1 + "\"");
            region = Regions.US_WEST_1.name();
        }
        System.out.println("DynamoDB region: " + region);

        dynamodbClient = AmazonDynamoDBClientBuilder.standard()
                .withRegion(region)
                .build();
        
        System.out.println("Got DynamoDB client...");

        return dynamodbClient;
    }

    public static final Table getTable() {
        if (null != table) {
            return table;
        }

        table = new DynamoDB(getClient()).getTable("Books");
        System.out.println("Got DynamoDB table...");
        return table;
    }
}