diff --git a/backend/src/bootstrap/neo4j.js b/backend/src/bootstrap/neo4j.js
index f9e3a997d..404e8a2c0 100644
--- a/backend/src/bootstrap/neo4j.js
+++ b/backend/src/bootstrap/neo4j.js
@@ -1,15 +1,17 @@
import { v1 as neo4j } from 'neo4j-driver'
import CONFIG from './../config'
-import setupNeode from './neode'
+import Neode from 'neode'
+import models from '../models'
let driver
+const defaultOptions = {
+ uri: CONFIG.NEO4J_URI,
+ username: CONFIG.NEO4J_USERNAME,
+ password: CONFIG.NEO4J_PASSWORD,
+}
export function getDriver(options = {}) {
- const {
- uri = CONFIG.NEO4J_URI,
- username = CONFIG.NEO4J_USERNAME,
- password = CONFIG.NEO4J_PASSWORD,
- } = options
+ const { uri, username, password } = { ...defaultOptions, ...options }
if (!driver) {
driver = neo4j.driver(uri, neo4j.auth.basic(username, password))
}
@@ -17,10 +19,11 @@ export function getDriver(options = {}) {
}
let neodeInstance
-export function neode() {
+export function getNeode(options = {}) {
if (!neodeInstance) {
- const { NEO4J_URI: uri, NEO4J_USERNAME: username, NEO4J_PASSWORD: password } = CONFIG
- neodeInstance = setupNeode({ uri, username, password })
+ const { uri, username, password } = { ...defaultOptions, ...options }
+ neodeInstance = new Neode(uri, username, password).with(models)
+ return neodeInstance
}
return neodeInstance
}
diff --git a/backend/src/bootstrap/neode.js b/backend/src/bootstrap/neode.js
deleted file mode 100644
index 65a2074be..000000000
--- a/backend/src/bootstrap/neode.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import Neode from 'neode'
-import models from '../models'
-
-export default function setupNeode(options) {
- const { uri, username, password } = options
- const neodeInstance = new Neode(uri, username, password)
- neodeInstance.with(models)
- return neodeInstance
-}
diff --git a/backend/src/jwt/decode.spec.js b/backend/src/jwt/decode.spec.js
index 9ea858304..7aa703d97 100644
--- a/backend/src/jwt/decode.spec.js
+++ b/backend/src/jwt/decode.spec.js
@@ -1,5 +1,5 @@
import Factory from '../seed/factories/index'
-import { getDriver, neode as getNeode } from '../bootstrap/neo4j'
+import { getDriver, getNeode } from '../bootstrap/neo4j'
import decode from './decode'
const factory = Factory()
diff --git a/backend/src/middleware/hashtags/hashtagsMiddleware.spec.js b/backend/src/middleware/hashtags/hashtagsMiddleware.spec.js
index 6e97f34c4..6a7be2543 100644
--- a/backend/src/middleware/hashtags/hashtagsMiddleware.spec.js
+++ b/backend/src/middleware/hashtags/hashtagsMiddleware.spec.js
@@ -1,7 +1,7 @@
import { gql } from '../../helpers/jest'
import Factory from '../../seed/factories'
import { createTestClient } from 'apollo-server-testing'
-import { neode, getDriver } from '../../bootstrap/neo4j'
+import { getNeode, getDriver } from '../../bootstrap/neo4j'
import createServer from '../../server'
let server
@@ -11,7 +11,7 @@ let hashtagingUser
let authenticatedUser
const factory = Factory()
const driver = getDriver()
-const instance = neode()
+const neode = getNeode()
const categoryIds = ['cat9']
const createPostMutation = gql`
mutation($id: ID, $title: String!, $postContent: String!, $categoryIds: [ID]!) {
@@ -36,7 +36,7 @@ beforeAll(() => {
context: () => {
return {
user: authenticatedUser,
- neode: instance,
+ neode: neode,
driver,
}
},
@@ -48,14 +48,14 @@ beforeAll(() => {
})
beforeEach(async () => {
- hashtagingUser = await instance.create('User', {
+ hashtagingUser = await neode.create('User', {
id: 'you',
name: 'Al Capone',
slug: 'al-capone',
email: 'test@example.org',
password: '1234',
})
- await instance.create('Category', {
+ await neode.create('Category', {
id: 'cat9',
name: 'Democracy & Politics',
icon: 'university',
diff --git a/backend/src/middleware/notifications/notificationsMiddleware.spec.js b/backend/src/middleware/notifications/notificationsMiddleware.spec.js
index 2122d009b..53fa80ce8 100644
--- a/backend/src/middleware/notifications/notificationsMiddleware.spec.js
+++ b/backend/src/middleware/notifications/notificationsMiddleware.spec.js
@@ -1,7 +1,7 @@
import { gql } from '../../helpers/jest'
import Factory from '../../seed/factories'
import { createTestClient } from 'apollo-server-testing'
-import { neode, getDriver } from '../../bootstrap/neo4j'
+import { getNeode, getDriver } from '../../bootstrap/neo4j'
import createServer from '../../server'
let server
@@ -11,7 +11,7 @@ let notifiedUser
let authenticatedUser
const factory = Factory()
const driver = getDriver()
-const instance = neode()
+const neode = getNeode()
const categoryIds = ['cat9']
const createPostMutation = gql`
mutation($id: ID, $title: String!, $postContent: String!, $categoryIds: [ID]!) {
@@ -44,7 +44,7 @@ beforeAll(() => {
context: () => {
return {
user: authenticatedUser,
- neode: instance,
+ neode: neode,
driver,
}
},
@@ -56,14 +56,14 @@ beforeAll(() => {
})
beforeEach(async () => {
- notifiedUser = await instance.create('User', {
+ notifiedUser = await neode.create('User', {
id: 'you',
name: 'Al Capone',
slug: 'al-capone',
email: 'test@example.org',
password: '1234',
})
- await instance.create('Category', {
+ await neode.create('Category', {
id: 'cat9',
name: 'Democracy & Politics',
icon: 'university',
@@ -146,7 +146,7 @@ describe('notifications', () => {
describe('commenter is not me', () => {
beforeEach(async () => {
commentContent = 'Commenters comment.'
- commentAuthor = await instance.create('User', {
+ commentAuthor = await neode.create('User', {
id: 'commentAuthor',
name: 'Mrs Comment',
slug: 'mrs-comment',
@@ -228,7 +228,7 @@ describe('notifications', () => {
})
beforeEach(async () => {
- postAuthor = await instance.create('User', {
+ postAuthor = await neode.create('User', {
id: 'postAuthor',
name: 'Mrs Post',
slug: 'mrs-post',
@@ -432,7 +432,7 @@ describe('notifications', () => {
beforeEach(async () => {
commentContent =
'One mention about me with @al-capone.'
- commentAuthor = await instance.create('User', {
+ commentAuthor = await neode.create('User', {
id: 'commentAuthor',
name: 'Mrs Comment',
slug: 'mrs-comment',
@@ -442,7 +442,7 @@ describe('notifications', () => {
})
it('sends only one notification with reason mentioned_in_comment', async () => {
- postAuthor = await instance.create('User', {
+ postAuthor = await neode.create('User', {
id: 'MrPostAuthor',
name: 'Mr Author',
slug: 'mr-author',
@@ -518,7 +518,7 @@ describe('notifications', () => {
await postAuthor.relateTo(notifiedUser, 'blocked')
commentContent =
'One mention about me with @al-capone.'
- commentAuthor = await instance.create('User', {
+ commentAuthor = await neode.create('User', {
id: 'commentAuthor',
name: 'Mrs Comment',
slug: 'mrs-comment',
diff --git a/backend/src/middleware/orderByMiddleware.spec.js b/backend/src/middleware/orderByMiddleware.spec.js
index a7b31da0a..129f3a8b4 100644
--- a/backend/src/middleware/orderByMiddleware.spec.js
+++ b/backend/src/middleware/orderByMiddleware.spec.js
@@ -1,6 +1,6 @@
import { gql } from '../helpers/jest'
import Factory from '../seed/factories'
-import { neode as getNeode, getDriver } from '../bootstrap/neo4j'
+import { getNeode, getDriver } from '../bootstrap/neo4j'
import { createTestClient } from 'apollo-server-testing'
import createServer from '../server'
diff --git a/backend/src/middleware/permissionsMiddleware.js b/backend/src/middleware/permissionsMiddleware.js
index 8e4569a52..8f139f4c7 100644
--- a/backend/src/middleware/permissionsMiddleware.js
+++ b/backend/src/middleware/permissionsMiddleware.js
@@ -1,11 +1,11 @@
import { rule, shield, deny, allow, or } from 'graphql-shield'
-import { neode } from '../bootstrap/neo4j'
+import { getNeode } from '../bootstrap/neo4j'
import CONFIG from '../config'
const debug = !!CONFIG.DEBUG
const allowExternalErrors = true
-const instance = neode()
+const neode = getNeode()
const isAuthenticated = rule({
cache: 'contextual',
@@ -36,7 +36,7 @@ const isMyOwn = rule({
const isMySocialMedia = rule({
cache: 'no_cache',
})(async (_, args, { user }) => {
- let socialMedia = await instance.find('SocialMedia', args.id)
+ let socialMedia = await neode.find('SocialMedia', args.id)
socialMedia = await socialMedia.toJson()
return socialMedia.ownedBy.node.id === user.id
})
diff --git a/backend/src/middleware/permissionsMiddleware.spec.js b/backend/src/middleware/permissionsMiddleware.spec.js
index 340766136..60aff961d 100644
--- a/backend/src/middleware/permissionsMiddleware.spec.js
+++ b/backend/src/middleware/permissionsMiddleware.spec.js
@@ -2,7 +2,7 @@ import { createTestClient } from 'apollo-server-testing'
import createServer from '../server'
import Factory from '../seed/factories'
import { gql } from '../helpers/jest'
-import { getDriver, neode as getNeode } from '../bootstrap/neo4j'
+import { getDriver, getNeode } from '../bootstrap/neo4j'
const factory = Factory()
const instance = getNeode()
diff --git a/backend/src/middleware/slugifyMiddleware.spec.js b/backend/src/middleware/slugifyMiddleware.spec.js
index 02699f7b2..1c2e59317 100644
--- a/backend/src/middleware/slugifyMiddleware.spec.js
+++ b/backend/src/middleware/slugifyMiddleware.spec.js
@@ -1,6 +1,6 @@
import Factory from '../seed/factories'
import { gql } from '../helpers/jest'
-import { neode as getNeode, getDriver } from '../bootstrap/neo4j'
+import { getNeode, getDriver } from '../bootstrap/neo4j'
import createServer from '../server'
import { createTestClient } from 'apollo-server-testing'
diff --git a/backend/src/middleware/softDelete/softDeleteMiddleware.spec.js b/backend/src/middleware/softDelete/softDeleteMiddleware.spec.js
index 1c97cb874..b7c16dfd3 100644
--- a/backend/src/middleware/softDelete/softDeleteMiddleware.spec.js
+++ b/backend/src/middleware/softDelete/softDeleteMiddleware.spec.js
@@ -1,6 +1,6 @@
import Factory from '../../seed/factories'
import { gql } from '../../helpers/jest'
-import { neode as getNeode, getDriver } from '../../bootstrap/neo4j'
+import { getNeode, getDriver } from '../../bootstrap/neo4j'
import createServer from '../../server'
import { createTestClient } from 'apollo-server-testing'
diff --git a/backend/src/middleware/validation/validationMiddleware.spec.js b/backend/src/middleware/validation/validationMiddleware.spec.js
index 97bb6254b..c3d0512ad 100644
--- a/backend/src/middleware/validation/validationMiddleware.spec.js
+++ b/backend/src/middleware/validation/validationMiddleware.spec.js
@@ -1,6 +1,6 @@
import { gql } from '../../helpers/jest'
import Factory from '../../seed/factories'
-import { neode as getNeode, getDriver } from '../../bootstrap/neo4j'
+import { getNeode, getDriver } from '../../bootstrap/neo4j'
import { createTestClient } from 'apollo-server-testing'
import createServer from '../../server'
diff --git a/backend/src/models/User.spec.js b/backend/src/models/User.spec.js
index 7c4a26c55..332e6a3ea 100644
--- a/backend/src/models/User.spec.js
+++ b/backend/src/models/User.spec.js
@@ -1,8 +1,8 @@
import Factory from '../seed/factories'
-import { neode } from '../bootstrap/neo4j'
+import { getNeode } from '../bootstrap/neo4j'
const factory = Factory()
-const instance = neode()
+const neode = getNeode()
afterEach(async () => {
await factory.cleanDatabase()
@@ -10,7 +10,7 @@ afterEach(async () => {
describe('role', () => {
it('defaults to `user`', async () => {
- const user = await instance.create('User', { name: 'John' })
+ const user = await neode.create('User', { name: 'John' })
await expect(user.toJson()).resolves.toEqual(
expect.objectContaining({
role: 'user',
@@ -21,7 +21,7 @@ describe('role', () => {
describe('slug', () => {
it('normalizes to lowercase letters', async () => {
- const user = await instance.create('User', { slug: 'Matt' })
+ const user = await neode.create('User', { slug: 'Matt' })
await expect(user.toJson()).resolves.toEqual(
expect.objectContaining({
slug: 'matt',
@@ -30,9 +30,9 @@ describe('slug', () => {
})
it('must be unique', async done => {
- await instance.create('User', { slug: 'Matt' })
+ await neode.create('User', { slug: 'Matt' })
try {
- await expect(instance.create('User', { slug: 'Matt' })).rejects.toThrow('already exists')
+ await expect(neode.create('User', { slug: 'Matt' })).rejects.toThrow('already exists')
done()
} catch (error) {
throw new Error(`
@@ -54,7 +54,7 @@ describe('slug', () => {
describe('characters', () => {
const createUser = attrs => {
- return instance.create('User', attrs).then(user => user.toJson())
+ return neode.create('User', attrs).then(user => user.toJson())
}
it('-', async () => {
diff --git a/backend/src/schema/resolvers/comments.spec.js b/backend/src/schema/resolvers/comments.spec.js
index d2692aa8a..e2d20d1bd 100644
--- a/backend/src/schema/resolvers/comments.spec.js
+++ b/backend/src/schema/resolvers/comments.spec.js
@@ -2,7 +2,7 @@ import Factory from '../../seed/factories'
import { gql } from '../../helpers/jest'
import { createTestClient } from 'apollo-server-testing'
import createServer from '../../server'
-import { neode as getNeode, getDriver } from '../../bootstrap/neo4j'
+import { getNeode, getDriver } from '../../bootstrap/neo4j'
const driver = getDriver()
const neode = getNeode()
diff --git a/backend/src/schema/resolvers/donations.spec.js b/backend/src/schema/resolvers/donations.spec.js
index 9e701059d..d8dd5db06 100644
--- a/backend/src/schema/resolvers/donations.spec.js
+++ b/backend/src/schema/resolvers/donations.spec.js
@@ -1,7 +1,7 @@
import { createTestClient } from 'apollo-server-testing'
import Factory from '../../seed/factories'
import { gql } from '../../helpers/jest'
-import { neode as getNeode, getDriver } from '../../bootstrap/neo4j'
+import { getNeode, getDriver } from '../../bootstrap/neo4j'
import createServer from '../../server'
let mutate, query, authenticatedUser, variables
diff --git a/backend/src/schema/resolvers/emails.spec.js b/backend/src/schema/resolvers/emails.spec.js
index 156007435..82ce43337 100644
--- a/backend/src/schema/resolvers/emails.spec.js
+++ b/backend/src/schema/resolvers/emails.spec.js
@@ -1,6 +1,6 @@
import Factory from '../../seed/factories'
import { gql } from '../../helpers/jest'
-import { getDriver, neode as getNeode } from '../../bootstrap/neo4j'
+import { getDriver, getNeode } from '../../bootstrap/neo4j'
import createServer from '../../server'
import { createTestClient } from 'apollo-server-testing'
diff --git a/backend/src/schema/resolvers/follow.js b/backend/src/schema/resolvers/follow.js
index ada417cff..0416fe3d2 100644
--- a/backend/src/schema/resolvers/follow.js
+++ b/backend/src/schema/resolvers/follow.js
@@ -1,4 +1,4 @@
-import { neode as getNeode } from '../../bootstrap/neo4j'
+import { getNeode } from '../../bootstrap/neo4j'
const neode = getNeode()
diff --git a/backend/src/schema/resolvers/follow.spec.js b/backend/src/schema/resolvers/follow.spec.js
index 8402842e2..ff884666e 100644
--- a/backend/src/schema/resolvers/follow.spec.js
+++ b/backend/src/schema/resolvers/follow.spec.js
@@ -1,6 +1,6 @@
import { createTestClient } from 'apollo-server-testing'
import Factory from '../../seed/factories'
-import { getDriver, neode as getNeode } from '../../bootstrap/neo4j'
+import { getDriver, getNeode } from '../../bootstrap/neo4j'
import createServer from '../../server'
import { gql } from '../../helpers/jest'
diff --git a/backend/src/schema/resolvers/helpers/Resolver.js b/backend/src/schema/resolvers/helpers/Resolver.js
index 03c0d4176..b094231c0 100644
--- a/backend/src/schema/resolvers/helpers/Resolver.js
+++ b/backend/src/schema/resolvers/helpers/Resolver.js
@@ -1,4 +1,4 @@
-import { neode } from '../../../bootstrap/neo4j'
+import { getNeode } from '../../../bootstrap/neo4j'
export const undefinedToNullResolver = list => {
const resolvers = {}
@@ -11,7 +11,7 @@ export const undefinedToNullResolver = list => {
}
export default function Resolver(type, options = {}) {
- const instance = neode()
+ const instance = getNeode()
const {
idAttribute = 'id',
undefinedToNull = [],
diff --git a/backend/src/schema/resolvers/locations.spec.js b/backend/src/schema/resolvers/locations.spec.js
index 51dafcc2e..f4a846afd 100644
--- a/backend/src/schema/resolvers/locations.spec.js
+++ b/backend/src/schema/resolvers/locations.spec.js
@@ -1,6 +1,6 @@
import Factory from '../../seed/factories'
import { gql } from '../../helpers/jest'
-import { neode as getNeode, getDriver } from '../../bootstrap/neo4j'
+import { getNeode, getDriver } from '../../bootstrap/neo4j'
import createServer from '../../server'
import { createTestClient } from 'apollo-server-testing'
diff --git a/backend/src/schema/resolvers/moderation.spec.js b/backend/src/schema/resolvers/moderation.spec.js
index 5e280a6f5..f76cbdf46 100644
--- a/backend/src/schema/resolvers/moderation.spec.js
+++ b/backend/src/schema/resolvers/moderation.spec.js
@@ -1,7 +1,7 @@
import { createTestClient } from 'apollo-server-testing'
import Factory from '../../seed/factories'
import { gql } from '../../helpers/jest'
-import { neode as getNeode, getDriver } from '../../bootstrap/neo4j'
+import { getNeode, getDriver } from '../../bootstrap/neo4j'
import createServer from '../../server'
const factory = Factory()
diff --git a/backend/src/schema/resolvers/passwordReset.spec.js b/backend/src/schema/resolvers/passwordReset.spec.js
index 97aa6a020..a1968d288 100644
--- a/backend/src/schema/resolvers/passwordReset.spec.js
+++ b/backend/src/schema/resolvers/passwordReset.spec.js
@@ -1,6 +1,6 @@
import Factory from '../../seed/factories'
import { gql } from '../../helpers/jest'
-import { neode as getNeode, getDriver } from '../../bootstrap/neo4j'
+import { getNeode, getDriver } from '../../bootstrap/neo4j'
import createPasswordReset from './helpers/createPasswordReset'
import createServer from '../../server'
import { createTestClient } from 'apollo-server-testing'
diff --git a/backend/src/schema/resolvers/posts.spec.js b/backend/src/schema/resolvers/posts.spec.js
index 98475b182..752602fd9 100644
--- a/backend/src/schema/resolvers/posts.spec.js
+++ b/backend/src/schema/resolvers/posts.spec.js
@@ -1,7 +1,7 @@
import { createTestClient } from 'apollo-server-testing'
import Factory from '../../seed/factories'
import { gql } from '../../helpers/jest'
-import { neode as getNeode, getDriver } from '../../bootstrap/neo4j'
+import { getNeode, getDriver } from '../../bootstrap/neo4j'
import createServer from '../../server'
const driver = getDriver()
diff --git a/backend/src/schema/resolvers/registration.js b/backend/src/schema/resolvers/registration.js
index 206c8db74..9d5d5f09a 100644
--- a/backend/src/schema/resolvers/registration.js
+++ b/backend/src/schema/resolvers/registration.js
@@ -1,12 +1,12 @@
import { UserInputError } from 'apollo-server'
-import { neode } from '../../bootstrap/neo4j'
+import { getNeode } from '../../bootstrap/neo4j'
import fileUpload from './fileUpload'
import encryptPassword from '../../helpers/encryptPassword'
import generateNonce from './helpers/generateNonce'
import existingEmailAddress from './helpers/existingEmailAddress'
import normalizeEmail from './helpers/normalizeEmail'
-const instance = neode()
+const neode = getNeode()
export default {
Mutation: {
@@ -16,7 +16,7 @@ export default {
let emailAddress = await existingEmailAddress({ args, context })
if (emailAddress) return emailAddress
try {
- emailAddress = await instance.create('EmailAddress', args)
+ emailAddress = await neode.create('EmailAddress', args)
return emailAddress.toJson()
} catch (e) {
throw new UserInputError(e.message)
@@ -32,7 +32,7 @@ export default {
let { nonce, email } = args
email = normalizeEmail(email)
- const result = await instance.cypher(
+ const result = await neode.cypher(
`
MATCH(email:EmailAddress {nonce: {nonce}, email: {email}})
WHERE NOT (email)-[:BELONGS_TO]->()
@@ -40,12 +40,12 @@ export default {
`,
{ nonce, email },
)
- const emailAddress = await instance.hydrateFirst(result, 'email', instance.model('Email'))
+ const emailAddress = await neode.hydrateFirst(result, 'email', neode.model('Email'))
if (!emailAddress) throw new UserInputError('Invalid email or nonce')
args = await fileUpload(args, { file: 'avatarUpload', url: 'avatar' })
args = await encryptPassword(args)
try {
- const user = await instance.create('User', args)
+ const user = await neode.create('User', args)
await Promise.all([
user.relateTo(emailAddress, 'primaryEmail'),
emailAddress.relateTo(user, 'belongsTo'),
diff --git a/backend/src/schema/resolvers/registration.spec.js b/backend/src/schema/resolvers/registration.spec.js
index 35b16b9bb..8f3a7ac39 100644
--- a/backend/src/schema/resolvers/registration.spec.js
+++ b/backend/src/schema/resolvers/registration.spec.js
@@ -1,6 +1,6 @@
import Factory from '../../seed/factories'
import { gql } from '../../helpers/jest'
-import { getDriver, neode as getNeode } from '../../bootstrap/neo4j'
+import { getDriver, getNeode } from '../../bootstrap/neo4j'
import createServer from '../../server'
import { createTestClient } from 'apollo-server-testing'
diff --git a/backend/src/schema/resolvers/reports.spec.js b/backend/src/schema/resolvers/reports.spec.js
index c0a9d3afb..cd8b61985 100644
--- a/backend/src/schema/resolvers/reports.spec.js
+++ b/backend/src/schema/resolvers/reports.spec.js
@@ -2,7 +2,7 @@ import { createTestClient } from 'apollo-server-testing'
import createServer from '../.././server'
import Factory from '../../seed/factories'
import { gql } from '../../helpers/jest'
-import { getDriver, neode as getNeode } from '../../bootstrap/neo4j'
+import { getDriver, getNeode } from '../../bootstrap/neo4j'
const factory = Factory()
const instance = getNeode()
diff --git a/backend/src/schema/resolvers/rewards.js b/backend/src/schema/resolvers/rewards.js
index 74c7860e4..4d5d62aea 100644
--- a/backend/src/schema/resolvers/rewards.js
+++ b/backend/src/schema/resolvers/rewards.js
@@ -1,11 +1,11 @@
-import { neode } from '../../bootstrap/neo4j'
+import { getNeode } from '../../bootstrap/neo4j'
import { UserInputError } from 'apollo-server'
-const instance = neode()
+const neode = getNeode()
const getUserAndBadge = async ({ badgeKey, userId }) => {
- const user = await instance.first('User', 'id', userId)
- const badge = await instance.first('Badge', 'id', badgeKey)
+ const user = await neode.first('User', 'id', userId)
+ const badge = await neode.first('Badge', 'id', badgeKey)
if (!user) throw new UserInputError("Couldn't find a user with that id")
if (!badge) throw new UserInputError("Couldn't find a badge with that id")
return { user, badge }
diff --git a/backend/src/schema/resolvers/rewards.spec.js b/backend/src/schema/resolvers/rewards.spec.js
index 2dcdd5b53..e6f67ecab 100644
--- a/backend/src/schema/resolvers/rewards.spec.js
+++ b/backend/src/schema/resolvers/rewards.spec.js
@@ -1,7 +1,7 @@
import { createTestClient } from 'apollo-server-testing'
import Factory from '../../seed/factories'
import { gql } from '../../helpers/jest'
-import { neode as getNeode, getDriver } from '../../bootstrap/neo4j'
+import { getNeode, getDriver } from '../../bootstrap/neo4j'
import createServer from '../../server'
const factory = Factory()
diff --git a/backend/src/schema/resolvers/shout.spec.js b/backend/src/schema/resolvers/shout.spec.js
index f39e4d137..e747946aa 100644
--- a/backend/src/schema/resolvers/shout.spec.js
+++ b/backend/src/schema/resolvers/shout.spec.js
@@ -1,7 +1,7 @@
import { createTestClient } from 'apollo-server-testing'
import Factory from '../../seed/factories'
import { gql } from '../../helpers/jest'
-import { neode as getNeode, getDriver } from '../../bootstrap/neo4j'
+import { getNeode, getDriver } from '../../bootstrap/neo4j'
import createServer from '../../server'
let mutate, query, authenticatedUser, variables
diff --git a/backend/src/schema/resolvers/socialMedia.js b/backend/src/schema/resolvers/socialMedia.js
index 49aa6788d..c206778e5 100644
--- a/backend/src/schema/resolvers/socialMedia.js
+++ b/backend/src/schema/resolvers/socialMedia.js
@@ -1,14 +1,14 @@
-import { neode } from '../../bootstrap/neo4j'
+import { getNeode } from '../../bootstrap/neo4j'
import Resolver from './helpers/Resolver'
-const instance = neode()
+const neode = getNeode()
export default {
Mutation: {
CreateSocialMedia: async (object, params, context, resolveInfo) => {
const [user, socialMedia] = await Promise.all([
- instance.find('User', context.user.id),
- instance.create('SocialMedia', params),
+ neode.find('User', context.user.id),
+ neode.create('SocialMedia', params),
])
await socialMedia.relateTo(user, 'ownedBy')
const response = await socialMedia.toJson()
@@ -16,14 +16,14 @@ export default {
return response
},
UpdateSocialMedia: async (object, params, context, resolveInfo) => {
- const socialMedia = await instance.find('SocialMedia', params.id)
+ const socialMedia = await neode.find('SocialMedia', params.id)
await socialMedia.update({ url: params.url })
const response = await socialMedia.toJson()
return response
},
DeleteSocialMedia: async (object, { id }, context, resolveInfo) => {
- const socialMedia = await instance.find('SocialMedia', id)
+ const socialMedia = await neode.find('SocialMedia', id)
if (!socialMedia) return null
await socialMedia.delete()
return socialMedia.toJson()
diff --git a/backend/src/schema/resolvers/socialMedia.spec.js b/backend/src/schema/resolvers/socialMedia.spec.js
index 092139747..8f6d91d43 100644
--- a/backend/src/schema/resolvers/socialMedia.spec.js
+++ b/backend/src/schema/resolvers/socialMedia.spec.js
@@ -2,11 +2,11 @@ import { createTestClient } from 'apollo-server-testing'
import createServer from '../../server'
import Factory from '../../seed/factories'
import { gql } from '../../helpers/jest'
-import { neode, getDriver } from '../../bootstrap/neo4j'
+import { getNeode, getDriver } from '../../bootstrap/neo4j'
const driver = getDriver()
const factory = Factory()
-const instance = neode()
+const neode = getNeode()
describe('SocialMedia', () => {
let socialMediaAction, someUser, ownerNode, owner
@@ -27,15 +27,15 @@ describe('SocialMedia', () => {
const newUrl = 'https://twitter.com/bullerby'
const setUpSocialMedia = async () => {
- const socialMediaNode = await instance.create('SocialMedia', { url })
+ const socialMediaNode = await neode.create('SocialMedia', { url })
await socialMediaNode.relateTo(ownerNode, 'ownedBy')
return socialMediaNode.toJson()
}
beforeEach(async () => {
- const someUserNode = await instance.create('User', userParams)
+ const someUserNode = await neode.create('User', userParams)
someUser = await someUserNode.toJson()
- ownerNode = await instance.create('User', ownerParams)
+ ownerNode = await neode.create('User', ownerParams)
owner = await ownerNode.toJson()
socialMediaAction = async (user, mutation, variables) => {
diff --git a/backend/src/schema/resolvers/statistics.spec.js b/backend/src/schema/resolvers/statistics.spec.js
index 7ffa8ebd0..48baf00cd 100644
--- a/backend/src/schema/resolvers/statistics.spec.js
+++ b/backend/src/schema/resolvers/statistics.spec.js
@@ -1,7 +1,7 @@
import { createTestClient } from 'apollo-server-testing'
import Factory from '../../seed/factories'
import { gql } from '../../helpers/jest'
-import { neode as getNeode, getDriver } from '../../bootstrap/neo4j'
+import { getNeode, getDriver } from '../../bootstrap/neo4j'
import createServer from '../../server'
let query, authenticatedUser
diff --git a/backend/src/schema/resolvers/user_management.js b/backend/src/schema/resolvers/user_management.js
index 4c4c3fc90..d5c6cd5ad 100644
--- a/backend/src/schema/resolvers/user_management.js
+++ b/backend/src/schema/resolvers/user_management.js
@@ -1,10 +1,10 @@
import encode from '../../jwt/encode'
import bcrypt from 'bcryptjs'
import { AuthenticationError } from 'apollo-server'
-import { neode } from '../../bootstrap/neo4j'
+import { getNeode } from '../../bootstrap/neo4j'
import normalizeEmail from './helpers/normalizeEmail'
-const instance = neode()
+const neode = getNeode()
export default {
Query: {
@@ -13,7 +13,7 @@ export default {
},
currentUser: async (object, params, ctx, resolveInfo) => {
if (!ctx.user) return null
- const user = await instance.find('User', ctx.user.id)
+ const user = await neode.find('User', ctx.user.id)
return user.toJson()
},
},
@@ -53,7 +53,7 @@ export default {
}
},
changePassword: async (_, { oldPassword, newPassword }, { driver, user }) => {
- const currentUser = await instance.find('User', user.id)
+ const currentUser = await neode.find('User', user.id)
const encryptedPassword = currentUser.get('encryptedPassword')
if (!(await bcrypt.compareSync(oldPassword, encryptedPassword))) {
diff --git a/backend/src/schema/resolvers/user_management.spec.js b/backend/src/schema/resolvers/user_management.spec.js
index e67b90c8d..3527e5dc2 100644
--- a/backend/src/schema/resolvers/user_management.spec.js
+++ b/backend/src/schema/resolvers/user_management.spec.js
@@ -5,7 +5,7 @@ import { gql } from '../../helpers/jest'
import { createTestClient } from 'apollo-server-testing'
import createServer, { context } from '../../server'
import encode from '../../jwt/encode'
-import { neode as getNeode } from '../../bootstrap/neo4j'
+import { getNeode } from '../../bootstrap/neo4j'
const factory = Factory()
const neode = getNeode()
diff --git a/backend/src/schema/resolvers/users.js b/backend/src/schema/resolvers/users.js
index c44e3f44b..d8d5fbb73 100644
--- a/backend/src/schema/resolvers/users.js
+++ b/backend/src/schema/resolvers/users.js
@@ -1,10 +1,10 @@
import { neo4jgraphql } from 'neo4j-graphql-js'
import fileUpload from './fileUpload'
-import { neode } from '../../bootstrap/neo4j'
+import { getNeode } from '../../bootstrap/neo4j'
import { UserInputError, ForbiddenError } from 'apollo-server'
import Resolver from './helpers/Resolver'
-const instance = neode()
+const neode = getNeode()
export const getBlockedUsers = async context => {
const { neode } = context
@@ -73,7 +73,7 @@ export default {
block: async (object, args, context, resolveInfo) => {
const { user: currentUser } = context
if (currentUser.id === args.id) return null
- await instance.cypher(
+ await neode.cypher(
`
MATCH(u:User {id: $currentUser.id})-[r:FOLLOWS]->(b:User {id: $args.id})
DELETE r
@@ -81,8 +81,8 @@ export default {
{ currentUser, args },
)
const [user, blockedUser] = await Promise.all([
- instance.find('User', currentUser.id),
- instance.find('User', args.id),
+ neode.find('User', currentUser.id),
+ neode.find('User', args.id),
])
await user.relateTo(blockedUser, 'blocked')
return blockedUser.toJson()
@@ -90,14 +90,14 @@ export default {
unblock: async (object, args, context, resolveInfo) => {
const { user: currentUser } = context
if (currentUser.id === args.id) return null
- await instance.cypher(
+ await neode.cypher(
`
MATCH(u:User {id: $currentUser.id})-[r:BLOCKED]->(b:User {id: $args.id})
DELETE r
`,
{ currentUser, args },
)
- const blockedUser = await instance.find('User', args.id)
+ const blockedUser = await neode.find('User', args.id)
return blockedUser.toJson()
},
UpdateUser: async (object, args, context, resolveInfo) => {
@@ -111,7 +111,7 @@ export default {
}
args = await fileUpload(args, { file: 'avatarUpload', url: 'avatar' })
try {
- const user = await instance.find('User', args.id)
+ const user = await neode.find('User', args.id)
if (!user) return null
await user.update({ ...args, updatedAt: new Date().toISOString() })
return user.toJson()
@@ -173,7 +173,7 @@ export default {
if (typeof parent.email !== 'undefined') return parent.email
const { id } = parent
const statement = `MATCH(u:User {id: {id}})-[:PRIMARY_EMAIL]->(e:EmailAddress) RETURN e`
- const result = await instance.cypher(statement, { id })
+ const result = await neode.cypher(statement, { id })
const [{ email }] = result.records.map(r => r.get('e').properties)
return email
},
diff --git a/backend/src/schema/resolvers/users.spec.js b/backend/src/schema/resolvers/users.spec.js
index 483c70214..26e977a31 100644
--- a/backend/src/schema/resolvers/users.spec.js
+++ b/backend/src/schema/resolvers/users.spec.js
@@ -1,6 +1,6 @@
import Factory from '../../seed/factories'
import { gql } from '../../helpers/jest'
-import { neode as getNeode, getDriver } from '../../bootstrap/neo4j'
+import { getNeode, getDriver } from '../../bootstrap/neo4j'
import createServer from '../../server'
import { createTestClient } from 'apollo-server-testing'
diff --git a/backend/src/schema/resolvers/users/blockedUsers.spec.js b/backend/src/schema/resolvers/users/blockedUsers.spec.js
index e0ab00448..6ceaf6a52 100644
--- a/backend/src/schema/resolvers/users/blockedUsers.spec.js
+++ b/backend/src/schema/resolvers/users/blockedUsers.spec.js
@@ -2,11 +2,11 @@ import { createTestClient } from 'apollo-server-testing'
import createServer from '../../../server'
import Factory from '../../../seed/factories'
import { gql } from '../../../helpers/jest'
-import { neode, getDriver } from '../../../bootstrap/neo4j'
+import { getNeode, getDriver } from '../../../bootstrap/neo4j'
const driver = getDriver()
const factory = Factory()
-const instance = neode()
+const neode = getNeode()
let currentUser
let blockedUser
@@ -20,7 +20,7 @@ beforeEach(() => {
return {
user: authenticatedUser,
driver,
- neode: instance,
+ neode: neode,
cypherParams: {
currentUserId: authenticatedUser ? authenticatedUser.id : null,
},
@@ -55,11 +55,11 @@ describe('blockedUsers', () => {
describe('authenticated and given a blocked user', () => {
beforeEach(async () => {
- currentUser = await instance.create('User', {
+ currentUser = await neode.create('User', {
name: 'Current User',
id: 'u1',
})
- blockedUser = await instance.create('User', {
+ blockedUser = await neode.create('User', {
name: 'Blocked User',
id: 'u2',
})
@@ -113,7 +113,7 @@ describe('block', () => {
describe('authenticated', () => {
beforeEach(async () => {
- currentUser = await instance.create('User', {
+ currentUser = await neode.create('User', {
name: 'Current User',
id: 'u1',
})
@@ -138,7 +138,7 @@ describe('block', () => {
describe('given a to-be-blocked user', () => {
beforeEach(async () => {
- blockedUser = await instance.create('User', {
+ blockedUser = await neode.create('User', {
name: 'Blocked User',
id: 'u2',
})
@@ -181,11 +181,11 @@ describe('block', () => {
let postQuery
beforeEach(async () => {
- const post1 = await instance.create('Post', {
+ const post1 = await neode.create('Post', {
id: 'p12',
title: 'A post written by the current user',
})
- const post2 = await instance.create('Post', {
+ const post2 = await neode.create('Post', {
id: 'p23',
title: 'A post written by the blocked user',
})
@@ -323,7 +323,7 @@ describe('unblock', () => {
describe('authenticated', () => {
beforeEach(async () => {
- currentUser = await instance.create('User', {
+ currentUser = await neode.create('User', {
name: 'Current User',
id: 'u1',
})
@@ -348,7 +348,7 @@ describe('unblock', () => {
describe('given another user', () => {
beforeEach(async () => {
- blockedUser = await instance.create('User', {
+ blockedUser = await neode.create('User', {
name: 'Blocked User',
id: 'u2',
})
diff --git a/backend/src/seed/factories/index.js b/backend/src/seed/factories/index.js
index 441fe47d5..10db5cc03 100644
--- a/backend/src/seed/factories/index.js
+++ b/backend/src/seed/factories/index.js
@@ -1,4 +1,4 @@
-import { getDriver, neode } from '../../bootstrap/neo4j'
+import { getDriver, getNeode } from '../../bootstrap/neo4j'
import createBadge from './badges.js'
import createUser from './users.js'
import createPost from './posts.js'
@@ -39,7 +39,7 @@ export const cleanDatabase = async (options = {}) => {
}
export default function Factory(options = {}) {
- const { neo4jDriver = getDriver(), neodeInstance = neode() } = options
+ const { neo4jDriver = getDriver(), neodeInstance = getNeode() } = options
const result = {
neo4jDriver,
diff --git a/backend/src/seed/seed-db.js b/backend/src/seed/seed-db.js
index d059400a4..75c68c3e8 100644
--- a/backend/src/seed/seed-db.js
+++ b/backend/src/seed/seed-db.js
@@ -3,7 +3,7 @@ import sample from 'lodash/sample'
import { createTestClient } from 'apollo-server-testing'
import createServer from '../server'
import Factory from './factories'
-import { neode as getNeode, getDriver } from '../bootstrap/neo4j'
+import { getNeode, getDriver } from '../bootstrap/neo4j'
import { gql } from '../helpers/jest'
const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
diff --git a/backend/src/server.js b/backend/src/server.js
index 053a3e4b3..91b9a13aa 100644
--- a/backend/src/server.js
+++ b/backend/src/server.js
@@ -3,7 +3,7 @@ import helmet from 'helmet'
import { ApolloServer } from 'apollo-server-express'
import CONFIG, { requiredConfigs } from './config'
import middleware from './middleware'
-import { neode as getNeode, getDriver } from './bootstrap/neo4j'
+import { getNeode, getDriver } from './bootstrap/neo4j'
import decode from './jwt/decode'
import schema from './schema'
import webfinger from './activitypub/routes/webfinger'
diff --git a/cypress/support/factories.js b/cypress/support/factories.js
index da67debd5..20c4bbdc8 100644
--- a/cypress/support/factories.js
+++ b/cypress/support/factories.js
@@ -1,5 +1,5 @@
import Factory from '../../backend/src/seed/factories'
-import { getDriver, neode as getNeode } from '../../backend/src/bootstrap/neo4j'
+import { getDriver, getNeode } from '../../backend/src/bootstrap/neo4j'
import setupNeode from '../../backend/src/bootstrap/neode'
import neode from 'neode'