mirror of
https://github.com/IT4Change/Ocelot-Social.git
synced 2025-12-13 07:45:56 +00:00
add resolver for save active categories
This commit is contained in:
parent
572377acfd
commit
fc6d544ea7
@ -269,6 +269,46 @@ export default {
|
||||
session.close()
|
||||
}
|
||||
},
|
||||
saveCategorySettings: async (object, args, context, resolveInfo) => {
|
||||
const { activeCategories } = args
|
||||
const {
|
||||
user: { id },
|
||||
} = context
|
||||
|
||||
const session = context.driver.session()
|
||||
await session.writeTransaction((transaction) => {
|
||||
return transaction.run(
|
||||
`
|
||||
MATCH (user:User { id: $id })-[previousCategories:NOT_INTERESTED_IN]->(category:Category)
|
||||
DELETE previousCategories
|
||||
RETURN user, category
|
||||
`,
|
||||
{ id },
|
||||
)
|
||||
})
|
||||
|
||||
const writeTxResultPromise = session.writeTransaction(async (transaction) => {
|
||||
const saveCategorySettingsResponse = await transaction.run(
|
||||
`
|
||||
MATCH (category:Category) WHERE NOT category.id IN $activeCategories
|
||||
MATCH (user:User { id: $id })
|
||||
MERGE (user)-[r:NOT_INTERESTED_IN]->(category)
|
||||
RETURN user, r, category
|
||||
`,
|
||||
{ id, activeCategories },
|
||||
)
|
||||
const [user] = await saveCategorySettingsResponse.records.map((record) =>
|
||||
record.get('user'),
|
||||
)
|
||||
return user
|
||||
})
|
||||
try {
|
||||
await writeTxResultPromise
|
||||
return true
|
||||
} finally {
|
||||
session.close()
|
||||
}
|
||||
},
|
||||
},
|
||||
User: {
|
||||
email: async (parent, params, context, resolveInfo) => {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user