diff --git a/backend/src/schema/resolvers/groups.js b/backend/src/schema/resolvers/groups.js index caed48bd0..c6248c0c6 100644 --- a/backend/src/schema/resolvers/groups.js +++ b/backend/src/schema/resolvers/groups.js @@ -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} ` } }