-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathautosam.js
111 lines (104 loc) · 2.37 KB
/
autosam.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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
var AWS = require('aws-sdk');
AWS.config.region = 'ap-southeast-2';
var AutoSam = new AWS.DynamoDB.DocumentClient();
var autosam = {};
// Replace cloudlets-redirects with your table name
var JobQueue = 'cloudlets-redirects';
autosam.list = function(jobstatus, msg){
if (jobstatus == 'ALL') {
var params = {
TableName: JobQueue
}
}
else {
var params = {
TableName : JobQueue,
FilterExpression : 'jobstatus = :jobstatus',
ExpressionAttributeValues : {':jobstatus' : jobstatus}
}
};
AutoSam.scan(params, function(err, data) {
if (err) {
msg.send("```"+err+"```");
}
else {
len = data.Items.length;
if (len == 0) {
msg.send("```"+"Unable to find any jobs"+"```");
}
else {
jobs = "There are "+len+" jobs in "+jobstatus+" status:\n"
for (var i = 0; i < len; i++){
j = i + 1;
jobs = jobs+"("+j+")"+" FROM: "+data.Items[i].fromurl+" TO: "+data.Items[i].tourl+" STATUS: "+data.Items[i].jobstatus+"\n";
}
msg.send("```"+jobs+"```");
}
}
});
}
autosam.add = function(fromurl, tourl, msg) {
var params = {
TableName: JobQueue,
Item: {
fromurl: fromurl,
tourl: tourl,
jobstatus: 'OPEN'
}
}
AutoSam.put(params, function(err, data) {
if (err) {
msg.send("```"+err+"```");
}
else {
msg.send("```"+"The job has been created"+"```");
}
});
}
autosam.remove = function(fromurl, tourl, msg) {
var params = {
TableName: JobQueue,
Key: {
fromurl: fromurl
},
Expected: {
jobstatus: {
Value: 'OPEN'
},
tourl: {
Value: tourl
}
}
}
AutoSam.delete(params, function(err, data) {
if (err) {
msg.send("```"+err+"```");
}
else {
msg.send("```"+"The job has been deleted"+"```");
}
});
}
autosam.search = function(fromurl, msg) {
var params = {
TableName: JobQueue,
Key: {
fromurl: fromurl
}
};
AutoSam.get(params, function(err, data) {
if (err) {
msg.send("```"+err+"```");
}
else {
len = Object.keys(data).length;
if (len == 0) {
msg.send("```"+"Unable to find it"+"```");
}
else {
msg.send("```"+"FROM: "+data.Item.fromurl+" TO: "+data.Item.tourl+" STATUS: "+data.Item.jobstatus+"```");
};
}
});
}
module.exports = autosam;