From 335024c646a1eb0344575a8757f9b19358c7bfe4 Mon Sep 17 00:00:00 2001 From: Nikola Bjelo Date: Fri, 19 Oct 2018 15:27:13 +0200 Subject: [PATCH] Adding "includeOld" optional flag on current queries Have to find a way to turn this into a "trait" in a way --- server/src/schema/queries/Competitions.js | 13 ++++++++++++- server/src/schema/queries/CompetitionsByHost.js | 16 ++++++++++++---- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/server/src/schema/queries/Competitions.js b/server/src/schema/queries/Competitions.js index 554e02118..e6069ae74 100644 --- a/server/src/schema/queries/Competitions.js +++ b/server/src/schema/queries/Competitions.js @@ -1,14 +1,25 @@ import { + GraphQLBoolean, GraphQLList } from 'graphql' +import { epoch } from '../../utils/functions' import { CompetitionType } from '../types' import Competition from '../../models/competition' +const args = { + includeOld: { type: GraphQLBoolean } +} + const query = { competitions: { type: new GraphQLList(CompetitionType), + args, resolve (parent, args, context) { - return Competition.find() + return Competition.find( + Object.assign( + {}, + args.includeOld ? { finishDatetime: { $gt: epoch() } } : {} + )) } } } diff --git a/server/src/schema/queries/CompetitionsByHost.js b/server/src/schema/queries/CompetitionsByHost.js index e5faf54c7..94081f640 100644 --- a/server/src/schema/queries/CompetitionsByHost.js +++ b/server/src/schema/queries/CompetitionsByHost.js @@ -1,13 +1,16 @@ import { + GraphQLBoolean, GraphQLList, GraphQLString, GraphQLNonNull } from 'graphql' +import { epoch } from '../../utils/functions' import { CompetitionType } from '../types' import Competition from '../../models/competition' const args = { - host: { type: new GraphQLNonNull(GraphQLString) } + host: { type: new GraphQLNonNull(GraphQLString) }, + includeOld: { type: GraphQLBoolean } } const query = { @@ -15,9 +18,14 @@ const query = { type: new GraphQLList(CompetitionType), args, resolve (parent, args, context) { - return Competition.find({ - host: args.host - }) + return Competition.find( + Object.assign( + { + host: args.host + }, + args.includeOld ? { finishDatetime: { $gt: epoch() } } : {} + ) + ) } } }