Debug API: remove cascading member deletion

This commit is contained in:
Barry Low committed 2018-09-01 11:36:10 -07:00
1 parent a1b4bbe18c
commit 2976fcbe56
7 files changed
+44 -12

No files matched your search

@@ -9,7 +9,7 @@ type Team {
createdAt: DateTime!
name: String! @unique
slug: String! @unique
owner: Member! @relation (name: "TeamOwner", onDelete: CASCADE)
owner: Member! @relation (name: "TeamOwner", onDelete: SET_NULL)
profile: TeamProfile
members: [TeamMembers!]! @relation (name: "TeamMembers", onDelete: SET_NULL)
anonymous: Boolean! @default(value: true)
+31 -1
View File
@@ -1,6 +1,6 @@
const _get = require('lodash.get')
const validateAndParseIdToken = require('./helpers/validateAndParseIdToken')
const createPrismaMember = require('./index')
//const createPrismaMember = require('./index')
const memberLocationOnContext = 'request.member'
const bearerAccessToken = 'request.headers.authorization'
@@ -8,6 +8,36 @@ const bearerAccessToken = 'request.headers.authorization'
const ctxMember = ctx => _get(ctx, memberLocationOnContext)
const ctxToken = ctx => _get(ctx, bearerAccessToken)
const createPrismaMember = async function (ctx, info, idToken) {
console.log('createPrismaMember', idToken)
const member = await ctx.db.mutation.upsertMember({
where: {
auth0id: idToken.sub,
},
create: {
auth0id: idToken.sub,
nickname: idToken.nickname,
profile: {
create: {
email: idToken.email,
avatar: idToken.picture
}
}
},
update: {
auth0id: idToken.sub,
nickname: idToken.nickname,
profile: {
update: {
email: idToken.email,
avatar: idToken.picture
}
}
}
}, info)
return member
}
const isLoggedIn = async ctx => {
let member = ctxMember(ctx, memberLocationOnContext)
let token = ctxToken(ctx, bearerAccessToken)
+2 -2
View File
@@ -165,7 +165,7 @@ const resolvers = {
}, info)
},
async deleteTeam(parent, { id, owner }, ctx, info) {
ctx.db.mutation.deleteTeam({ where: { id, member: {where: { auth0id: owner } } } }, owner)
ctx.db.mutation.deleteTeam({ where: { id } }, info)
}
}
}
@@ -234,4 +234,4 @@ const options = {
server.start(options, () => console.log(`Server is running on http://localhost:4000${server.options.endpoint}`))
module.exports= { createPrismaMember }
module.exports= { createPrismaMember: createPrismaMember }
+1 -1
View File
@@ -18,7 +18,7 @@ type Query {
type Mutation {
authenticate(idToken: String!): Member
createTeam(name: String!, slug: String, owner: String): Team @isAuthenticated
deleteTeam(id: ID!, owner: String!): Team @isOwnerOrHasRole(type: "Member", roles: ["OWNER"])
deleteTeam(id: ID!): Team @isOwnerOrHasRole(type: "Member", roles: ["OWNER"])
updateProfile(data: MemberProfileInput): Member @isAuthenticated
}
@@ -51,6 +51,9 @@ export const actions = {
}
}
},
updateTeamView: () => [
action('toggleModal', '')
],
nav,
team,
algobot,
@@ -135,8 +135,7 @@ export const team = {
addTeamSuccess: result => [
action('form', { form: 'addTeamSuccess', message: 'Team Added!' }),
action('profile', result),
action('createTeam.input', ''),
action('toggleModal', '')
action('createTeam.input', '')
],
toggleModal: form => (state, actions) => {
return {
@@ -178,11 +177,11 @@ export const team = {
}),
action('deleteTeamSubmit', id)
],
deleteTeamSubmit: ({id, owner}) => async (state, actions) => {
console.log('deleteTeamSubmit: ', id, owner)
deleteTeamSubmit: ({ id }) => async (state, actions) => {
console.log('deleteTeamSubmit: ', id)
const result = await client.mutate({
mutation: DeleteTeamMutation,
variables: { id: id, owner: owner },
variables: { id: id },
options: {
update: (proxy, { data: { getTeamByOwner } }) => {
const data = proxy.readQuery({ GetTeamQuery })
@@ -2,8 +2,8 @@
import gql from 'graphql-tag'
export const DeleteTeamMutation = gql`
mutation deleteTeam($id: ID!, $owner: String!) {
deleteTeam(id: $id, owner: $owner) {
mutation deleteTeam($id: ID!) {
deleteTeam(id: $id) {
id
}
}