1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- const pgp = require('pg-promise')();
- const helper = require('./helper');
- // MySQL
- const connection = {
- db: 'hello_world',
- username: 'benchmarkdbuser',
- password: 'benchmarkdbpass',
- host: 'tfb-database',
- dialect: 'postgres'
- }
- const db = pgp(`postgres://${connection.username}:${connection.password}@${connection.host}:5432/${connection.db}`);
- async function arrayOfRandomWorlds(totalWorldsToReturn) {
- var totalIterations = helper.sanititizeTotal(totalWorldsToReturn);
- var arr = [];
- return new Promise(async(resolve, reject) => {
- for(var i = 0; i < totalIterations; i++) {
- arr.push(await getRandomWorld());
- }
-
- if(arr.length == totalIterations) {
- resolve(arr);
- }
- });
- };
- async function updateRandomWorlds(totalToUpdate) {
- const total = helper.sanititizeTotal(totalToUpdate);
- var arr = [];
- return new Promise(async(resolve, reject) => {
- for(var i = 0; i < total; i++) {
- arr.push(await updateRandomWorld());
- }
- if(arr.length === total) resolve(arr)
- });
- };
- const getRandomWorld = async () => {
- let world = await db.one(`select * from World where id = ${helper.randomizeNum()}`, [true])
- return {"id": world.id, "randomNumber": world.randomnumber};
- };
- const updateRandomWorld = async () => {
- let world = await db.oneOrNone(`update world set randomNumber = ${helper.randomizeNum()} where id = ${helper.randomizeNum()} returning id, randomNumber`, [true])
- return {"id": world.id, "randomNumber": world.randomnumber};
- };
- const getAllFortunes = async () => {
- return await db.many('select * from fortune', [true]);
- };
- module.exports = {
- Query: {
- singleDatabaseQuery: async() => await getRandomWorld(),
- multipleDatabaseQueries: async(parent, args) => await arrayOfRandomWorlds(args.total),
- getAllFortunes: async() => await getAllFortunes(),
- getRandomAndUpdate: async(parent, args) => await updateRandomWorlds(args.total)
- },
- Mutation: {
- createWorld: async(parent, args) => {
- let randInt = Math.floor(Math.random() * 1000) + 1;
- return await World.create({ id: null, randomNumber: randInt });
- },
- updateWorld: async(parent, args) => {
- return await World.update({id: args.id, randomNumber: args.randomNumber});
- }
- }
- }
|