let lzu = require("lzutf8");
let aws = require("aws-sdk");
let doc = new aws.DynamoDB.DocumentClient({
apiVersion: "2012-08-10",
region: "us-east-1",
credentials: {
accessKeyId: process.env["catfactsDDBKeyId"],
secretAccessKey: process.env["catfactsDDBSekret"]
}
});
async function get(userId, secret) {
return new Promise((resolve, reject) => {
if(secret !== process.env["sekret"]) {
return reject("ERR_NO_MAGIC_WORD");
}
let params = {
Key: {
userId: lzu.compress(userId)
},
TableName: "CatFactsUserSessions",
ConsistentRead: true
};
doc.get(params, (err, data) => {
if(err) {
return reject(err);
}
let obj = {};
if (data && data.Item && data.Item["cData"] && data.Item["cData"]["data"]) { obj = JSON.parse(lzu.decompress(data.Item["cData"]["data"]));
}
resolve(obj);
});
});
}
exports.endpoint = async function(request, response) {
try {
if (request.id) {
response.end(JSON.stringify(await get(request.id), request.secret);
} else if (request.compressed) {
response.end(JSON.stringify(await get(lzu.decompress(request.compressed), request.secret));
} else {
response.end("Bad params.");
}
} catch(err) {
response.end(err);
}
}