Connect to User Module

This commit is contained in:
Barry Low committed 2018-09-25 22:57:06 -07:00
1 parent f820fcd1fa
commit 5a564aaf5f
6 files changed
+82 -12

No files matched your search

+11 -1
View File
@@ -64,8 +64,18 @@ const resolvers = {
return ctx.db.query.member({ where: { authId: arg.authId } }, info)
},
async currentMember(parent, args, ctx, info) {
console.log('currentMember: ', ctx.request.res.req.user)
console.log('currentMember: ', ctx.request.res.req.user, ctx.token)
const authId = ctx.request.res.req.user.sub
fetch('URL_GOES_HERE', {
method: 'post',
headers: new Headers({
'Authorization': 'Basic '+btoa('username:password'),
'Content-Type': 'application/x-www-form-urlencoded'
}),
body: 'A=1&B=2'
})
return ctx.db.query.member({ where: { authId } }, info)
},
teams(parent, args, ctx, info) {
+6
View File
@@ -64,6 +64,7 @@ wsClient.onReconnected(() => {
})
const httpLink = new HttpLink({ uri: graphqlEndpoint })
const httpUserLink = new HttpLink({ uri: 'http://104.43.240.255:4000/graphql' })
const link = split(
({ query }) => {
@@ -134,6 +135,11 @@ export const client = new ApolloClient({
connectToDevTools: true
})
export const UserClient = new ApolloClient({
link: ApolloLink.from([authRetryLink, authLink, httpUserLink]),
cache
})
export const auth = new Auth(
result => console.log('auth result', result),
client
@@ -0,0 +1,25 @@
/* eslint-disable no-unused-vars */
import gql from 'graphql-tag'
export const USER_BY_AUTHID = gql`
query($authId: String){
userByAuthId (authId: $authId){
id
alias
firstName
middleName
lastName
bio
email
emailVerified
isDeveloper
isDataAnalyst
isTrader
role {
id
}
}
}
`
export default USER_BY_AUTHID
+2 -1
View File
@@ -1,3 +1,4 @@
import { GetCurrentMember } from './GetCurrentMemberQuery'
import { USER_BY_AUTHID } from './GetUserByAuthIDQuery'
export { GetCurrentMember }
export { GetCurrentMember, USER_BY_AUTHID }
+37 -9
View File
@@ -1,17 +1,23 @@
import React from 'react'
import PropTypes from 'prop-types'
import { graphql } from 'react-apollo'
import { Query } from 'react-apollo'
import LoggedInMenu from './LoggedInMenu'
import { MessageCard } from '../common/'
import { GetCurrentMember } from '../../graphql/members'
import { UserClient } from '../../App'
import { USER_BY_AUTHID } from '../../graphql/members'
import { isDefined } from '../../utils/js-helpers'
export const LoggedIn = props => {
let { data, user, auth } = props
console.log('LoggedIn :', data, user)
console.log('LoggedIn :', data, user, auth)
let displayName = 'No Display Name'
let authId = null
if (isDefined(user.authId)) {
authId = user.authId
}
if (isDefined(user.alias)) {
displayName = user.alias
@@ -29,12 +35,34 @@ export const LoggedIn = props => {
displayName = user.firstName + ' ' + user.lastName
}
if (authId === null) {
return (
<div>Loading...</div>
)
}
return (
<div>
<p>
<LoggedInMenu menuLabel={displayName} auth={auth} />
</p>
</div>
<Query
query={USER_BY_AUTHID}
fetchPolicy='network-only'
variables={{ authId }}
client={UserClient}
>
{({ loading, error, data }) => {
console.log('USER_BY_AUTHID: ', loading, error, data)
if (error) {
error.graphQLErrors.map(({ message }, i) => {
return <MessageCard message={message} />
})
}
return (
<p>
<LoggedInMenu menuLabel={displayName} auth={auth} />
</p>
)
}}
</Query>
)
}
@@ -44,4 +72,4 @@ LoggedIn.propTypes = {
auth: PropTypes.object.isRequired
}
export default graphql(GetCurrentMember)(LoggedIn) // This binds the querty to the component
export default LoggedIn
+1 -1
View File
@@ -8,7 +8,7 @@ import { Link } from 'react-router-dom'
import ProfileIcon from '@material-ui/icons/Person'
import LogoutIcon from '@material-ui/icons/DirectionsWalk'
const UserLink = props => <Link to='/user' {...props} />
const UserLink = props => <Link to='/profile' {...props} />
const LogoutLink = props => <Link to='/' {...props} />
class LoggedInUserMenu extends Component {