forked from emil10001/AWS-NodeJS-AngularJS-Demos
-
Notifications
You must be signed in to change notification settings - Fork 0
/
user_activity.js
94 lines (80 loc) · 3.02 KB
/
user_activity.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
/**
* Created by ejf3 on 1/12/14.
*/
var c = require('../constants');
var UserActivity = function (ses, dynamoMedia, dynamoEmails) {
this.ses = ses;
this.dynamoMedia = dynamoMedia;
this.dynamoEmails = dynamoEmails;
var self = this;
var params = {IdentityType: "EmailAddress"};
this.ses.listIdentities(params, function (err, data) {
if (err) {
console.log(err); // an error occurred
} else {
console.log(data); // successful response
}
});
this.sendEmail = function (user, socket) {
self.dynamoEmails.allowedToSend(user.email, function (allowed, err) {
if (!!err) {
console.log(err); // an error occurred
socket.emit(c.SES_SEND_EMAIL, c.ERROR);
return;
}
if (!allowed) {
console.log("not allowed to send"); // an error occurred
socket.emit(c.SES_SEND_EMAIL, "not allowed to send");
return;
}
self.dynamoEmails.iterateEmail(user.email, function (data, err) {
console.log("iterate email", data, err);
});
self.dynamoMedia.getUserMediaForEmail(user.id, function (userMedia, err) {
if (!!err) {
console.log(err); // an error occurred
socket.emit(c.SES_SEND_EMAIL, c.ERROR);
return;
}
var params = {
Source: "ejohn@feigdev.com",
Destination: {
ToAddresses: [user.email]
},
Message: {
Subject: {
Data: user.name + "'s media"
},
Body: {
Text: {
Data: "please enable HTML to view this message"
},
Html: {
Data: getHtmlBodyFor(user, userMedia)
}
}
}
};
self.ses.sendEmail(params, function (err, data) {
if (err) {
console.log(err); // an error occurred
socket.emit(c.SES_SEND_EMAIL, c.ERROR);
} else {
console.log(data); // successful response
socket.emit(c.SES_SEND_EMAIL, c.SUCCESS);
}
});
});
});
};
};
function getHtmlBodyFor(user, userMedia) {
var title = "<h1>" + user.name + "'s media</h1>"
var imgs = "";
var unsubscribe = "<br><small><a href=\"http://awsnodeangulardemos-env.elasticbeanstalk.com/#/ses\">Unsubscribe</a></small>"
for (var i = 0; i < userMedia.length; i++) {
imgs += "<br><img src=" + userMedia[i].url + " width=\"300\">"
}
return title + imgs + unsubscribe;
}
module.exports = UserActivity;