add pagination to Group query

This commit is contained in:
Moriz Wahl 2022-10-26 14:27:08 +02:00
parent 3bf26de650
commit 6ec8f05904

View File

@ -14,7 +14,9 @@ import { createOrUpdateLocations } from './users/location'
export default {
Query: {
Group: async (_object, params, context, _resolveInfo) => {
const { isMember, id, slug } = params
const { isMember, id, slug, first, offset } = params
let pagination = ''
if (first !== undefined && offset !== undefined) pagination = `SKIP ${offset} LIMIT ${first}`
const matchParams = { id, slug }
removeUndefinedNullValuesFromObject(matchParams)
const session = context.driver.session()
@ -27,6 +29,7 @@ export default {
WITH group, membership
WHERE (group.groupType IN ['public', 'closed']) OR (group.groupType = 'hidden' AND membership.role IN ['usual', 'admin', 'owner'])
RETURN group {.*, myRole: membership.role}
${pagination}
`
} else {
if (isMember === false) {
@ -36,6 +39,7 @@ export default {
WITH group
WHERE group.groupType IN ['public', 'closed']
RETURN group {.*, myRole: NULL}
${pagination}
`
} else {
groupCypher = `
@ -44,6 +48,7 @@ export default {
WITH group, membership
WHERE (group.groupType IN ['public', 'closed']) OR (group.groupType = 'hidden' AND membership.role IN ['usual', 'admin', 'owner'])
RETURN group {.*, myRole: membership.role}
${pagination}
`
}
}