backend for export user data

This commit is contained in:
Moriz Wahl 2020-09-24 17:24:27 +02:00
parent 21a9094a25
commit a67b74cae0
3 changed files with 44 additions and 0 deletions

View File

@ -105,6 +105,7 @@ export default shield(
blockedUsers: isAuthenticated,
notifications: isAuthenticated,
Donations: isAuthenticated,
userData: isAuthenticated,
},
Mutation: {
'*': deny,

View File

@ -0,0 +1,33 @@
import log from './helpers/databaseLogger'
export default {
Query: {
userData: async (object, args, context, resolveInfo) => {
const id = context.user.id
const cypher = `
MATCH (u:User { id: $id })
WITH u AS user
MATCH (p:Post)
WHERE (p)<-[:COMMENTS]-(:Comment)<-[:WROTE]-(user)
OR (user)-[:WROTE]->(p)
RETURN { user: properties(user), posts: collect(properties(p)) }
AS result
`
const session = context.driver.session()
const resultPromise = session.readTransaction(async (transaction) => {
const transactionResponse = transaction.run(cypher, {
id,
})
return transactionResponse
})
try {
const result = await resultPromise
log(result.records[0].get('result'))
return result.records[0].get('result')
} finally {
session.close()
}
},
},
}

View File

@ -0,0 +1,10 @@
type UserData {
user: User!
posts: [Post]
}
type Query {
userData(
id: ID
): UserData
}