graphql-form-handler
v0.0.4
Published
This package provides a generalized graphql mutation meant to handle key-value pair data submitted through an HTML form. The data is sent to an email target using Mailgun.
Downloads
5
Maintainers
Readme
GraphQL Forms Handler
This package provides a generalized graphql mutation meant to handle key-value pair data submitted through an HTML form. The data is sent to an email target using Mailgun.
Installation
$ npm install graphlql-form-handler --save
Usage
The GraphQL mutation behavior is baked into the package, however, the email template and Mailgun credentials (Mailgun must be configured) can be configured.
This usage example shows how the package can be used with ExpressJS.
const {GraphQLSchema, GraphQLObjectType} = require('graphql');
const {createGraphQLFormHandlerMutation} = require('graphql-form-handler');
const express = require('express');
const expressGraphQL = require('express-graphql');
const mutationConfig = {
mailgun: {
apiKey: 'key-XXXXXXXX',
domain: '[email protected]',
from: '[email protected]',
to: '[email protected]',
subject: 'Contact Request from Customer',
},
template: `
<html>
<body>
<p>Here's a form submission!</p>
{{formData}}
</body>
</html>`;
};
const schema = new GraphQLSchema({
query: ...,
mutation: new GraphQLObjectType({
name: 'mutation',
fields: () => ({
formHandler: createGraphQLFormHandlerMutation(mutationConfig),
}),
}),
});
const app = express();
...
app.use('/graphql', expressGraphQL((request) => ({
schema,
rootValue: {request},
})));