Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support For Mutations #19

Closed
brad-decker opened this issue Sep 18, 2015 · 17 comments
Closed

Support For Mutations #19

brad-decker opened this issue Sep 18, 2015 · 17 comments

Comments

@brad-decker
Copy link
Contributor

Need to add support for mutations to the resolver, or build a new resolver for mutations. I plan on working on this feature, but if you have any input on the best way to achieve this @mickhansen I'm open to ideas.

@mickhansen
Copy link
Owner

I was looking to get started on this soon aswell (although soon is whenever i feel like playing around with it).

Mutations should probably get their own resolvers, i haven't looked to much at how they are integrated in graphql but i believe they get their own section right?

@brad-decker
Copy link
Contributor Author

@mickhansen we have a solution started on a branch of our fork. It uses two different mutation Resolvers and has a few helper functions.

@xpepermint
Copy link

+1 for this. Btw... how do we handle (form) validations in that case?

@mickhansen
Copy link
Owner

@xpepermint sequelize validations would still work. And i assume that mutations will be typed so you can atleast ensure correct types and non-null if needed.

@xpepermint
Copy link

@mickhansen that's good.
I think that the validation part will be tricky. My forms usually depend on server-side validation error messages. I show each error message directly under form's field after validating a form (e.g. is required, is not an email). It seems to me that GraphQL expects the human validation part (error messages for a user) to be handled by the client itself and not to rely on the server response content, which is probably better anyway. I think that the server-side errors are meant for developers only. In case of an email validation we won't get a nice structured error message but just a text message (a sentence) explaining what went wrong. Just some thoughts ... Am I correct?

@mickhansen
Copy link
Owner

@xpepermint well that's really up to you, the sequelize validation output is a structure containing the rule that failed, on what value, etc.

@brad-decker
Copy link
Contributor Author

I'll run some tests on graphql error messages for validations and let you know what results we get. There is an errors object returned on all GraphQL errors, so hopefully that'll contain some information. if it doesn't by default we could look into integrating the error handling portion more closely with sequelize.

@xpepermint
Copy link

@brad-decker that's great!

@xpepermint
Copy link

This debate graphql/graphql-js#179 could help us here.

@brad-decker
Copy link
Contributor Author

Thanks @xpepermint - will definitely use this as resource when we dive more into mutation support.

@brad-decker
Copy link
Contributor Author

We're currently trying to figure out what is the right amount of auto generation when it comes to mutation support. Too much magic and its not clear how things are working and there's too much of an opportunity for random errors.

We're also trying to add support for graphql-relay mutations with client ids so that users will have the option to support their own custom mutations or use the mutateAndGetPayload feature of graphql-relay-js mutations

@mickhansen
Copy link
Owner

Would love to see any preliminary api designs you have @brad-decker.
I was thinking perhaps just offer mutation helpers, so users define mutation skeletons but can implement helpers for CRUD stuff if need be.

@brad-decker
Copy link
Contributor Author

@mickhansen Thats what we're working our way too. We are still wrapping our minds around how we want to approach. i'll ping you here when we have a draft we're pleased with.

@xpepermint
Copy link

Btw, I started with this https://github.com/xpepermint/graphql-type-factory.

@mickhansen
Copy link
Owner

@brad-decker Any progress here? Getting started on mutations myself and would love to hear what experiences you might have had - Not sure it makes sense to provide that much help from this library since most mutations have a bit of logic (unless we're talking straight up create association or model instance from supplied values).

@mmahalwy
Copy link

Any update on this? @rpellerin created an awesome lib: https://github.com/rpellerin/graphql-sequelize-schema-generator

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants