findUniqueSites is working, using basic site template /visits

This commit is contained in:
Sean Clarke 2020-01-06 17:39:08 -05:00
parent d296e5ca43
commit ba018c685c
6 changed files with 55 additions and 1 deletions

View File

@ -1,4 +1,5 @@
var Site = require('../model/Site');
var Visit = require('../model/Visit');
module.exports = {
// Find site by ID export
@ -17,5 +18,14 @@ module.exports = {
if(err) throw err;
res.render('index', { title: "Home", sites: sites });
});
},
UniqueSiteVisits: function(req, res){
Visit.findUniqueSites(function(err, uniqueSites){
if(err) throw err;
Site.findAllById(uniqueSites, function(err, uniqueSiteVisits){
if(err) throw err;
res.render('index', { title: "UniqueSiteVisits", sites: uniqueSiteVisits });
});
});
}
}

View File

@ -3,7 +3,9 @@ var con = require('./db');
sql = "INSERT INTO visits (date, img, site_id) VALUES ?";
val = [
['10-15-2019','https://seanland.ca', '1'],
['10-17-2019','https://seanland.ca', '1']
['10-17-2019','https://seanland.ca', '1'],
['01-17-2020','https://seanland.ca', '134'],
['11-23-2019','https://seanland.ca', '15']
];
con.query(sql, [val], function(err, res){

View File

@ -30,6 +30,25 @@ Site.findById = function(id, callback){
});
};
// Finding all sites by IDs.
Site.findAllById = function(ids, callback){
var sql = "SELECT * FROM sites WHERE id in (?)";
var arr = [];
con.query(sql, [ids], function(err, result){
if (err) return callback(err);
// if not site is found.
if (result[0] == undefined) callback(404);
else {
console.log("Site.findAllById: " + result.length + "sites retrieved!");
result.forEach(site => {
arr.push(new Site(site));
});
callback(err, arr);
}
});
};
// get a listing of all sites
Site.getAll = function(callback){
var sql = "SELECT * FROM sites";

View File

@ -20,3 +20,25 @@ Visit.findBySite = function(id, callback){
}
});
};
Visit.findUniqueSites = function(callback){
var sql = "SELECT DISTINCT site_id FROM visits";
con.query(sql, function(err, result){
if(err) return callback(err);
if(result[0] == undefined) callback(404);
else {
var ids = [];
result.forEach(id => {
ids.push(id.site_id);
});
console.log(ids);
console.log("Visit.findUniqueSites: " + ids.length + " unique sites visited!");
callback(err, ids);
}
});
}
module.exports = Visit;

View File

@ -4,5 +4,6 @@ var router = express.Router();
var sitesController = require('../controllers/sites')
router.get('/', sitesController.getAll);
router.get('/visits', sitesController.UniqueSiteVisits);
module.exports = router;

0
views/visits.pug Normal file
View File