12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- // Connects to MongoDB using the mongoose driver
- // Handles related routes
- const helper = require('../helper');
- const Mongoose = require('mongoose');
- Mongoose.connect('mongodb://tfb-database/hello_world', { useNewUrlParser: true, useUnifiedTopology: true });
- const WorldSchema = new Mongoose.Schema({
- id: Number,
- randomNumber: Number
- }, {
- collection: 'world'
- });
- const FortuneSchema = new Mongoose.Schema({
- id: Number,
- message: String
- }, {
- collection: 'fortune'
- });
- const Worlds = Mongoose.model('world', WorldSchema);
- const Fortunes = Mongoose.model('fortune', FortuneSchema);
- const randomWorld = () => Worlds.findOne({ id: helper.randomTfbNumber() });
- const updateWorld = async (world) =>
- await Worlds.updateOne(
- { id: world.randomNumber },
- { randomNumber: world.randomNumber }
- );
- module.exports = {
- SingleQuery: async (request, h) => {
- return h.response(await randomWorld()).header('Server', 'hapi');
- },
- MultipleQueries: async (request, h) => {
- const queries = helper.getQueries(request);
- const results = [];
- for (let i = 0; i < queries; i++) {
- results.push(await randomWorld());
- }
- return h.response(results).header('Server', 'hapi');
- },
- Fortunes: async (request, h) => {
- const fortunes = await Fortunes.find();
- fortunes.push(helper.additionalFortune());
- fortunes.sort((a, b) => a.message.localeCompare(b.message));
- return h.view('fortunes', {
- fortunes: fortunes
- })
- .header('Content-Type', 'text/html')
- .header('Server', 'hapi');
- },
- Updates: async (request, h) => {
- const queries = helper.getQueries(request);
- const results = [];
- for (let i = 0; i < queries; i++) {
- const world = await randomWorld();
- world.randomNumber = helper.randomTfbNumber();
- await updateWorld(world);
- results.push(world);
- }
- return h.response(results)
- .header('Content-Type', 'application/json')
- .header('Server', 'hapi');
- }
- };
|