-
Notifications
You must be signed in to change notification settings - Fork 0
/
checkStatus.js
63 lines (47 loc) · 1.75 KB
/
checkStatus.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
const { Project }= require('./models/project')
const { User } = require('./models/user')
const { Url } = require('./models/url')
const axios= require('axios')
const cron = require('node-cron');
const sendMailToUser= require('./utils/sendMailToUser')
const testServer= async () => {
const projects = await Project.find().populate().lean()
for(let project of projects){
const {urls, user_id}= project
console.log('urls: ', urls);
for(let link of urls){
console.log('current url: ', link)
const urlData= await Url.findById(link).lean()
console.log('cirrent url data: ', urlData)
const {url, req_method, req_headers}= urlData
const config= {
req_method,
url,
};
if(req_method=='PUT' || req_method=='POST'){
const {req_body}= urlData
config.payload= req_body
}
const response= await axios(config)
console.log('response: ', response)
if(response.status==200){
console.log('project url: ', project_url)
console.log('status: Active')
}
else{
const {first_name, email}= await User.findById(user_id).lean()
let subject= `Alert from Server Manager`
let html= `Hi ${first_name},\n Your app hosted at ${project_url} was down at ${Date.now()} `
await sendMailToUser(email, subject, html)
}
}
}
}
const checkStatus= async () => {
console.log('hellooooooo ')
}
cron.schedule('* * * * *', () => {
// console.log('running every minute .... always and forever.... !');
testServer()
});
module.exports= checkStatus