44 lines
1.3 KiB
JavaScript

import { neo4jgraphql } from 'neo4j-graphql-js'
import fileUpload from './fileUpload'
export default {
Mutation: {
UpdateUser: async (object, params, context, resolveInfo) => {
params = await fileUpload(params, { file: 'avatarUpload', url: 'avatar' })
return neo4jgraphql(object, params, context, resolveInfo, false)
},
CreateUser: async (object, params, context, resolveInfo) => {
params = await fileUpload(params, { file: 'avatarUpload', url: 'avatar' })
return neo4jgraphql(object, params, context, resolveInfo, false)
},
DeleteUser: async (object, params, context, resolveInfo) => {
const { comments, posts } = params
const session = context.driver.session()
if (comments) {
await session.run(
`
MATCH (comments:Comment)<-[:WROTE]-(author:User {id: $userId})
DETACH DELETE comments
RETURN author`,
{
userId: context.user.id,
},
)
}
if (posts) {
await session.run(
`
MATCH (posts:Post)<-[:WROTE]-(author:User {id: $userId})
DETACH DELETE posts
RETURN author`,
{
userId: context.user.id,
},
)
}
session.close()
return neo4jgraphql(object, params, context, resolveInfo, false)
},
},
}