working pinGroupPost mutation (permissions not included)

This commit is contained in:
Ulf Gebhardt 2025-12-10 23:21:26 +01:00
parent ccb8727a09
commit 825d3dff80
Signed by: ulfgebhardt
GPG Key ID: DA6B843E748679C9
3 changed files with 10 additions and 9 deletions

View File

@ -485,7 +485,7 @@ export default {
const result = await context.database.query({
query: `
MATCH (:User)-[pinned:GROUP_PINNED]->(pinnedPosts:Post)-[:IN]->(:Group {id: $group.id})
RETURN count(pinnedPosts) as count`,
RETURN toString(count(pinnedPosts)) as count`,
variables: { group: parent },
})
return result.records[0].get('count')

View File

@ -467,11 +467,10 @@ export default {
if (config.MAX_PINNED_POSTS === 1) {
await context.database.write({
query: `
MATCH (post:Post {id: $postId})-[:IN]->(group:Group)
MATCH (post:Post {id: $params.id})-[:IN]->(group:Group)
MATCH (:User)-[pinned:GROUP_PINNED]->(:Post)-[:IN]->(:Group {id: group.id})
DELETE pinned
RETURN post`,
variables: { user: context.user, postId: params.id },
DELETE pinned`,
variables: { user: context.user, params },
})
// If MAX_PINNED_POSTS !== 1 -> Check if max is reached
} else {
@ -479,8 +478,8 @@ export default {
query: `
MATCH (post:Post {id: $params.id})-[:IN]->(group:Group)
MATCH (:User)-[pinned:GROUP_PINNED]->(pinnedPosts:Post)-[:IN]->(:Group {id: group.id})
RETURN count(pinnedPosts) as count`,
variables: { user: context.user },
RETURN toString(count(pinnedPosts)) as count`,
variables: { user: context.user, params },
})
if (result.records[0].get('count') >= config.MAX_PINNED_POSTS) {
throw new Error('Reached maxed pinned posts already. Unpin a post first-')
@ -493,8 +492,8 @@ export default {
MATCH (user:User {id: $user.id})
MATCH (post:Post {id: $params.id})-[:IN]->(group:Group)
MERGE (user)-[pinned:GROUP_PINNED{createdAt: toString(datetime())}]->(post)
RETURN post, pinned.createdAt as pinnedAt`,
variables: { user: context.user },
RETURN post {.*, pinnedAt: pinned.createdAt}`,
variables: { user: context.user, params },
})
// Return post

View File

@ -485,6 +485,8 @@ export default shield(
VerifyEmailAddress: isAuthenticated,
pinPost: isAdmin,
unpinPost: isAdmin,
pinGroupPost: isAuthenticated, // TODO: permissions
unpinGroupPost: isAuthenticated, // TODO: permissions
pushPost: isAdmin,
unpushPost: isAdmin,
UpdateDonations: isAdmin,