Skip to content

Instantly share code, notes, and snippets.

@wjramos
Last active August 30, 2017 05:33
Show Gist options
  • Save wjramos/f6dcad79230d137bbed8b87034580b40 to your computer and use it in GitHub Desktop.
Save wjramos/f6dcad79230d137bbed8b87034580b40 to your computer and use it in GitHub Desktop.
import AWS from 'aws-sdk';
const { AWS_REGION = 'us-east-1', NODE_ENV = 'development', AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY } = process.env;
const config = {
region: AWS_REGION,
accessKeyId: AWS_ACCESS_KEY_ID,
secretAccessKey: AWS_SECRET_ACCESS_KEY,
};
AWS.config.update(config);
const dynamo = new AWS.DynamoDB.DocumentClient({ apiVersion: '2012-08-10' });
export default class DynamoDB {
// https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html#get-property
static get(params) {
return new Promise((resolve, reject) =>
dynamo.get(
params,
(err, { Item }) => err ? reject(err) : resolve(Item)
)
);
}
// https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html#put-property
static put(params) {
return new Promise((resolve, reject) =>
dynamo.put(
params,
err => err ? reject(err) : resolve()
)
);
}
// https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html#query-property
static query(params) {
return new Promise((resolve, reject) =>
dynamo.query(
params,
(err, { Items }) => err ? reject(err) : resolve(Items)
)
);
}
// https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html#get-property
static delete(params) {
return new Promise((resolve, reject) =>
dynamo.delete(
params,
err => err ? reject(err) : resolve()
)
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment