2019-11-26 15:35:48 +01:00

22 lines
770 B
JavaScript

export async function queryReviewedByModerator(label, parent, context) {
if (typeof parent.reviewedByModerator !== 'undefined') return parent.reviewedByModerator
const { id } = parent
const statement = `
MATCH (resource {id: $id})<-[:BELONGS_TO]-(report:Report)<-[review:REVIEWED]-(moderator:User)
WHERE $label IN labels(resource)
RETURN moderator
ORDER BY report.updatedAt DESC, review.updatedAt DESC
LIMIT 1
`
let reviewedByModerator
const session = context.driver.session()
try {
const result = await session.run(statement, { label, id })
const [firstElement] = result.records.map(r => r.get('moderator').properties)
reviewedByModerator = firstElement
} finally {
session.close()
}
return reviewedByModerator
}