Skip to content

Instantly share code, notes, and snippets.

@chanakaDe
Created December 27, 2016 16:41
Show Gist options
  • Save chanakaDe/aa9d6a511070c3c78ba3ebc018306ad8 to your computer and use it in GitHub Desktop.
Save chanakaDe/aa9d6a511070c3c78ba3ebc018306ad8 to your computer and use it in GitHub Desktop.
var User = require('../models/user');
var Story = require('../models/story');
var Log = require('../models/log');
var email = require('../util/email');
var config = require('../../config');
var jsonwebtoken = require('jsonwebtoken');
var secretKey = config.secretKey;
var mongoose = require("mongoose");
var request = require('request');
var db = require('../util/database');
var pool = db.getPool();
/**
* Connecting to MongoDB using Mongoose.
*/
mongoose.connect(config.database, function (err) {
if (err) {
console.error(err);
} else {
console.log("Connected to database");
}
});
var userArray = [];
var minutes = 1, the_interval = minutes * 60 * 1000;
setInterval(function() {
console.log("I am doing my 1 minute check" + new Date());
var query = "SELECT u.ID,u.Username,a.telephone FROM user u JOIN useraccount ua ON u.ID = ua.UserID JOIN address a ON a.ID = u.ID where ua.Type = 'Freeview' ";
pool.getConnection(function (err, connection) {
connection.query(query, function (err, rows) {
connection.release();
var userArray = rows;
for (var i = 0 ; i < userArray.length ; i++) {
var selectedUserID = userArray[i].ID;
var selectedUserTelephone = userArray[i].telephone;
/**
* When there is no phone number.
* This condition activates.
**/
if (selectedUserTelephone == "") {
console.log("***********no number found");
pool.getConnection(function (err, connection) {
connection.query('UPDATE useraccount SET Active = ?,synapse_active = ? where UserID = ?',
["N", "N" , userArray[i].ID], function (err, result) {
connection.release();
});
});
pool.getConnection(function (err, connection) {
connection.query('UPDATE userstatus SET EmailUnconfirmed = ?,FreeviewUnconfirmed = ?,CardExpired = ?,CardDetailsMissing = ? where UserID = ?',
["Y", "Y","Y", "Y" , userArray[i].ID], function (err, result) {
connection.release();
});
});
// Saving log to MongoDB
var log = new Log({
userID: userArray[i].ID,
message: "UNKNOWN",
phoneNo: "UNKNOWN",
email: "UNKNOWN"
});
log.save(function (err) {
if (err) {
console.log("ERROR : ",err);
return
}
// res.json({message: "New Log Created", type: "success", code: 200});
console.log("New Log created at UNKNOWN "+ new Date());
});
}else {
/**
* When there is a phone number.
* This condition activates.
**/
request('http://dev.demo.com/api/v1/freeviewAccount/getFreeviewLoginAndCallAPI/'+userArray[i].telephone, function (error, response, body) {
if (!error && response.statusCode == 200) {
var json = JSON.parse(body);
if (json.Response["@attributes"].Message == "CUSTOMER_ACTIVE") {
pool.getConnection(function (err, connection) {
connection.query('UPDATE useraccount SET Active = ?,synapse_active = ? where UserID = ?',
["Y", "Y" , userArray[i].ID], function (err, result) {
connection.release();
});
});
pool.getConnection(function (err, connection) {
connection.query('UPDATE userstatus SET CardDetailsMissing = ?,EmailUnconfirmed = ?,SkyUnconfirmed = ?,FreeviewUnconfirmed = ?,VoucherUnconfirmed = ?,EmailNone = ?,CardExpired = ?,PaymentFailed = ?,Suspended = ?,Migrated = ?,Notification = ?,VirginUnconfirmed = ?,PasswordExpired = ? where UserID = ?',
["N", "N","N", "N","N", "N","N", "N","N", "N","N", "N","N" , userArray[i].ID], function (err, result) {
connection.release();
});
});
// Saving log to MongoDB
var log = new Log({
userID: userArray[i].ID,
message: json.Response["@attributes"].Message,
phoneNo: selectedUserTelephone,
email: json.Response["@attributes"].Email
});
log.save(function (err) {
if (err) {
console.log("ERROR : ",err);
return
}
// res.json({message: "New Log Created", type: "success", code: 200});
console.log("New Log created at CUSTOMER_ACTIVE "+ new Date());
});
}
if(json.Response["@attributes"].Message == "CUSTOMER_INACTIVE"){
pool.getConnection(function (err, connection) {
connection.query('UPDATE useraccount SET Active = ?,synapse_active = ? where UserID = ?',
["N", "N" , userArray[i].ID], function (err, result) {
connection.release();
});
});
pool.getConnection(function (err, connection) {
connection.query('UPDATE userstatus SET EmailUnconfirmed = ?,FreeviewUnconfirmed = ?,CardExpired = ?,CardDetailsMissing = ? where UserID = ?',
["Y", "Y","Y", "Y" , userArray[i].ID], function (err, result) {
connection.release();
});
});
// Saving log to MongoDB
var log = new Log({
userID: userArray[i].ID,
message: json.Response["@attributes"].Message,
phoneNo: selectedUserTelephone,
email: json.Response["@attributes"].Email
});
log.save(function (err) {
if (err) {
console.log("ERROR : ",err);
return
}
// res.json({message: "New Log Created", type: "success", code: 200});
console.log("New Log created at CUSTOMER_INACTIVE "+ new Date());
});
}
}
})
}
}
});
});
}, the_interval);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment