Rename decide mutation to review

This commit is contained in:
Wolfgang Huß 2019-11-22 15:12:00 +01:00
parent 02bdc5ea5d
commit ec8910d6eb
14 changed files with 84 additions and 82 deletions

View File

@ -147,7 +147,7 @@ const permissions = shield(
shout: isAuthenticated,
unshout: isAuthenticated,
changePassword: isAuthenticated,
decide: isModerator,
review: isModerator,
CreateComment: isAuthenticated,
UpdateComment: isAuthor,
DeleteComment: isAuthor,

View File

@ -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
})

View File

@ -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,

View File

@ -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 }),

View File

@ -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
}
}

View File

@ -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

View File

@ -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
}

View File

@ -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',

View File

@ -78,6 +78,7 @@ export default {
}, 1500)
} catch (err) {
this.success = false
this.isOpen = false
} finally {
this.loading = false
}

View File

@ -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
}
},
},

View File

@ -149,6 +149,7 @@ export default {
default:
this.$toast.error(err.message)
}
this.isOpen = false
this.loading = false
})
},

View File

@ -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
}
},
},

View File

@ -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
}
}

View File

@ -168,7 +168,7 @@
<script>
import HcEmpty from '~/components/Empty/Empty'
import HcUser from '~/components/User/User'
import { reportListQuery, decideMutation } from '~/graphql/Moderation.js'
import { reportListQuery, reviewMutation } from '~/graphql/Moderation.js'
export default {
components: {
@ -253,7 +253,7 @@ export default {
async confirmCallback(resourceId) {
this.$apollo
.mutate({
mutation: decideMutation(),
mutation: reviewMutation(),
variables: { resourceId, closed: true },
})
.then(() => {