Added file "backend/src/resolvers/follow.js"

WIP !!! In development! Not able to run now!
This commit is contained in:
Wolfgang Huß 2019-04-04 18:29:50 +02:00
parent 262655a1d8
commit 97707f7a20

View File

@ -0,0 +1,49 @@
export default {
Mutation: {
follow: async (_object, params, context, _resolveInfo) => {
const { followedId, followedType } = params
const session = context.driver.session()
let sessionRes = await session.run(
`MATCH (n {id: $id}), (u:User {id: $cypherParams.currentUserId})
WHERE $type IN labels(n) AND NOT $id = $cypherParams.currentUserId
MERGE (u)-[r:FOLLOWS]->(n)
RETURN COUNT(r) > 0`,
{
badgeId: fromBadgeId,
rewardedUserId: toUserId
}
)
const [rewardedUser] = sessionRes.records.map(record => {
return record.get('rewardedUser')
})
session.close()
return rewardedUser.id
},
unfollow: async (_object, params, context, _resolveInfo) => {
const { fromBadgeId, toUserId } = params
const session = context.driver.session()
let sessionRes = await session.run(
`MATCH (badge:Badge {id: $badgeId})-[reward:REWARDED]->(rewardedUser:User {id: $rewardedUserId})
DELETE reward
RETURN rewardedUser {.id}`,
{
badgeId: fromBadgeId,
rewardedUserId: toUserId
}
)
const [rewardedUser] = sessionRes.records.map(record => {
return record.get('rewardedUser')
})
session.close()
return rewardedUser.id
}
}
}