const express = require("express"); const path = require("path"); const bodyParser = require("body-parser"); const layout = require("express-layout"); const compression = require("compression"); const forceSSL = require("./app/helpers/forceSSL"); const { Storage } = require("@google-cloud/storage"); const validate = require("validate.js"); const { APP_PORT, CRAWLER_INTERVAL, STOP_CRAWLER } = require("./app/config/appConfig"); const routes = require("./app/routes"); const { crawlAll } = require("./app/crawler/crawl"); const { checkUpNotify } = require("./app/services/notificationService"); const { notifyForNewRealEstates } = require("./app/services/notificationService"); const app = express(); app.use(forceSSL()); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.set("views", path.join(__dirname, "/app/views")); app.set("view engine", "ejs"); app.use(layout()); app.use(compression()); app.use("/", routes); app.use("/assets", express.static("./app/public")); app.listen(APP_PORT, () => console.log(`Example app listening on port ${APP_PORT}!`) ); let crawlerRunning = STOP_CRAWLER; const crawl = () => { if (!crawlerRunning) { crawlerRunning = true; crawlAll().then(newRealEstates => { crawlerRunning = false; notifyForNewRealEstates(newRealEstates); }); } }; setInterval(crawl, CRAWLER_INTERVAL * 1000); setInterval(checkUpNotify, 1000 * 60 * 60 * 24); //Google storage req const storage = new Storage(); storage .getBuckets() .then(results => { const buckets = results[0]; console.log("Buckets:"); buckets.forEach(bucket => { console.log(bucket.name); }); }) .catch(err => { console.error("GOOGLE ERROR:", err); }); /* bucket = gcs.bucket('aBucket') bucket.file('aFile').getSignedUrl({ action: 'write', expires: moment.utc().add(1, 'days').format(), }, (error, signedUrl) => { if (error == null) { console.log(`Signed URL is ${signedUrl}`) } }) */