Creating a "editRuleOfCompetition" mutation

This commit is contained in:
Nikola Bjelo committed 2018-10-19 18:32:49 +02:00
1 parent 6eaff5cf14
commit eacd89f8a7
2 files changed
+59 -1

No files matched your search

@@ -0,0 +1,56 @@
import {
GraphQLNonNull,
GraphQLID,
GraphQLString
} from 'graphql'
import { CompetitionType } from '../types'
import Competition from '../../models/competition'
const args = {
codeName: { type: new GraphQLNonNull(GraphQLID) },
title: { type: new GraphQLNonNull(GraphQLString) },
newtitle: { type: GraphQLString },
description: { type: GraphQLString }
}
const resolve = (parent, { codeName, title, newtitle, description }, context) => {
// let authIdOnSession = context.user.sub
return new Promise((resolve, reject) => {
Competition.findOne({ codeName }).exec((err, competition) => {
if (err) reject(err)
else {
let ruleIndex
competition.rules.find((rule, index) => {
if (rule.title === title) {
ruleIndex = index
}
})
competition.rules[ruleIndex].description = description || competition.rules[ruleIndex].description
if (competition.rules.some(rule => rule.title === newtitle)) {
// need to add an error message here TODO
resolve(competition)
} else {
competition.rules[ruleIndex].title = newtitle || competition.rules[ruleIndex].title
}
competition.save((err) => {
if (err) reject(err)
else {
resolve(competition)
}
})
}
})
})
}
const mutation = {
editRuleOfCompetition: {
type: CompetitionType,
args,
resolve
}
}
export default mutation
+3 -1
View File
@@ -6,6 +6,7 @@ import HostCompetitionMutation from './HostCompetition'
import RegisterToCompetitionMutation from './RegisterToCompetition'
import AddRuleToCompetitionMutation from './AddRuleToCompetition'
import EditCompetitionMutation from './EditCompetition'
import EditRuleOfCompetitionMutation from './EditRuleOfCompetition'
const Mutation = new GraphQLObjectType({
name: 'Mutation',
@@ -13,7 +14,8 @@ const Mutation = new GraphQLObjectType({
HostCompetitionMutation,
RegisterToCompetitionMutation,
AddRuleToCompetitionMutation,
EditCompetitionMutation
EditCompetitionMutation,
EditRuleOfCompetitionMutation
)
})