Glavin001/graphql-sequelize-crud

Custom mutations and queries

Open

#25 建立於 2017年5月4日

在 GitHub 查看
 (1 留言) (4 反應) (1 負責人)TypeScript (23 fork)github user discovery
good first issuehelp wanted

倉庫指標

Star
 (128 star)
PR 合併指標
 (30 天內沒有已合併 PR)

描述

I had to check the source code to figure out how create custom mutations, it would be very helpful include better explanation on the docs.

It would be good mentioning that custom queries and mutations should be included in sequelize models definitions, then provide an example like this.

const user = sequelizeClient.define('user', {
  email: {
    type: Sequelize.STRING,
    allowNull: true,
    unique: false,
  },
  password: {
    type: Sequelize.STRING,
    allowNull: true,
  }
}, {
  classMethods: {
    //queries: function(){},
    mutations: function(Models, ModelTypes, resolver) {
      console.log("Creating custom mutations for model user");
      return {
        myMutationA: {
          type: MyCustomType,
          args: {
            dataA: {
              data: 'dataA',
              type: new GraphQLNonNull(GraphQLString)
            },
            dataB: {
              data: 'dataB',
              type: new GraphQLNonNull(GraphQLString)
            }
          },
          resolve: (obj, {
            name
          }) => {

            console.log("Calling custom mutator with data")
            console.log(name)
            // Here call sequelize using Models in the scope
            let myFirstPromise = new Promise((resolve, reject) => {
              setTimeout(function() {
                resolve("Success!");
              }, 250);
            });

            return myFirstPromise;
          }
        }
      };
    }
  }
});

貢獻者指南