-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathactions.js
More file actions
117 lines (94 loc) · 3.71 KB
/
actions.js
File metadata and controls
117 lines (94 loc) · 3.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
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
112
113
114
115
116
117
const store = require('./store');
const messages = require('./messages');
const utils = require('./utils');
exports.accept = async (app, payload) => {
const actionUser = payload.body.actions[0].value;
const rsvpUser = payload.body.user;
if (rsvpUser.id === actionUser) {
const channel = payload.body.channel.id;
const messageId = payload.body.message.ts;
const messageBlocks = payload.body.message.blocks;
const messageBlockId = payload.body.actions[0].block_id;
await app.client.chat.update({
token: process.env.SLACK_BOT_TOKEN,
channel,
ts: messageId,
blocks: messages.messageWithRSVP(actionUser, messageId, messageBlocks, messageBlockId)
});
}
return payload.ack();
};
exports.decline = async (app, payload) => {
const actionUser = payload.body.actions[0].value;
const rsvpUser = payload.body.user;
if (rsvpUser.id === actionUser) {
const channel = payload.body.channel.id;
const messageId = payload.body.message.ts;
const messageBlocks = payload.body.message.blocks;
const messageBlockId = payload.body.actions[0].block_id;
await app.client.chat.update({
token: process.env.SLACK_BOT_TOKEN,
channel,
ts: messageId,
blocks: messages.messageDeclinedRSVP(actionUser, messageId, messageBlocks, messageBlockId)
});
}
await payload.ack();
};
exports.unsubscribe = async (app, users, payload) => {
const rsvpUser = payload.body.actions[0].value;
const actionUser = payload.body.user;
if (rsvpUser === actionUser.id) {
store.unsubscribe(rsvpUser);
const channel = payload.body.channel.id;
const messageId = payload.body.message.ts;
const messageBlocks = payload.body.message.blocks;
const messageBlockId = payload.body.actions[0].block_id;
const selectedUsers = messageBlocks.filter((block) => block.type === 'section').map((block) => block.block_id);
const newMember = utils.replaceUser(selectedUsers, users);
await app.client.chat.update({
token: process.env.SLACK_BOT_TOKEN,
channel,
ts: messageId,
blocks: messages.messageWithNewMember(actionUser, messageId, messageBlocks, messageBlockId, newMember)
});
}
await payload.ack();
};
exports.dismiss = async (app, users, payload) => {
const rsvpUser = payload.body.actions[0].value;
const actionUser = payload.body.user;
if (rsvpUser === actionUser.id) {
const channel = payload.body.channel.id;
const messageId = payload.body.message.ts;
const messageBlocks = payload.body.message.blocks;
const messageBlockId = payload.body.actions[0].block_id;
const selectedUsers = messageBlocks.filter((block) => block.type === 'section').map((block) => block.block_id);
const newMember = utils.replaceUser(selectedUsers, users);
await app.client.chat.update({
token: process.env.SLACK_BOT_TOKEN,
channel,
ts: messageId,
blocks: messages.messageWithNewMember(actionUser, messageId, messageBlocks, messageBlockId, newMember)
});
}
await payload.ack();
};
exports.cancel = async (app, payload) => {
const actionUser = payload.body.actions[0].value;
const rsvpUser = payload.body.user;
if (rsvpUser.id === actionUser) {
const channel = payload.body.channel.id;
const messageId = payload.body.message.ts;
const messageBlocks = payload.body.message.blocks;
const messageBlockId = payload.body.actions[0].block_id;
await app.client.chat.update({
token: process.env.SLACK_BOT_TOKEN,
channel,
ts: messageId,
blocks: messages.messageCancelDeclinedRSVP(actionUser, messageId, messageBlocks, messageBlockId)
});
}
await payload.ack();
};
exports.channelFromAction = (payload) => payload.body.channel.id;