add email verification graphql

This commit is contained in:
Barry Low committed 2018-11-12 17:01:22 -08:00
1 parent b870d0d491
commit 3e8a8e2cb1
5 files changed
+87 -13

No files matched your search

+2 -5
View File
@@ -4779,8 +4779,7 @@
"decode-uri-component": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
"dev": true
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
},
"deep-equal": {
"version": "1.0.1",
@@ -16420,7 +16419,6 @@
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/query-string/-/query-string-6.2.0.tgz",
"integrity": "sha512-5wupExkIt8RYL4h/FE+WTg3JHk62e6fFPWtAZA9J5IWK1PfTfKkMS93HBUHcFpeYi9KsY5pFbh+ldvEyaz5MyA==",
"dev": true,
"requires": {
"decode-uri-component": "^0.2.0",
"strict-uri-encode": "^2.0.0"
@@ -20077,8 +20075,7 @@
"strict-uri-encode": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
"integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=",
"dev": true
"integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY="
},
"string-length": {
"version": "2.0.0",
+1
View File
@@ -90,6 +90,7 @@
"npm": "^6.4.1",
"optimize-css-assets-webpack-plugin": "^5.0.1",
"prop-types": "^15.6.2",
"query-string": "^6.2.0",
"react": "^16.6.1",
"react-apollo": "^2.2.4",
"react-dom": "^16.6.1",
+2 -2
View File
@@ -42,8 +42,8 @@ export const MasterApp = (props) => (
<Route
path='/email-verification'
render={props => {
console.log(props, props.match)
return <EmailSignupConfirm {...props} />
console.log(props.location)
return <EmailSignupConfirm {...props} tokenParam={props.location.search} />
}}
/>
<Route
@@ -0,0 +1,10 @@
/* eslint-disable no-unused-vars */
import gql from 'graphql-tag'
const NEWSLETTER_SIGNUP_VERIFY = gql`
mutation NewsletterSignupVerify($token: String!) {
master_NewsletterSignupVerify(token: $token)
}
`
export default NEWSLETTER_SIGNUP_VERIFY
+72 -6
View File
@@ -1,12 +1,78 @@
import React from 'react'
import PropTypes from 'prop-types'
import queryString from 'query-string'
import { Mutation } from 'react-apollo'
import { BannerTopBar } from '../common'
export const EmailSignupConfirm = () => <BannerTopBar
size='big'
title=''
text={['Processing newsletter sign-up...', <br key='EmailSignupConfirm-br' />, 'Thank you for opting-in to recieve updates about the Advanced Algos project!']}
backgroundUrl='https://aacorporatesitedevelop.azurewebsites.net/img/photos/superalgos-platform.jpg'
/>
import NEWSLETTER_SIGNUP_VERIFY from './graphql/NewsletterSignupVerify'
export const EmailSignupConfirm = ({ tokenParam }) => {
let token
let BannerTitle = ''
let BannerText = ''
if (tokenParam !== '' && tokenParam !== null) {
const values = queryString.parse(tokenParam)
token = values.token
} else {
BannerText = [
'Newsletter Signup Error: Invalid Token',
<br key='EmailSignupConfirm-error-br' />,
'Please try signing up again! We apologize for the inconvenience,',
<br key='EmailSignupConfirm-error-br2' />,
'but we highly value your seurity and privacy.'
]
return (
<BannerTopBar
size='big'
title=''
text={BannerText}
backgroundUrl='https://aacorporatesitedevelop.azurewebsites.net/img/photos/superalgos-platform.jpg'
/>
)
}
console.log(token)
return (
<Mutation
mutation={NEWSLETTER_SIGNUP_VERIFY}
variables={{ token: token }}
>
{(NewsletterSignupVerify, { loading, error, data }) => {
console.log(loading, error, data)
if (error) {
BannerText = ['Newsletter Signup Error: ', <br key='EmailSignupConfirm-error-br' />, JSON.stringify(error)]
}
if (loading && !error) {
BannerText = ['Processing newsletter sign-up...', <br key='EmailSignupConfirm-br' />, 'Thank you for opting-in to recieve updates about the Advanced Algos project!']
}
if (data !== undefined && data !== null) {
console.log(data)
return (
<BannerTopBar
size='big'
title={BannerTitle}
text={BannerText}
backgroundUrl='https://aacorporatesitedevelop.azurewebsites.net/img/photos/superalgos-platform.jpg'
/>
)
} else {
return (
<BannerTopBar
size='big'
title=''
text='Newsletter Signup Error'
backgroundUrl='https://aacorporatesitedevelop.azurewebsites.net/img/photos/superalgos-platform.jpg'
/>
)
}
}
}
</Mutation>
)
}
EmailSignupConfirm.propTypes = {
tokenParam: PropTypes.string
}
export default EmailSignupConfirm