| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | const h = require('../helper');const Bluebird = require('bluebird');/** * @param databaseLayer * @returns {{SingleQuery: function(*), MultipleQueries: function(*), Fortunes: function(*), Updates: function(*)}} */module.exports = (databaseLayer) => ({  SingleQuery: async (ctx) => {    ctx.body = await databaseLayer.getWorldLean(h.randomTfbNumber());  },  MultipleQueries: async (ctx) => {    const queries = h.getQueries(ctx.request.query.queries);    const promisesArray = [];    for (let i = 0; i < queries; i++) {      promisesArray.push(databaseLayer.getWorldLean(h.randomTfbNumber()));    }    ctx.body = await Bluebird.all(promisesArray)  },  Fortunes: async (ctx) => {    const fortunes = await databaseLayer.allFortunes();    fortunes.push(h.additionalFortune);    fortunes.sort((a, b) => a.message.localeCompare(b.message));    return ctx.render('fortunes', {fortunes});  },  Updates: (ctx) => {    const queries = h.getQueries(ctx.request.query.queries);    const worldPromises = [];    for (let i = 0; i < queries; i++) {      worldPromises.push(databaseLayer.getWorld(h.randomTfbNumber()));    }    return Bluebird      .all(worldPromises)      .map(world => {        world.randomNumber = h.randomTfbNumber();        return world      })      .then(worlds => databaseLayer.saveWorlds(worlds))      .then(worlds => {        ctx.body = worlds;      });  }});
 |