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;
- });
- }
- });
|