@Sashjkeee
f-e

Изменить код мутации graphQL?

Только изучаю данную связку и столкнулся с некоторым недопонимаем?
import {
    GraphQLNonNull,
    GraphQLID,
    GraphQLString
} from 'graphql';

import { clubType } from '../../types/club';
import ClubModel from '../../../models/club';

export default {
    type: clubType,
    args: {
        id: {
            name: 'id',
            type: new GraphQLNonNull(GraphQLID)
        },
        name: {
            type: new GraphQLNonNull(GraphQLString)
        },
        position: {
            type: new GraphQLNonNull(GraphQLString)
        },
        league: {
            type: new GraphQLNonNull(GraphQLString)
        }
    },
    resolve(root, params) {
        const updateClub = ClubModel.findByIdAndUpdate(params.id, {
            $set: {
                name: params.name,
                position: params.position,
                league: params.league
            }
        }, {
            new: true
        })
        if (!updateClub) {
            throw new Error('error update club')
        }
        return updateClub;
    }
}


Есть такой код на изменение данных, сейчас сделано таким образом, что нельзя изменить только определенные данные, нужно передавать все
mutation {
  UpdateClub(id: "5b447f4d0f2f3b03e20001e4", name: "Zenit FC", position: "1", league : "Rus") {
    _id
    name
    position
    league
    createdAp
    updateAt
  }
}


А как переписать таким образом, чтобы если мне нужно изменить только position, я бы и передавал только эти данные?

mutation {
  UpdateClub(id: "5b447f4d0f2f3b03e20001e4", position: "1") {
    _id
    name
    position
    league
    createdAp
    updateAt
  }
}
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
Negezor
@Negezor
Senior Shaurma Developer
Используйте подход Relay для решения этой проблемы, вместо того что бы описывать все аргументы в мутацию, просто сделайте input и передавайте в него нужные данные. Вот хорошая статья для прочтения.
input UpdateClubInput {
    id: ID!
    name: String
    position: String
    league: String
}

mutation {
    UpdateClub(input: UpdateClubInput!): Club
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы