This repository was archived by the owner on Jan 8, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathapp.js
70 lines (58 loc) · 2.1 KB
/
app.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
var Session = require('flowdock').Session;
var util = require('util');
var http = require('http');
var url = require('url');
var sprintf = require('sprintf-js').sprintf;
var html = require('./html.js');
var flows = [];
http.createServer(function(request, response){
var queryData = url.parse(request.url, true).query;
if (queryData.key && queryData.searchText) {
var session = new Session(queryData.key);
response.writeHead(200, { 'Content-Type': 'text/html' });
response.write(html.start());
searchFlows(session, response, queryData.key, queryData.searchText);
}
else {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('I need key and searchText parameters to work properly.\n');
}
}).listen(8666);
function searchFlows(session, responseObject, key, searchText){
session.get(
'/flows/',
{ users: 0 },
function (err, result) {
for (var i = 0; i < result.length; i++) {
var flowId = result[i].id;
flows.push(flowId);
searchFlow(session, responseObject, flowId, result[i].parameterized_name, searchText);
}
});
}
function searchFlow(session, responseObject, flowId, flowName, searchText) {
session.get(
'/flows/xero/' + flowName + '/messages/',
{ search: searchText },
function (err, result) {
if (result.length > 0){
for (var j = 0; j < result.length; j++) {
if (result[j].thread && result[j].thread.id && result[j].event === "message") {
responseObject.write(sprintf(html.row(), flowName, result[j].created_at, result[j].thread.id, result[j].content));
}
}
}
var deleteMe = flows.indexOf(flowId);
if (deleteMe > -1) {
flows.splice(deleteMe, 1);
}
checkFinish(responseObject);
});
}
function checkFinish(response){
if (flows.length > 0){
return;
}
response.write(html.end());
response.end();
}