-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlib.js
47 lines (41 loc) · 1.17 KB
/
lib.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
var gsjson = require('google-spreadsheet-to-json');
var S3FS = require('s3fs');
/*
* config.json example
{
"accessKeyId": <ACCESS_KEY_ID>,
"secretAccessKey": <SECRET_ACCESS_KEY>,
"spreadsheetId": <SPREADSHEET_ID>,
"s3Region": <S3_REGION>,
"s3BucketPath": <S3_BUCKET_PATH>,
"s3FileName": <S3_FILENAME>
"slackToken": <SLACK_TOKEN>,
"slackBotName": <SLACK_BOT_NAME>
}
*/
exports.update = function(credentials, success, fail) {
let s3Options = {
region: credentials.s3Region,
accessKeyId: credentials.accessKeyId,
secretAccessKey: credentials.secretAccessKey
};
let fsImpl = new S3FS(credentials.s3BucketPath, s3Options);
let writeOptions = { ACL:"public-read" }
gsjson({
spreadsheetId: credentials.spreadsheetId,
})
.then((sheet_data) => {
fsImpl.writeFile(credentials.s3FileName,
JSON.stringify(sheet_data),
writeOptions,
(err) => {
if (err) { fail(err); }
success(sheet_data);
});
})
.catch((err) => {
fail(err);
console.log(err.message);
console.log(err.stack);
});
}