findUniqueSites is working, using basic site template /visits
This commit is contained in:
parent
d296e5ca43
commit
ba018c685c
@ -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 });
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -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){
|
||||
|
@ -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";
|
||||
|
@ -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;
|
||||
|
@ -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
0
views/visits.pug
Normal file
Reference in New Issue
Block a user