From ec8910d6ebf7eb8a3a3a70fbf4ae3e1fa9e9ecc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wolfgang=20Hu=C3=9F?= Date: Fri, 22 Nov 2019 15:12:00 +0100 Subject: [PATCH] Rename decide mutation to review --- .../src/middleware/permissionsMiddleware.js | 2 +- .../softDelete/softDeleteMiddleware.spec.js | 10 +-- backend/src/schema/resolvers/moderation.js | 31 ++++---- .../src/schema/resolvers/moderation.spec.js | 74 +++++++++---------- .../schema/resolvers/user_management.spec.js | 2 +- backend/src/schema/types/type/REPORTED.gql | 10 +-- backend/src/schema/types/type/REVIEWED.gql | 11 ++- backend/src/seed/seed-db.js | 10 +-- webapp/components/Modal/ConfirmModal.vue | 1 + webapp/components/Modal/DisableModal.vue | 3 +- webapp/components/Modal/ReportModal.vue | 1 + .../components/ReleaseModal/ReleaseModal.vue | 3 +- webapp/graphql/Moderation.js | 4 +- webapp/pages/moderation/index.vue | 4 +- 14 files changed, 84 insertions(+), 82 deletions(-) diff --git a/backend/src/middleware/permissionsMiddleware.js b/backend/src/middleware/permissionsMiddleware.js index f70dfeffa..dac3c58fa 100644 --- a/backend/src/middleware/permissionsMiddleware.js +++ b/backend/src/middleware/permissionsMiddleware.js @@ -147,7 +147,7 @@ const permissions = shield( shout: isAuthenticated, unshout: isAuthenticated, changePassword: isAuthenticated, - decide: isModerator, + review: isModerator, CreateComment: isAuthenticated, UpdateComment: isAuthor, DeleteComment: isAuthor, diff --git a/backend/src/middleware/softDelete/softDeleteMiddleware.spec.js b/backend/src/middleware/softDelete/softDeleteMiddleware.spec.js index 1e569b7f1..d5a4565fc 100644 --- a/backend/src/middleware/softDelete/softDeleteMiddleware.spec.js +++ b/backend/src/middleware/softDelete/softDeleteMiddleware.spec.js @@ -111,9 +111,9 @@ beforeAll(async () => { mutate = client.mutate authenticatedUser = await moderator.toJson() - const decideMutation = gql` + const reviewMutation = gql` mutation($resourceId: ID!, $disable: Boolean, $closed: Boolean) { - decide(resourceId: $resourceId, disable: $disable, closed: $closed) { + review(resourceId: $resourceId, disable: $disable, closed: $closed) { disable } } @@ -124,9 +124,9 @@ beforeAll(async () => { closed: false, } await Promise.all([ - mutate({ mutation: decideMutation, variables: { ...disableVariables, resourceId: 'c1' } }), - mutate({ mutation: decideMutation, variables: { ...disableVariables, resourceId: 'u2' } }), - mutate({ mutation: decideMutation, variables: { ...disableVariables, resourceId: 'p2' } }), + mutate({ mutation: reviewMutation, variables: { ...disableVariables, resourceId: 'c1' } }), + mutate({ mutation: reviewMutation, variables: { ...disableVariables, resourceId: 'u2' } }), + mutate({ mutation: reviewMutation, variables: { ...disableVariables, resourceId: 'p2' } }), ]) authenticatedUser = null }) diff --git a/backend/src/schema/resolvers/moderation.js b/backend/src/schema/resolvers/moderation.js index 594ca4b3c..b0572dd89 100644 --- a/backend/src/schema/resolvers/moderation.js +++ b/backend/src/schema/resolvers/moderation.js @@ -25,14 +25,15 @@ export default { Mutation: { - decide: async (_object, params, context, _resolveInfo) => { - // Wolle console.log('params: ', params) + review: async (_object, params, context, _resolveInfo) => { const { resourceId } = params - // Wolle console.log('resourceId: ', resourceId) let { disable, closed } = params + // Wolle console.log('disable: ', disable) + // console.log('closed: ', closed) disable = disable === undefined ? null : disable closed = closed === undefined ? null : closed // Wolle console.log('disable: ', disable) + // console.log('closed: ', closed) const { user: moderator, driver } = context let createdRelationshipWithNestedAttributes = null // return value @@ -134,10 +135,10 @@ export default { MERGE (claim)<-[review:REVIEWED]-(moderator) ON CREATE SET review.createdAt = $dateTime, review.updatedAt = review.createdAt, review.disable = CASE WHEN $disable IS NULL - THEN false + THEN claim.disable ELSE $disable END, review.closed = CASE WHEN $closed IS NULL - THEN false + THEN claim.closed ELSE $closed END ON MATCH SET review.updatedAt = $dateTime, @@ -151,7 +152,7 @@ export default { SET claim.disable = review.disable, claim.closed = review.closed SET resource.disabled = review.disable - RETURN moderator, review, claim {.id}, resource, labels(resource)[0] AS type + RETURN moderator, review, claim, resource, labels(resource)[0] AS type ` // Wolle console.log('cypher: ', cypher) @@ -191,18 +192,18 @@ export default { }) const txResult = await mutateDecisionWriteTxResultPromise if (!txResult[0]) return null - // const { decision, resource, moderator: moderatorInResult, type } = txResult[0] - // createdRelationshipWithNestedAttributes = { - // ...decision.properties, - // moderator: moderatorInResult.properties, - // type, - // post: null, - // comment: null, - // user: null, - // } const { moderator: moderatorInResult, review, claim, resource, type } = txResult[0] + // Wolle console.log('review.properties.disable: ', review.properties.disable) + // console.log('claim.properties.disable: ', claim.properties.disable) + // console.log('resource.properties.disabled: ', resource.properties.disabled) + // console.log('review.properties.closed: ', review.properties.closed) + // console.log('claim.properties.closed: ', claim.properties.closed) createdRelationshipWithNestedAttributes = { ...review.properties, + claimId: claim.properties.id, + claimUpdatedAt: claim.properties.updatedAt, + claimDisable: claim.properties.disable, + claimClosed: claim.properties.closed, moderator: moderatorInResult.properties, claimId: claim.id, type, diff --git a/backend/src/schema/resolvers/moderation.spec.js b/backend/src/schema/resolvers/moderation.spec.js index e819e74d1..24d2ff280 100644 --- a/backend/src/schema/resolvers/moderation.spec.js +++ b/backend/src/schema/resolvers/moderation.spec.js @@ -17,9 +17,9 @@ let query, moderator, nonModerator -const decideMutation = gql` +const reviewMutation = gql` mutation($resourceId: ID!, $disable: Boolean, $closed: Boolean) { - decide(resourceId: $resourceId, disable: $disable, closed: $closed) { + review(resourceId: $resourceId, disable: $disable, closed: $closed) { post { id } @@ -96,11 +96,11 @@ describe('moderate resources', () => { await factory.cleanDatabase() }) - describe('decide to disable', () => { + describe('review to disable', () => { describe('unauthenticated', () => { it('throws authorization error', async () => { await expect( - mutate({ mutation: decideMutation, variables: disableVariables }), + mutate({ mutation: reviewMutation, variables: disableVariables }), ).resolves.toMatchObject({ errors: [{ message: 'Not Authorised!' }], }) @@ -121,7 +121,7 @@ describe('moderate resources', () => { it('throws authorization error', async () => { await expect( - mutate({ mutation: decideMutation, variables: disableVariables }), + mutate({ mutation: reviewMutation, variables: disableVariables }), ).resolves.toMatchObject({ errors: [{ message: 'Not Authorised!' }], }) @@ -144,9 +144,9 @@ describe('moderate resources', () => { it('returns null', async () => { await expect( - mutate({ mutation: decideMutation, variables: disableVariables }), + mutate({ mutation: reviewMutation, variables: disableVariables }), ).resolves.toMatchObject({ - data: { decide: null }, + data: { review: null }, }) }) }) @@ -165,9 +165,9 @@ describe('moderate resources', () => { resourceId: 'comment-id', } await expect( - mutate({ mutation: decideMutation, variables: disableVariables }), + mutate({ mutation: reviewMutation, variables: disableVariables }), ).resolves.toMatchObject({ - data: { decide: { comment: { id: 'comment-id' } } }, + data: { review: { comment: { id: 'comment-id' } } }, errors: undefined, }) }) @@ -190,9 +190,9 @@ describe('moderate resources', () => { query({ query: commentQuery, variables: resourceVariables }), ).resolves.toMatchObject(before) await expect( - mutate({ mutation: decideMutation, variables: disableVariables }), + mutate({ mutation: reviewMutation, variables: disableVariables }), ).resolves.toMatchObject({ - data: { decide: { comment: { id: 'comment-id' } } }, + data: { review: { comment: { id: 'comment-id' } } }, }) await expect( query({ query: commentQuery, variables: resourceVariables }), @@ -214,9 +214,9 @@ describe('moderate resources', () => { query({ query: commentQuery, variables: resourceVariables }), ).resolves.toMatchObject(before) await expect( - mutate({ mutation: decideMutation, variables: disableVariables }), + mutate({ mutation: reviewMutation, variables: disableVariables }), ).resolves.toMatchObject({ - data: { decide: { comment: { id: 'comment-id' } } }, + data: { review: { comment: { id: 'comment-id' } } }, }) await expect( query({ query: commentQuery, variables: resourceVariables }), @@ -237,9 +237,9 @@ describe('moderate resources', () => { resourceId: 'sample-post-id', } await expect( - mutate({ mutation: decideMutation, variables: disableVariables }), + mutate({ mutation: reviewMutation, variables: disableVariables }), ).resolves.toMatchObject({ - data: { decide: { post: { id: 'sample-post-id' } } }, + data: { review: { post: { id: 'sample-post-id' } } }, }) }) @@ -262,9 +262,9 @@ describe('moderate resources', () => { query({ query: postQuery, variables: resourceVariables }), ).resolves.toMatchObject(before) await expect( - mutate({ mutation: decideMutation, variables: disableVariables }), + mutate({ mutation: reviewMutation, variables: disableVariables }), ).resolves.toMatchObject({ - data: { decide: { post: { id: 'sample-post-id' } } }, + data: { review: { post: { id: 'sample-post-id' } } }, }) await expect( query({ query: postQuery, variables: resourceVariables }), @@ -286,9 +286,9 @@ describe('moderate resources', () => { query({ query: postQuery, variables: resourceVariables }), ).resolves.toMatchObject(before) await expect( - mutate({ mutation: decideMutation, variables: disableVariables }), + mutate({ mutation: reviewMutation, variables: disableVariables }), ).resolves.toMatchObject({ - data: { decide: { post: { id: 'sample-post-id' } } }, + data: { review: { post: { id: 'sample-post-id' } } }, }) await expect( query({ query: postQuery, variables: resourceVariables }), @@ -307,7 +307,7 @@ describe('moderate resources', () => { resourceId: 'sample-post-id', } await expect( - mutate({ mutation: decideMutation, variables: enableVariables }), + mutate({ mutation: reviewMutation, variables: enableVariables }), ).resolves.toMatchObject({ errors: [{ message: 'Not Authorised!' }], }) @@ -332,7 +332,7 @@ describe('moderate resources', () => { resourceId: 'sample-post-id', } await expect( - mutate({ mutation: decideMutation, variables: enableVariables }), + mutate({ mutation: reviewMutation, variables: enableVariables }), ).resolves.toMatchObject({ errors: [{ message: 'Not Authorised!' }], }) @@ -355,9 +355,9 @@ describe('moderate resources', () => { resourceId: 'sample-tag-id', } await expect( - mutate({ mutation: decideMutation, variables: enableVariables }), + mutate({ mutation: reviewMutation, variables: enableVariables }), ).resolves.toMatchObject({ - data: { decide: null }, + data: { review: null }, }) }) }) @@ -378,14 +378,14 @@ describe('moderate resources', () => { await factory.create('Comment', { id: 'comment-id', }) - await mutate({ mutation: decideMutation, variables: disableVariables }) + await mutate({ mutation: reviewMutation, variables: disableVariables }) }) it('returns enabled resource id', async () => { await expect( - mutate({ mutation: decideMutation, variables: enableVariables }), + mutate({ mutation: reviewMutation, variables: enableVariables }), ).resolves.toMatchObject({ - data: { decide: { comment: { id: 'comment-id' } } }, + data: { review: { comment: { id: 'comment-id' } } }, }) }) @@ -397,9 +397,9 @@ describe('moderate resources', () => { } await expect( - mutate({ mutation: decideMutation, variables: enableVariables }), + mutate({ mutation: reviewMutation, variables: enableVariables }), ).resolves.toMatchObject({ - data: { decide: { comment: { id: 'comment-id' } } }, + data: { review: { comment: { id: 'comment-id' } } }, }) await expect( query({ query: commentQuery, variables: resourceVariables }), @@ -412,9 +412,9 @@ describe('moderate resources', () => { } await expect( - mutate({ mutation: decideMutation, variables: enableVariables }), + mutate({ mutation: reviewMutation, variables: enableVariables }), ).resolves.toMatchObject({ - data: { decide: { comment: { id: 'comment-id' } } }, + data: { review: { comment: { id: 'comment-id' } } }, }) await expect( query({ query: commentQuery, variables: resourceVariables }), @@ -436,14 +436,14 @@ describe('moderate resources', () => { await factory.create('Post', { id: 'post-id', }) - await mutate({ mutation: decideMutation, variables: disableVariables }) + await mutate({ mutation: reviewMutation, variables: disableVariables }) }) it('returns enabled resource id', async () => { await expect( - mutate({ mutation: decideMutation, variables: enableVariables }), + mutate({ mutation: reviewMutation, variables: enableVariables }), ).resolves.toMatchObject({ - data: { decide: { post: { id: 'post-id' } } }, + data: { review: { post: { id: 'post-id' } } }, }) }) @@ -452,9 +452,9 @@ describe('moderate resources', () => { data: { Post: [{ id: 'post-id', reviewedByModerator: { id: 'moderator-id' } }] }, } await expect( - mutate({ mutation: decideMutation, variables: enableVariables }), + mutate({ mutation: reviewMutation, variables: enableVariables }), ).resolves.toMatchObject({ - data: { decide: { post: { id: 'post-id' } } }, + data: { review: { post: { id: 'post-id' } } }, }) await expect( query({ query: postQuery, variables: resourceVariables }), @@ -467,9 +467,9 @@ describe('moderate resources', () => { } await expect( - mutate({ mutation: decideMutation, variables: enableVariables }), + mutate({ mutation: reviewMutation, variables: enableVariables }), ).resolves.toMatchObject({ - data: { decide: { post: { id: 'post-id' } } }, + data: { review: { post: { id: 'post-id' } } }, }) await expect( query({ query: postQuery, variables: resourceVariables }), diff --git a/backend/src/schema/resolvers/user_management.spec.js b/backend/src/schema/resolvers/user_management.spec.js index 79dcb1c76..8b12b4939 100644 --- a/backend/src/schema/resolvers/user_management.spec.js +++ b/backend/src/schema/resolvers/user_management.spec.js @@ -20,7 +20,7 @@ const disable = async id => { await mutate({ mutation: gql` mutation($resourceId: ID!, $disable: Boolean, $closed: Boolean) { - decide(resourceId: $resourceId, disable: $disable, closed: $closed) { + review(resourceId: $resourceId, disable: $disable, closed: $closed) { disable } } diff --git a/backend/src/schema/types/type/REPORTED.gql b/backend/src/schema/types/type/REPORTED.gql index 75395de89..c05df094d 100644 --- a/backend/src/schema/types/type/REPORTED.gql +++ b/backend/src/schema/types/type/REPORTED.gql @@ -8,16 +8,10 @@ type REPORTED { claimUpdatedAt: String! claimClosed: Boolean! - # Wolle decision: DECIDED - # @cypher(statement: "MATCH (resource)<-[decision:DECIDED {uuid: $decisionUuid}]-(user:User) RETURN decision") - submitter: User - @cypher(statement: "MATCH (resource)<-[:REPORTED]-(user:User) RETURN user") - # not yet supported - # resource: ReportResource - # @cypher(statement: "MATCH (resource)<-[:REPORTED]-(user:User) RETURN resource") + # @cypher(statement: "MATCH (resource)<-[:REPORTED]-(user:User) RETURN user") type: String - @cypher(statement: "MATCH (resource)<-[:REPORTED]-(user:User) RETURN labels(resource)[0]") + # @cypher(statement: "MATCH (resource)<-[:REPORTED]-(user:User) RETURN labels(resource)[0]") user: User post: Post comment: Comment diff --git a/backend/src/schema/types/type/REVIEWED.gql b/backend/src/schema/types/type/REVIEWED.gql index 52819e7a9..ce8aebf3d 100644 --- a/backend/src/schema/types/type/REVIEWED.gql +++ b/backend/src/schema/types/type/REVIEWED.gql @@ -5,13 +5,16 @@ type REVIEWED { # reasonDescription: String disable: Boolean! closed: Boolean! + claimId: ID! - # Wolle last: Boolean! + claimDisable: Boolean! + claimUpdatedAt: String! + claimClosed: Boolean! moderator: User - # @cypher(statement: "MATCH (resource)<-[:DECIDED]-(moderator:User) RETURN moderator") + # Wolle @cypher(statement: "MATCH (resource)<-[:DECIDED]-(moderator:User) RETURN moderator") # not yet supported - # resource: ReportResource + # Wolle resource: ReportResource # @cypher(statement: "MATCH (resource)<-[:DECIDED]-(:User) RETURN resource") type: String # @cypher(statement: "MATCH (resource)<-[:DECIDED]-(user:User) RETURN labels(resource)[0]") @@ -21,5 +24,5 @@ type REVIEWED { } type Mutation { - decide(resourceId: ID!, disable: Boolean, closed: Boolean): REVIEWED + review(resourceId: ID!, disable: Boolean, closed: Boolean): REVIEWED } diff --git a/backend/src/seed/seed-db.js b/backend/src/seed/seed-db.js index b2423f7a6..990b749c3 100644 --- a/backend/src/seed/seed-db.js +++ b/backend/src/seed/seed-db.js @@ -737,10 +737,10 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl'] ]) authenticatedUser = null - // only decide after report !!! - const decideMutation = gql` + // only review after report !!! + const reviewMutation = gql` mutation($resourceId: ID!, $disable: Boolean, $closed: Boolean) { - decide(resourceId: $resourceId, disable: $disable, closed: $closed) { + review(resourceId: $resourceId, disable: $disable, closed: $closed) { disable } } @@ -753,14 +753,14 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl'] authenticatedUser = await bobDerBaumeister.toJson() await Promise.all([ mutate({ - mutation: decideMutation, + mutation: reviewMutation, variables: { ...disableVariables, resourceId: 'p11', }, }), mutate({ - mutation: decideMutation, + mutation: reviewMutation, variables: { ...disableVariables, resourceId: 'c5', diff --git a/webapp/components/Modal/ConfirmModal.vue b/webapp/components/Modal/ConfirmModal.vue index 147258849..71f0dc40e 100644 --- a/webapp/components/Modal/ConfirmModal.vue +++ b/webapp/components/Modal/ConfirmModal.vue @@ -78,6 +78,7 @@ export default { }, 1500) } catch (err) { this.success = false + this.isOpen = false } finally { this.loading = false } diff --git a/webapp/components/Modal/DisableModal.vue b/webapp/components/Modal/DisableModal.vue index a231b4e2b..d80ec0f55 100644 --- a/webapp/components/Modal/DisableModal.vue +++ b/webapp/components/Modal/DisableModal.vue @@ -55,7 +55,7 @@ export default { await this.$apollo.mutate({ mutation: gql` mutation($resourceId: ID!, $disable: Boolean, $closed: Boolean) { - decide(resourceId: $resourceId, disable: $disable, closed: $closed) { + review(resourceId: $resourceId, disable: $disable, closed: $closed) { disable } } @@ -69,6 +69,7 @@ export default { }, 1000) } catch (err) { this.$toast.error(err.message) + this.isOpen = false } }, }, diff --git a/webapp/components/Modal/ReportModal.vue b/webapp/components/Modal/ReportModal.vue index 9b155e8b6..00fed2646 100644 --- a/webapp/components/Modal/ReportModal.vue +++ b/webapp/components/Modal/ReportModal.vue @@ -149,6 +149,7 @@ export default { default: this.$toast.error(err.message) } + this.isOpen = false this.loading = false }) }, diff --git a/webapp/components/ReleaseModal/ReleaseModal.vue b/webapp/components/ReleaseModal/ReleaseModal.vue index f098dd2c4..82f800ddb 100644 --- a/webapp/components/ReleaseModal/ReleaseModal.vue +++ b/webapp/components/ReleaseModal/ReleaseModal.vue @@ -54,7 +54,7 @@ export default { await this.$apollo.mutate({ mutation: gql` mutation($resourceId: ID!, $disable: Boolean, $closed: Boolean) { - decide(resourceId: $resourceId, disable: $disable, closed: $closed) { + review(resourceId: $resourceId, disable: $disable, closed: $closed) { disable } } @@ -68,6 +68,7 @@ export default { }, 1000) } catch (err) { this.$toast.error(err.message) + this.isOpen = false } }, }, diff --git a/webapp/graphql/Moderation.js b/webapp/graphql/Moderation.js index 16e471144..3300f2915 100644 --- a/webapp/graphql/Moderation.js +++ b/webapp/graphql/Moderation.js @@ -111,10 +111,10 @@ export const reportMutation = () => { ` } -export const decideMutation = () => { +export const reviewMutation = () => { return gql` mutation($resourceId: ID!, $disable: Boolean, $closed: Boolean) { - decide(resourceId: $resourceId, disable: $disable, closed: $closed) { + review(resourceId: $resourceId, disable: $disable, closed: $closed) { disable } } diff --git a/webapp/pages/moderation/index.vue b/webapp/pages/moderation/index.vue index 82c6763c0..9478bd886 100644 --- a/webapp/pages/moderation/index.vue +++ b/webapp/pages/moderation/index.vue @@ -168,7 +168,7 @@