-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSlackApp.js
More file actions
94 lines (86 loc) · 3.33 KB
/
SlackApp.js
File metadata and controls
94 lines (86 loc) · 3.33 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
const express = require('express');
const Functions = require('./Functions');
const app = express();
const path = require('path');
app.use(express.static(path.join(__dirname, 'public')));
var Slack = require('slack-node');
let port = process.env.PORT;
if (port == null || port == "") {
port = 5000;
}
app.listen(port);
//---routing---//
//send message
app.post('/send-message', async(req, res) => {
apiToken =req.query.token;
if(!apiToken)
return res.send({'status':'failed', 'message':'token is requierd'})
let channel=req.query.channel;
if(!channel)
return res.send({'status':'failed','message':'channel is required'})
let msg=req.query.msg;
if(!msg)
return res.send({'status':'failed','message':'messege is required'})
slack = new Slack(apiToken);
Functions.sendMessage(channel,msg).then(function(result){
if(!result.ok)
return res.send({'status':result});
res.send({"u just posted a message":result.message.text});
}).catch(function(err){
res.send({'error occured':err})
});
});
//get all messages from a specific channel
app.get('/get-all-messages', async(req, res) => {
apiToken =req.query.token;
if(!apiToken)
return res.send({'status':'failed', 'message':'token is requierd'});
let channel=req.query.channel;
if(!channel)
return res.send({'status':'failed','message':'channel is required'})
slack = new Slack(apiToken);
Functions.getAllMessages(channel).then(function(result){
if(!result.ok)
return res.send({'status':'failed','message':result.error});
res.send({"messages":Functions.mapMessages(result.messages)});
}).catch(function(err){
res.send({'error occured':err})
});
});
//search for a message in all channels
app.get('/search-message', async(req, res) => {
apiToken =req.query.token;
if(!apiToken)
return res.send({'status':'failed','message':'token is required'});
let msg=req.query.msg;
if(!msg)
return res.send({'status':'failed','message':'messege is required'});
slack = new Slack(apiToken);
Functions.searchMessage(msg).then(function(result){
if(!result.ok)
return res.send({'status':result});
if(result.messages.matches.length<1)
return res.send('no matches messages found:(');
res.send({'messages found':Functions.mapMatches(result.messages)});
}).catch(function(err){
res.send({'error occured':err})
});
});
//get all channels(name and id)
app.get('/get-all-channels', async(req, res) => {
apiToken =req.query.token;
if(!apiToken)
return res.send({'status':'failed','message':'token is required'});
slack = new Slack(apiToken);
Functions.getAllChannels().then(function(result){
if(!result.ok)
return res.send({'status':result});
res.send({'all channels:':Functions.mapChannels(result.channels)});
}).catch(function(err){
res.send({'error occured':err})
});
});
// for any other route
app.get('*', function(req, res){
res.status(404).send('page was not found:(');
});