"use strict"; const express = require("express"), fs = require("fs"), url = require("url"), config = require("config"), moment = require("moment"); let photoDB; require("../db").then(function(db) { photoDB = db; }); const router = express.Router(); router.get("/*", function(req, res/*, next*/) { let url = decodeURI(req.url).replace(/\?.*$/, ""), query = "SELECT * FROM albums WHERE path=:path"; return photoDB.sequelize.query(query, { replacements: { path: url }, type: photoDB.Sequelize.QueryTypes.SELECT }).then(function(parent) { if (parent.length == 0) { return res.status(404).send(req.url + " not found"); } parent = parent[0]; for (var key in parent) { if (parent[key] instanceof Date) { parent[key].setHours(0, 0, 0, 0); parent[key] = moment(parent[key]); } } return photoDB.sequelize.query("SELECT * FROM albums WHERE parentId=:parentId ORDER BY name", { replacements: { parentId: parent.id }, type: photoDB.Sequelize.QueryTypes.SELECT }).then(function(children) { children.forEach(function(album) { for (var key in album) { if (album[key] instanceof Date) { album[key].setHours(0, 0, 0, 0); album[key] = moment(album[key]); } } }); let results = { album: parent, children: children }; return res.status(200).json(results); }); }).catch(function(error) { console.error("Query failed: " + query); return Promise.reject(error); }); }); module.exports = router;