mirror of
https://github.com/IT4Change/Ocelot-Social.git
synced 2025-12-13 07:45:56 +00:00
Refactor report mutation
This commit is contained in:
parent
9d4c1b8753
commit
240bd84b45
@ -5,6 +5,7 @@ export default {
|
||||
report: async (_parent, params, context, _resolveInfo) => {
|
||||
let createdRelationshipWithNestedAttributes
|
||||
const { resourceId, reasonCategory, reasonDescription } = params
|
||||
// Wolle console.log('resourceId: ', resourceId)
|
||||
const { driver, user } = context
|
||||
const session = driver.session()
|
||||
const writeTxResultPromise = session.writeTransaction(async txc => {
|
||||
@ -12,15 +13,15 @@ export default {
|
||||
`
|
||||
MATCH (submitter:User {id: $submitterId})
|
||||
MATCH (resource {id: $resourceId})
|
||||
WHERE resource:User OR resource:Comment OR resource:Post
|
||||
//CREATE (resource)<-[report:REPORTED {createdAt: $createdAt, reasonCategory: $reasonCategory, reasonDescription: $reasonDescription, closed: false}]-(submitter)
|
||||
MATCH (resource)<-[:FLAGGED]-(case:Case {closed: false})
|
||||
MERGE (resource)<-[:FLAGGED]-(case:Case)
|
||||
ON CREATE SET case.id = randomUUID(), case.updatedAt = toString(datetime()), case.createdAt = case.updatedAt, case.disable = true, case.closed = false
|
||||
//WITH submitter, resource
|
||||
CREATE (case)<-[report:REPORTED {createdAt: $createdAt, reasonCategory: $reasonCategory, reasonDescription: $reasonDescription}]-(submitter)
|
||||
CREATE (resource)<-[report:REPORTED {createdAt: $createdAt, reasonCategory: $reasonCategory, reasonDescription: $reasonDescription, closed: false}]-(submitter)
|
||||
RETURN report, submitter, resource, labels(resource)[0] as type
|
||||
WHERE resource:User OR resource:Post OR resource:Comment
|
||||
// no open caseFolder, create one
|
||||
MERGE (resource)<-[:FLAGGED]-(caseFolder:CaseFolder {closed: false})
|
||||
ON CREATE SET caseFolder.id = randomUUID(), caseFolder.createdAt = $createdAt, caseFolder.updatedAt = caseFolder.createdAt, caseFolder.disable = false, caseFolder.closed = false
|
||||
// Create report on caseFolder
|
||||
WITH submitter, resource, caseFolder
|
||||
CREATE (caseFolder)<-[report:REPORTED {createdAt: $createdAt, reasonCategory: $reasonCategory, reasonDescription: $reasonDescription}]-(submitter)
|
||||
|
||||
RETURN caseFolder {.id}, submitter, report, resource, labels(resource)[0] AS type
|
||||
`,
|
||||
{
|
||||
resourceId,
|
||||
@ -31,18 +32,22 @@ export default {
|
||||
},
|
||||
)
|
||||
return reportRelationshipTransactionResponse.records.map(record => ({
|
||||
report: record.get('report'),
|
||||
caseFolder: record.get('caseFolder'),
|
||||
submitter: record.get('submitter'),
|
||||
report: record.get('report'),
|
||||
resource: record.get('resource').properties,
|
||||
type: record.get('type'),
|
||||
}))
|
||||
})
|
||||
try {
|
||||
// Wolle console.log('reasonCategory: ', reasonCategory)
|
||||
const txResult = await writeTxResultPromise
|
||||
// Wolle console.log('txResult: ', txResult)
|
||||
if (!txResult[0]) return null
|
||||
const { report, submitter, resource, type } = txResult[0]
|
||||
const { caseFolder, submitter, report, resource, type } = txResult[0]
|
||||
createdRelationshipWithNestedAttributes = {
|
||||
...report.properties,
|
||||
caseFolderId: caseFolder.id,
|
||||
post: null,
|
||||
comment: null,
|
||||
user: null,
|
||||
|
||||
@ -2,11 +2,12 @@ type REPORTED {
|
||||
createdAt: String!
|
||||
reasonCategory: ReasonCategory!
|
||||
reasonDescription: String!
|
||||
closed: Boolean!
|
||||
decisionUuid: ID
|
||||
caseFolderId: ID!
|
||||
closed: Boolean # ! Wolle comlete still needed?
|
||||
decisionUuid: ID # Wolle still needed?
|
||||
|
||||
decisionDisable: Boolean
|
||||
decisionAt: String
|
||||
decisionDisable: Boolean # Wolle still needed?
|
||||
decisionAt: String # Wolle still needed?
|
||||
|
||||
# Wolle decision: DECIDED
|
||||
# @cypher(statement: "MATCH (resource)<-[decision:DECIDED {uuid: $decisionUuid}]-(user:User) RETURN decision")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user