56 lines
1005 B
JavaScript
56 lines
1005 B
JavaScript
const AWS = require(`aws-sdk`);
|
|
const shortid = require(`shortid`);
|
|
|
|
const dynamodb = new AWS.DynamoDB.DocumentClient({
|
|
region: process.env.AWS_REGION,
|
|
});
|
|
|
|
const defaultParams = {
|
|
TableName: process.env.db,
|
|
};
|
|
|
|
const put = async (kind, item) => {
|
|
const params = {
|
|
...defaultParams,
|
|
Item: {
|
|
...item,
|
|
sk: kind,
|
|
sk2: shortid.generate(),
|
|
createdAt: Date.now(),
|
|
updatedAt: Date.now(),
|
|
},
|
|
};
|
|
|
|
await dynamodb.put(params).promise();
|
|
};
|
|
|
|
const getByKey = async (key) => {
|
|
const params = {
|
|
...defaultParams,
|
|
KeyConditionExpression: `hk = :hk`,
|
|
ExpressionAttributeValues: { ":hk": key },
|
|
};
|
|
|
|
return await dynamodb.query(params).promise();
|
|
};
|
|
|
|
const getById = async (type, id) => {
|
|
const params = {
|
|
...defaultParams,
|
|
IndexName: process.env.dbIndex1,
|
|
KeyConditionExpression: `sk2 = :sk2 and sk = :sk`,
|
|
ExpressionAttributeValues: {
|
|
":sk2": id,
|
|
":sk": type,
|
|
},
|
|
};
|
|
|
|
return await dynamodb.query(params).promise();
|
|
};
|
|
|
|
module.exports = {
|
|
put,
|
|
getByKey,
|
|
getById,
|
|
};
|