Example usage for com.amazonaws.services.dynamodbv2.document DynamoDB DynamoDB

List of usage examples for com.amazonaws.services.dynamodbv2.document DynamoDB DynamoDB

Introduction

In this page you can find the example usage for com.amazonaws.services.dynamodbv2.document DynamoDB DynamoDB.

Prototype

public DynamoDB(Regions regionEnum) 

Source Link

Document

Create a DynamoDB object that talks to the specified AWS region.

Usage

From source file:chatbot.ServiceAlertHandler.java

License:Open Source License

@Override
public String handleRequest(ServiceData input, Context context) {
    String message_response = "_Hello";
    try {// w  ww . j av a  2 s . co m
        context.getLogger().log("Input: " + input.getTemperature());
        int Min = 3000;
        int Max = 8000;
        int ID = 0;
        while (true) {
            ID = Min + (int) (Math.random() * ((Max - Min) + 1));
            if (objIDList.containsKey(new Integer(ID))) {
                continue;
            } else
                break;
        }
        AmazonDynamoDBClient objClient = new AmazonDynamoDBClient(new EnvironmentVariableCredentialsProvider());
        DynamoDB dynamoDB = new DynamoDB(objClient);
        //Get all data set status inactive
        DynamoDBMapper mapper = new DynamoDBMapper(objClient);
        FindCasesActive(mapper, input.getTeam_id());
        Item objNewCase = new Item().withPrimaryKey("CASE_ID", ID).withString("USER", "unassigned")
                .withString("DESCRIPTION", "Blah").withString("STAGE", "0")
                .withString("TEAM_ID", input.getTeam_id()).withString("CASE_STATE", "ACTIVE");
        Table tableCases = dynamoDB.getTable("CASES");
        tableCases.putItem(objNewCase);

        message_response = "Service Alert : Priority - High";
        String sURL = "https://slack.com/api/chat.postMessage";
        HttpClient httpClient = HttpClients.createDefault();
        String sTeamId = input.getTeam_id();
        Entity objEntity = EntityHelper.getEntityObject(sTeamId);
        String sAuthToken = objEntity.getAccess_token();
        List<NameValuePair> urlParameters = new ArrayList<NameValuePair>();
        urlParameters.add(new BasicNameValuePair("token", sAuthToken));
        urlParameters.add(new BasicNameValuePair("channel", objEntity.getChannel_1()));
        urlParameters.add(new BasicNameValuePair("text", message_response));
        String sAttachment1 = "[\r\n        {\r\n            \"fallback\": \"Required plain-text summary of the attachment.\",\r\n             \"color\": \"#F35A00\",\r\n            \r\n            \"author_name\": \"Excavator System\",\r\n            \"author_link\": \"http://flickr.com/bobby/\",\r\n            \"author_icon\": \"http://flickr.com/icons/bobby.jpg\",\r\n            \"title\": \"Hydraulic Oil Temperature Alert\",\r\n            \"title_link\": \"https://api.slack.com/\",\r\n            \"text\": \"System detected abnormal rise in hydarulic oil temperature.\",\r\n            \"fields\": [                \r\n                {\r\n                    \"title\": \"Maximum\",\r\n                    \"value\": \"28\\u00B0 C\",\r\n                    \"short\": true\r\n                },\r\n                {\r\n                    \"title\": \"Recorded \",\r\n                    \"value\": \"";
        sAttachment1 += input.getTemperature();
        String sAttachment2 = "\\u00B0 C\",\r\n                    \"short\": true\r\n                }\r\n            ],\r\n            \"image_url\": \"http://servicebot.valueinnovation.co.in/slackhack/tempTrend1.jpg\",\r\n            \"thumb_url\": \"http://noamusic.fr/wp-content/rising-sea-levels-graph-7411.gif\",\r\n            \"footer\": \"MODEL 7830 L | SERIAL Number 8923901-23\",\r\n            \"footer_icon\": \"http://www.freeiconspng.com/uploads/alert-storm-warning-weather-icon--icon-search-engine-0.png\",\r\n            \"ts\":";
        long unixTime = System.currentTimeMillis() / 1000L;
        sAttachment2 += unixTime;
        String sAttachment3 = "\r\n        }\r\n    ]";
        urlParameters.add(new BasicNameValuePair("attachments", sAttachment1 + sAttachment2 + sAttachment3));
        HttpPost httpPost = new HttpPost(sURL);
        httpPost.setEntity(new UrlEncodedFormEntity(urlParameters));
        HttpResponse httpResponse = httpClient.execute(httpPost);
        System.out.println("POST Response Status:: " + httpResponse.getStatusLine().getStatusCode());
        BufferedReader reader = new BufferedReader(
                new InputStreamReader(httpResponse.getEntity().getContent()));
        String inputLine;
        StringBuffer response = new StringBuffer();
        while ((inputLine = reader.readLine()) != null) {
            response.append(inputLine);
        }
        reader.close();
        List<NameValuePair> urlParameters1 = new ArrayList<NameValuePair>();
        urlParameters1.add(new BasicNameValuePair("token", sAuthToken));
        urlParameters1.add(new BasicNameValuePair("channel", objEntity.getChannel_1()));
        try {
            Thread.sleep(4000);
        } catch (Exception e) {
        }
        urlParameters1.add(new BasicNameValuePair("text",
                "I recommend, we order a new coolant pump. Do you wish to see vendor parts?"));
        httpPost.setEntity(new UrlEncodedFormEntity(urlParameters1));
        httpResponse = httpClient.execute(httpPost);
        System.out.println("POST Response Status:: " + httpResponse.getStatusLine().getStatusCode());
        // print result
        System.out.println(response.toString());
    } catch (Exception e) {
        e.printStackTrace();
    }
    // TODO: implement your handler
    return "Hello " + input.getTemperature();
}

From source file:com.achow101.bittipaddr.server.addressServiceImpl.java

License:Open Source License

@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    // Get the id
    String requestURI = request.getRequestURI();
    String id = requestURI.substring(requestURI.lastIndexOf("/") + 1);

    // Setup the aws dynamo db client
    AmazonDynamoDBClient client = new AmazonDynamoDBClient();
    DynamoDB dynamoDB = new DynamoDB(client);

    // Setup blockcypher API
    BlockCypherContext blockCypherContext = new BlockCypherContext("v1", "btc", "main",
            "4d3109a5c07f426da9ccc2943da39244");

    // Lookup ID and get current address, increment index
    String address = "";
    Table table = dynamoDB.getTable("Bittipaddrs");
    int currAddrInx = 0;
    try {/*from w  w  w.j  a v a 2s. c  o  m*/
        Item item = table.getItem("ID", id);
        currAddrInx = item.getInt("AddrIndex");
        int origIndx = currAddrInx;
        List<String> addresses = item.getList("Addresses");
        if (currAddrInx < addresses.size()) {
            address = addresses.get(currAddrInx);

            while (blockCypherContext.getAddressService().getAddress(address).getnTx() > 0
                    && currAddrInx < addresses.size()) {
                // Increment index and get next address
                currAddrInx++;
                address = addresses.get(currAddrInx);

                // Wait one third of a second to prevent rate limiting
                Thread.sleep(334);
            }
        } else {
            address = addresses.get(addresses.size() - 1);
        }

        // Update index if DB if it has changed
        if (currAddrInx != origIndx) {
            UpdateItemSpec updateItemSpec = new UpdateItemSpec().withPrimaryKey("ID", id)
                    .withUpdateExpression("set AddrIndex=:i")
                    .withValueMap(new ValueMap().withNumber(":i", currAddrInx));
            table.updateItem(updateItemSpec);
        }
    }
    // Deal with rate limiting from BlockCypher
    catch (BlockCypherException e) {
        UpdateItemSpec updateItemSpec = new UpdateItemSpec().withPrimaryKey("ID", id)
                .withUpdateExpression("set AddrIndex=:i")
                .withValueMap(new ValueMap().withNumber(":i", currAddrInx));
        table.updateItem(updateItemSpec);
    } catch (Exception e) {
        System.out.println("Error in getting item.");
    }

    // Send them a redirect to the bitcoin uri if redirect is set
    if (request.getParameter("redirect") != null) {
        response.sendRedirect("bitcoin:" + address);
    } else {
        // Set response content type
        response.setContentType("text/html");

        // Actual logic goes here.
        PrintWriter out = response.getWriter();
        out.println("<a href=bitcoin:" + address + ">" + address + "</a>");

    }
}

From source file:com.achow101.bittipaddr.server.bittipaddrServiceImpl.java

License:Open Source License

public String addAddresses(AddrReq req) {

    // Setup the aws dynamo db client
    AmazonDynamoDBClient client = new AmazonDynamoDBClient();
    DynamoDB dynamoDB = new DynamoDB(client);
    Table table = dynamoDB.getTable("Bittipaddrs");

    // Check that the request is for editing an existing one
    if (!req.getId().equals("NEW")) {
        try {//  w  ww  .j  a  v a 2 s  . c om
            Item item = table.getItem("ID", req.getId());

            // Check the password
            if (getHash(req.getPassword()).equals(item.getString("passhash"))) {
                // If the req has been edited, update DB
                if (req.isEdited()) {
                    // Recalculate addresses if xpub is set
                    if (!req.getXpub().equals("NONE")) {
                        try {
                            // Check Xpub
                            DeterministicKey xpub = DeterministicKey.deserializeB58(req.getXpub(), params);
                            DeterministicKey external = HDKeyDerivation.deriveChildKey(xpub, 0);

                            // Derive 1000 addresses and add to req
                            String[] addrs = new String[1000];
                            for (int i = 0; i < 1000; i++) {
                                addrs[i] = HDKeyDerivation.deriveChildKey(external, i).toAddress(params)
                                        .toBase58();
                            }
                            req.setAddresses(addrs);
                        } catch (Exception e) {
                            return "<p style=\"color:red;\">Invalid xpub" + req.getXpub() + "</p>";
                        }
                    }
                    if (req.getAddresses()[0].isEmpty())
                        return "<p style=\"color:red;\">Must have at least one address</p>";

                    UpdateItemSpec updateItemSpec = new UpdateItemSpec().withPrimaryKey("ID", req.getId())
                            .withUpdateExpression("set AddrIndex=:i, Addresses=:a, bip32xpub=:x")
                            .withValueMap(new ValueMap().withNumber(":i", 0)
                                    .withList(":a", Arrays.asList(req.getAddresses()))
                                    .withString(":x", req.getXpub()));
                    table.updateItem(updateItemSpec);
                    return req.getHtml();
                }

                String[] addresses = new String[item.getList("Addresses").size()];
                item.getList("Addresses").toArray(addresses);
                req.setAddresses(addresses);
                req.setXpub(item.getString("bip32xpub"));

                if (req.isEditable())
                    return req.getPlain();
                else
                    return req.getHtml();
            } else
                return "<p style=\"color:red;\">Incorrect password</p>";

        } catch (Exception e) {
            return "<p style=\"color:red;\">Could not find unit</p>";
        }

    }
    // Check validity of addresses
    else if (req.getXpub().equals("NONE") && req.getAddresses().length != 0) {
        for (int i = 0; i < req.getAddresses().length; i++) {
            try {
                Address addr = Address.fromBase58(params, req.getAddresses()[i]);
            } catch (AddressFormatException e) {
                return "<p style=\"color:red;\">Invalid address" + req.getAddresses()[i] + "</p>";
            }
        }
    }
    // Check validity of xpub
    else if (!req.getXpub().equals("NONE") && req.getAddresses().length == 0) {
        try {
            // Check Xpub
            DeterministicKey xpub = DeterministicKey.deserializeB58(req.getXpub(), params);
            DeterministicKey external = HDKeyDerivation.deriveChildKey(xpub, 0);

            // Derive 1000 addresses and add to req
            String[] addrs = new String[1000];
            for (int i = 0; i < 1000; i++) {
                addrs[i] = HDKeyDerivation.deriveChildKey(external, i).toAddress(params).toBase58();
            }
            req.setAddresses(addrs);
        } catch (Exception e) {
            return "<p style=\"color:red;\">Invalid xpub" + req.getXpub() + "</p>";
        }
    }

    // Set the request ID and unique password
    req.setId(new BigInteger(40, random).toString(32));
    req.setPassword(new BigInteger(256, random).toString(32));

    // Add request to DynamoDB
    Item item = null;
    try {
        item = new Item().withPrimaryKey("ID", req.getId()).withInt("AddrIndex", 0)
                .withList("Addresses", Arrays.asList(req.getAddresses())).withString("bip32xpub", req.getXpub())
                .withString("passhash", getHash(req.getPassword()));
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
    table.putItem(item);

    return req.getHtml();
}

From source file:com.clicktravel.infrastructure.persistence.aws.dynamodb.DynamoDocumentStoreTemplate.java

License:Apache License

@Override
public void initialize(final AmazonDynamoDB amazonDynamoDbClient) {
    super.initialize(amazonDynamoDbClient);
    dynamoDBClient = new DynamoDB(amazonDynamoDbClient);
}

From source file:com.eho.dynamodb.DynamoDBConnection.java

public static Item get_item_by_ID(String id) {
    DynamoDB dynamoDB = new DynamoDB(dynamoDBClient);
    Table table = dynamoDB.getTable(PATIENT_TABLE);
    Item retreived_item = table.getItem(PRIMARY_KEY, id);
    return retreived_item;
}

From source file:com.eho.dynamodb.DynamoDBConnection.java

public static PutItemOutcome upload_resource_old(String resource) throws Exception {
    String id;/*from w  w w  .  j  a va 2 s .  c om*/
    JSONObject json_resource = new JSONObject(resource);
    //does the resource have a primary key?
    if (json_resource.has(PRIMARY_KEY))//if it does not have a primary key, create one using uuid
        id = json_resource.getString(PRIMARY_KEY);
    else
        id = UUID.randomUUID().toString();

    DynamoDB dynamoDB = new DynamoDB(dynamoDBClient);
    Table table = dynamoDB.getTable(PATIENT_TABLE);

    //lets retreive based on the key. if key invalid (not assigned yet) nullis returned.
    Item retreived_item = table.getItem(PRIMARY_KEY, id);
    if (retreived_item == null)//if null instantiate it
    {
        retreived_item = new Item();
        retreived_item.withPrimaryKey(PRIMARY_KEY, id);
    }

    Integer new_version = retreived_item.getInt("version") + 1;
    retreived_item.withInt("version", new_version);

    Item item_to_upload = Item.fromJSON(retreived_item.toJSONPretty()).withJSON("Document", resource);
    PutItemSpec putItemSpec = new PutItemSpec().withItem(item_to_upload).withReturnValues(ReturnValue.NONE);
    return table.putItem(putItemSpec);
}

From source file:com.eho.dynamodb.DynamoDBConnection.java

public static String upload_resource(BaseResource resource,
        String primary_key /* if no primary key in case of post, send null*/ ) throws Exception {
    String id = add_primary_as_extension(resource, primary_key);
    String resource_string = DynamoDBConnection.fCtx.newJsonParser().setPrettyPrint(true)
            .encodeResourceToString(resource);
    ;/*w ww. j a v a2 s.c o m*/
    DynamoDB dynamoDB = new DynamoDB(dynamoDBClient);
    Table table = dynamoDB.getTable(PATIENT_TABLE);

    //lets retreive based on the key. if key invalid (not assigned yet) nullis returned.
    Item retreived_item = table.getItem(PRIMARY_KEY, id);
    if (retreived_item == null)//if null instantiate it
    {
        retreived_item = new Item();
        retreived_item.withPrimaryKey(PRIMARY_KEY, id);
        retreived_item.withInt("version", -1);
    }

    Integer new_version = retreived_item.getInt("version") + 1;
    retreived_item.withInt("version", new_version);

    Item item_to_upload = retreived_item//Item.fromJSON(retreived_item.toJSONPretty())
            .withString("text" + new_version.toString(), resource_string)
            .withMap("json-document", new ObjectMapper().readValue(resource_string, LinkedHashMap.class));
    PutItemSpec putItemSpec = new PutItemSpec().withItem(item_to_upload);
    table.putItem(putItemSpec);
    return id;
}

From source file:com.eho.dynamodb.DynamoDBConnection.java

public static ItemCollection<QueryOutcome> query_dynamodb(QuerySpec spec) {
    DynamoDB dynamoDB = new DynamoDB(dynamoDBClient);
    Table table = dynamoDB.getTable(PATIENT_TABLE);
    ItemCollection<QueryOutcome> items = table.query(spec);
    return items;
}

From source file:com.eho.dynamodb.DynamoDBConnection.java

public static UpdateItemOutcome update_resource(String resource) throws Exception {
    String id;/*from  w ww  . ja  v a  2 s .  co  m*/
    JSONObject json_resource = new JSONObject(resource);
    //does the resource have a primary key?
    if (json_resource.has(PRIMARY_KEY))//if it does not have a primary key, create one using uuid
        id = json_resource.getString(PRIMARY_KEY);
    else
        id = UUID.randomUUID().toString();

    DynamoDB dynamoDB = new DynamoDB(dynamoDBClient);
    Table table = dynamoDB.getTable(PATIENT_TABLE);

    //lets retreive based on the key. if key invalid (not assigned yet) nullis returned.
    Item retreived_item = table.getItem(PRIMARY_KEY, id);
    if (retreived_item == null)//if null instantiate it
    {
        retreived_item = new Item();
        retreived_item.withPrimaryKey(PRIMARY_KEY, id);
    }

    Integer new_version = retreived_item.getInt("version") + 1;
    retreived_item.withInt("version", new_version);
    String new_version_str = new_version.toString();

    UpdateItemSpec updateItemSpec = new UpdateItemSpec().withPrimaryKey(PRIMARY_KEY, id)
            .withUpdateExpression("SET " + new_version_str + "= :newval")
            .withValueMap(new ValueMap().withString(":newval", resource)).withReturnValues(ReturnValue.ALL_NEW);

    return table.updateItem(updateItemSpec);
}

From source file:com.envirover.spl.stream.DynamoDBOutputStream.java

License:Open Source License

@Override
public void open() throws IOException {
    AmazonDynamoDB dynamoDBClient = AmazonDynamoDBClientBuilder.defaultClient();

    if (TableUtils.createTableIfNotExists(dynamoDBClient,
            new CreateTableRequest().withTableName(tableName)
                    .withKeySchema(new KeySchemaElement(ATTR_DEVICE_ID, KeyType.HASH),
                            new KeySchemaElement(ATTR_TIME, KeyType.RANGE))
                    .withAttributeDefinitions(new AttributeDefinition(ATTR_DEVICE_ID, ScalarAttributeType.S),
                            new AttributeDefinition(ATTR_TIME, ScalarAttributeType.N))
                    .withProvisionedThroughput(new ProvisionedThroughput().withReadCapacityUnits(READ_CAPACITY)
                            .withWriteCapacityUnits(WRITE_CAPACITY)))) {

        try {/*from   w  w  w.j a v  a2 s  .co m*/
            TableUtils.waitUntilActive(dynamoDBClient, tableName);
        } catch (TableNeverTransitionedToStateException e) {
            throw new IOException(e);
        } catch (InterruptedException e) {
            throw new IOException(e);
        }

        logger.info(MessageFormat.format("DynamoDB table ''{0}'' created.", tableName));
    }

    dynamoDB = new DynamoDB(dynamoDBClient);
}