const PubSub = require('@google-cloud/pubsub'); const pubsub = PubSub(); const publishers = { hourly: pubsub.topic('cron-hourly').publisher(), daily: pubsub.topic('cron-daily').publisher(), weekly: pubsub.topic('cron-weekly').publisher(), monthly: pubsub.topic('cron-monthly').publisher(), test: {publish: (f,c) => {console.log('test publish',f);c();}} }; /** * Queues a message on the appropiate frequency queue. * * @param {Object} req - Cloud Function request context. * @param {Object} res - Cloud Function response context. */ exports.cron = function(req, res) { const frequency = req.query.frequency; const payload = {frequency, timestamp: +new Date()}; publishers[frequency].publish({}, err => { if(err) console.error(err); else { res.set('Access-Control-Allow-Origin', "*"); res.set('Access-Control-Allow-Methods', 'GET'); res.status(200).end(); } }); };