Как изменить значения свойств для объекта, вложенного в массив в graphql? - PullRequest
1 голос
/ 20 апреля 2019

Я только недавно начал изучать GraphQL и решил внедрить его в приложение для опросов, основанное на реакции, где пользователи могут создавать опросы и голосовать за них.Я создал модель мангуста, которая выглядит следующим образом https://github.com/luckyrose89/Voting-App/blob/master/backend/models/poll.js. У меня возникла проблема с добавлением голосов в опцию опроса при написании мутаций в Graphql.Пока что моя схема выглядит следующим образом:

const AnswerType = new GraphQLObjectType({
  name: "Answer",
  fields: () => ({
    id: { type: GraphQLID },
    option: { type: GraphQLString },
    votes: { type: GraphQLInt }
  })
});

const QuestionType = new GraphQLObjectType({
  name: "Question",
  fields: () => ({
    id: { type: new GraphQLNonNull(GraphQLID) },
    question: { type: GraphQLString },
    answer: { type: GraphQLList(AnswerType) }
  })
});

const AnswerTypeInput = new GraphQLInputObjectType({
  name: "AnswerInput",
  fields: () => ({
    option: { type: GraphQLString },
    votes: { type: GraphQLInt }
  })
});

const QuestionTypeInput = new GraphQLInputObjectType({
  name: "QuestionInput",
  fields: () => ({
    question: { type: new GraphQLNonNull(GraphQLString) },
    answer: { type: new GraphQLNonNull(GraphQLList(AnswerTypeInput)) }
  })
});

const Mutation = new GraphQLObjectType({
  name: "Mutation",
  fields: {
    addPoll: {
      \\\\ code here
    },

    deletePoll: {
    \\\\\ code here
    },

    upvotePoll: {
      type: QuestionType,
      args: { id: { type: new GraphQLNonNull(GraphQLID) } },
      resolve(parent, args) {}
    }
  }
});

Итак, я определил свои типы, и я могу добавлять и удалять опросы и получать доступ к одному опросу (здесь я пропустил раздел запросов).Но я не понимаю, как получить доступ к объекту AnswerType одного опроса без извлечения ненужных данных и использовать его для написания моей мутации upVote.Я надеюсь, что кто-то может направить меня с этим

...