-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgs.js
More file actions
84 lines (73 loc) · 2.71 KB
/
Copy pathgs.js
File metadata and controls
84 lines (73 loc) · 2.71 KB
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
// This script reads the user's response, and based on the platform they have
// issues with, it will choose the appropriate club member to notify.
// It is activated immediately whenever someone makes a submission.
// function that activates upon form submission
function notifyOnSubmission() {
var form = FormApp.openById("Redacted");
// get response that was just submitted.
var mostRecentResponse = form.getResponses().pop();
// access the boxes the user filled out - They're indexed in the order they appear
var itemResponses = mostRecentResponse.getItemResponses(); // -> ItemResponse[]
var responseObject = {
name : itemResponses[0].getResponse(),
email : itemResponses[1].getResponse(),
platform : itemResponses[2].getResponse(),
issue : itemResponses[3].getResponse(),
};
Logger.log(responseObject);
var memberAssigned = getMemberToSendTo(responseObject);
var emailBody =
`
New Support Ticket From ${responseObject.name} \n
Platform: ${responseObject.platform}\n
Issue: ${responseObject.issue}
`;
GmailApp.sendEmail(memberAssigned.email, `New Support Ticket From ${responseObject.name}`, emailBody);
Logger.log("Sent to " + memberAssigned.email);
var admin_email = "";
GmailApp.sendEmail(admin_email, `New Support Ticket From ${responseObject.name}`, emailBody);
Logger.log("Sent to Admin");
}
// This function determines who the task will be assigned to
function getMemberToSendTo(responseObject) {
var rawresponse = responseObject["platform"].concat(responseObject["issue"]);
// current values are just for proof-of-concept - I'll probably store them in a json later
var members =
{
"Jack" :
{
name: "Jack Donofrio",
email : "Redacted@gmail.com",
preferred :
[
"portals",
"classroom"
]
},
"Samir" :
{
name: "Samir Rajani",
email : "Redacted@gmail.com", // not real
preferred :
[
"quizlet",
"kahoot"
]
}
}
// match issue with member
for (var member in members) {
var pref = members[member].preferred;
for (var i in pref) {
if (contains(rawresponse, pref[i])) {
return members[member];
}
}
}
// otherwise just send to me
return members.Jack;
}
// returns a contains b regardless of case
function contains(str, substr) {
return str.toUpperCase().indexOf(substr.toUpperCase()) > -1;
}