From ce9d12d2f2a000ad2200c4401427cc5f234fe691 Mon Sep 17 00:00:00 2001 From: Barry Low Date: Fri, 14 Dec 2018 22:20:47 -0800 Subject: [PATCH] Remove Sendgrid Mutations --- server/src/index.js | 6 +- server/src/resolvers/index.js | 4 +- server/src/resolvers/mutation/index.js | 3 - server/src/resolvers/mutation/sendgrid.js | 237 ---------------------- server/src/schema/index.js | 4 +- 5 files changed, 5 insertions(+), 249 deletions(-) delete mode 100644 server/src/resolvers/mutation/sendgrid.js diff --git a/server/src/index.js b/server/src/index.js index 128f1b8c4..845a5fd30 100644 --- a/server/src/index.js +++ b/server/src/index.js @@ -9,8 +9,7 @@ import axios from 'axios' import { createTransformedRemoteSchema } from './createRemoteSchema' import { teams, events } from './links' -import { typeDef as masterSchema } from './schema' -import masterResolvers from './resolvers' + import logger from './logger' async function getUserId (authId) { @@ -75,9 +74,8 @@ async function run () { process.env.NOTIFICATIONS_API_PRESHARED) logger.info('Notifications schema created') - var schemas = [masterSchema] + var schemas = [] var resolvers = {} - resolvers = Object.assign(resolvers, masterResolvers) if (transformedTeamsSchema) { schemas.push(transformedTeamsSchema) diff --git a/server/src/resolvers/index.js b/server/src/resolvers/index.js index c260c10b3..9919da6d3 100644 --- a/server/src/resolvers/index.js +++ b/server/src/resolvers/index.js @@ -1,9 +1,9 @@ import merge from 'lodash.merge' -import { SendgridMutations } from './mutation' +// import { SendgridMutations } from './mutation' const resolvers = { Mutation: { - ...SendgridMutations + // ...SendgridMutations } } diff --git a/server/src/resolvers/mutation/index.js b/server/src/resolvers/mutation/index.js index 70ad9aef6..e69de29bb 100644 --- a/server/src/resolvers/mutation/index.js +++ b/server/src/resolvers/mutation/index.js @@ -1,3 +0,0 @@ -import SendgridMutations from './sendgrid' - -export { SendgridMutations } diff --git a/server/src/resolvers/mutation/sendgrid.js b/server/src/resolvers/mutation/sendgrid.js deleted file mode 100644 index 40b9c1275..000000000 --- a/server/src/resolvers/mutation/sendgrid.js +++ /dev/null @@ -1,237 +0,0 @@ -import axios from 'axios' -import jwt from 'jsonwebtoken' -import { ApolloError } from 'apollo-server-express' - -import logger from '../../logger' - -const API_KEY = process.env.SG_APIKEY -const API_KEY_CONTACTS = process.env.SG_APIKEY_CONTACTS -let origin = process.env.SANDGRID_ORIGN - -export default { - async master_NewsletterSignup(parent, { email }, ctx, info) { - logger.info('master_NewsletterSignup params email:') - logger.info(email) - const token = jwt.sign({ email: email }, API_KEY, { expiresIn: '1d' }) - const params = '/email-verification?token=' - - const headers = { - 'Content-Type': 'application/json', - 'Access-Control-Allow-Origin' : origin, - 'Access-Control-Allow-Credentials': 'true' - } - - const data = JSON.stringify({ - "personalizations": [ - { - "to": [ - { - "email": email - } - ], - dynamic_template_data: { - "aaverifylink": origin + params + token, - "subject": 'VERIFY YOUR INTEREST in Advanced Algos' - }, - "subject": 'VERIFY YOUR INTEREST in Advanced Algos' - } - ], - "from": { - "email": "feedback@advancedalgos.net", - "name": "Advanced Algos Team" - }, - "reply_to": { - "email": "feedback@advancedalgos.net", - "name": "Advanced Algos Team" - }, - "template_id": process.env.SG_SIGNUP_EMAILID - }) - - const sendVerify = axios({ - method: 'post', - url: 'https://api.sendgrid.com/v3/mail/send', - data: data, - headers:{ - 'content-type': 'application/json', - 'authorization': 'Bearer ' + API_KEY - } - }) - .then(function (response) { - logger.info('Sendgrid sendVerify response:') - logger.info(response) - if (response.status >= 200 && response.status < 300) { - return 'SUCCESS' - } else { - throw response.data.errors[0].message - } - }) - .catch(function (error) { - logger.error('Sendgrid sendVerify Error:') - logger.error(error) - throw new ApolloError(`Sendgrid sendVerify Error: ${error.response.data.errors[0].message}`, 404) - }) - return sendVerify - }, - async master_NewsletterSignupVerify(parent, { token }, ctx, info){ - let origin = process.env.SANDGRID_ORIGN - const headers = { - 'Content-Type': 'application/json', - 'Access-Control-Allow-Origin' : origin, - 'Access-Control-Allow-Credentials': 'true' - } - - let verifiedToken - try { - verifiedToken = jwt.verify(token, API_KEY, {maxAge: '1d'}) - } catch(err) { - logger.error('Sendgrid verifiedToken Error:') - logger.error(err) - if (err.name === 'TokenExpiredError'){ - throw new ApolloError('Error: Token Expired. Please resubmit email address.', 400) - } else { - throw new ApolloError(`Error: ${err.message}`, 400) - } - } - logger.info('Sendgrid verifySignup verifiedToken: ') - logger.info(verifiedToken) - - const email = verifiedToken.email - - const subscribe = axios({ - method: 'post', - url: 'https://api.sendgrid.com/v3/contactdb/recipients', - data: [{"email": email}], - headers:{ - 'content-type': 'application/json', - 'authorization': 'Bearer ' + API_KEY_CONTACTS - } - }) - .then(response => { - logger.info('Sendgrid verifySignup subscribe: ') - logger.info(response) - const recipients = response.data.persisted_recipients - - if (recipients.length > 0 ){ - const addToList = axios({ - method: 'post', - url: 'https://api.sendgrid.com/v3/contactdb/lists/4068018/recipients/' + recipients[0], - headers:{ - 'content-type': 'application/json', - 'authorization': 'Bearer ' + API_KEY_CONTACTS - } - }) - .then(response => { - logger.info('Sendgrid verifySignup addToList: ') - logger.info(response) - if (response.status >= 200 && response.status < 300) { - return 'SUCCESS' - } else { - throw response.data.errors[0].message - } - }) - .catch(error => { - logger.error('Sendgrid verifySignUp subscribe Error:') - logger.error(error) - throw `Email SignUp Error: ${error}` - }) - return addToList - } else{ - return response.data.errors[0].message - } - }) - .then(response => { - return response - }) - .catch(error => { - logger.error('Sendgrid verifySubscribe Error:') - logger.error(error) - throw new ApolloError(`Sendgrid verifySubscribe Error: ${error.response.data.errors[0].message}`, 404) - }) - return subscribe - }, - async master_Contact(parent, { email, subject, message, recaptcha }, ctx, info) { - const headers = { - 'Content-Type': 'application/json', - 'Access-Control-Allow-Origin' : origin, - 'Access-Control-Allow-Credentials': 'true' - } - - const toEmail = 'feedback@advancedalgos.net' - - const data = JSON.stringify({ - "personalizations": [ - { - "to": [ - { - "email": email - } - ], - dynamic_template_data: { - "aacontactname": name, - "aacontactemail": email, - "aacontactbody": message - }, - "subject": `AA Corporate Site Contact - Message from ${name}` - } - ], - "from": { - "email": email, - "name": name - }, - "reply_to": { - "email": email, - "name": name - }, - "template_id": process.env.SG_CONTACT_EMAILID - }) - - const checkCaptcha = axios({ - method: 'post', - url: 'https://www.google.com/recaptcha/api/siteverify', - params: { - secret: process.env.RECAPTCHA, - response: recaptcha - } - }) - .then(function (response) { - logger.info(response.data) - if (response.status >= 200 && response.status < 300 && response.data.success) { - context.log('presend SendGrid') - return axios({ - method: 'post', - url: 'https://api.sendgrid.com/v3/mail/send', - data: data, - headers:{ - 'content-type': 'application/json', - 'authorization': 'Bearer ' + API_KEY - } - }) - .then(function (response) { - logger.info('Sendgrid Contact response: ') - logger.info(response) - if (response.status >= 200 && response.status < 300) { - return `Contact email sent` - } else { - throw response.data.errors[0].message - } - }) - .catch(function (error) { - logger.error(`sendgrid Error: ${JSON.stringify(error)}`) - throw `Contact email send error: ${error.response.data.errors[0].message}` - }) - }else{ - throw response.data - } - }) - .then(function(response){ - return response - }) - .catch(function (error) { - logger.error('Sendgrid Contact RECAPTCHA Error:') - logger.error(error) - throw new ApolloError(`Sendgrid Contact RECAPTCHA Error: ${error.response.data.errors[0].message}`, 404) - }) - - return checkCaptcha - } -} diff --git a/server/src/schema/index.js b/server/src/schema/index.js index 4b416cceb..8b1651b1d 100644 --- a/server/src/schema/index.js +++ b/server/src/schema/index.js @@ -1,8 +1,6 @@ export const typeDef = ` type Mutation { - master_NewsletterSignup(email: String!): String - master_NewsletterSignupVerify(token: String!): String - master_Contact(email: String!, subject: String!, Message: String!, recaptcha: String!): String + master_SampleMutation(variable: String!): String } schema {