Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
7895a18
add neo4j driver and neo4j-graphql-js
SyJuly Dec 16, 2019
61fadd9
move data from resolvers to db directory
SyJuly Dec 16, 2019
bc202ee
get neo4j driver on local database
SyJuly Dec 16, 2019
840564a
WIP: build backend queries for neo4j
SyJuly Dec 16, 2019
770a785
fix todoById
SyJuly Dec 16, 2019
9929dc0
refactor addTodo
SyJuly Dec 16, 2019
d2b99b0
fix updateTodo query
SyJuly Dec 16, 2019
27f39fa
check if todo is from user from token
SyJuly Dec 16, 2019
a98f027
delete todo via cypher
SyJuly Dec 16, 2019
0cabc19
add --seed option as args to index.js
SyJuly Dec 16, 2019
7f33715
use uuid for backend id generation
SyJuly Dec 16, 2019
3dc4485
fix deletetodo
SyJuly Dec 16, 2019
8f2a4e7
create backend readme for setup
SyJuly Dec 17, 2019
af4336f
userResolvers -> neo4J
e412 Dec 18, 2019
bcf6d7e
close session
e412 Dec 18, 2019
8cfba4b
adds WHERE, LIMIT, ORDERBY
e412 Dec 18, 2019
ad135e7
add neo4j driver to appollo context
SyJuly Dec 21, 2019
6dd4789
force exit
e412 Dec 22, 2019
bc139c2
jest
e412 Dec 22, 2019
934e571
´test updates
e412 Dec 23, 2019
d1a6fb5
travis-update test
e412 Dec 27, 2019
881c9ec
travis-update test
e412 Dec 27, 2019
e535dc4
travis-update test
e412 Dec 27, 2019
9235958
travis-update test
e412 Dec 27, 2019
299cd61
travis-update test
e412 Dec 27, 2019
1f70174
travis-update test
e412 Dec 27, 2019
8644922
try test check
e412 Dec 27, 2019
ef31292
setup neo4j service with docker
e412 Dec 27, 2019
e7f29f0
adds spacing to docker-compose
e412 Dec 27, 2019
336287c
edit docker-compose
e412 Dec 27, 2019
3fdcad7
Merge branch 'neo4j' of https://github.com/SyJuly/Systems-Development…
SyJuly Jan 1, 2020
59dc4fc
connect vue frontend to backend
SyJuly Jan 2, 2020
d3aed7f
set authorization header in frontend
SyJuly Jan 2, 2020
17d315f
use request header for authorization instead of param
SyJuly Jan 2, 2020
84311fc
WIP: fix test with authorization header
SyJuly Jan 2, 2020
2605a66
fix tests with 2 clients for different login status
SyJuly Jan 2, 2020
c330e9d
WIP: add graphql shield and middleware
SyJuly Jan 2, 2020
3456707
use graphql shield for authentification
SyJuly Jan 3, 2020
4a4c416
fix authentification
SyJuly Jan 3, 2020
34c4567
check for not authorised error from graphql-shield
SyJuly Jan 3, 2020
bbf2899
fix checking on empty auth obj in context
SyJuly Jan 3, 2020
96bd81e
change schema of Todo to have only one creator
SyJuly Jan 3, 2020
2ad1d19
update tests
e412 Jan 5, 2020
ca6377c
update travis.yml remove docker for build
e412 Jan 5, 2020
c1971d5
update travis.yml remove docker
e412 Jan 5, 2020
3848b10
update userResolvers because last commit didnt include the class
e412 Jan 5, 2020
af82e50
adds param (done) to clean database
e412 Jan 5, 2020
c6f36cd
testto fix build
e412 Jan 5, 2020
7412462
testto fix build
e412 Jan 5, 2020
2311564
redo
e412 Jan 5, 2020
f50b65c
test fix server param for build
e412 Jan 5, 2020
729c0f6
test fix server param for build
e412 Jan 5, 2020
5ca9092
test fix server param for build
e412 Jan 5, 2020
1587d7f
adds events
e412 Jan 6, 2020
54027f8
set password for neo4j
SyJuly Jan 6, 2020
d24b098
fix frontend apollo to authenticate
SyJuly Jan 6, 2020
6ecb0b6
add done to beforeeach
SyJuly Jan 6, 2020
3141965
run travis with detectopenhandles
SyJuly Jan 6, 2020
2494467
run backend jest with detectopenhandles and forceexit
SyJuly Jan 6, 2020
1ee1622
get all todos from backend
SyJuly Jan 6, 2020
6b6b3c3
add events to frontend
SyJuly Jan 6, 2020
a4fc72a
some small test-changes because of robert suggenstions in the PR-3
e412 Jan 7, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
language: node_js
node_js:
- "stable"
services:
- docker
before_install:
- docker run --name todo_neo4j -p7474:7474 -p7687:7687 -d --env NEO4J_AUTH=neo4j/password neo4j:latest
jobs:
include:
- stage: "Backend"
Expand All @@ -16,3 +20,4 @@ jobs:
script:
- npm test
- npm run lint

34 changes: 34 additions & 0 deletions ToDoApp/Backend/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Backend


1. Update packages
- npm install
2. Download [Neo4j Desktop](https://neo4j.com/download/neo4j-desktop/?edition=desktop&flavour=unix&release=1.2.3&offline=true)
3. Create database (*TodoApp*) with password (*password*)
4. Start database, view Neo4j web interface on:

- bolt://localhost:7687
- http://localhost:7474
- https://localhost:7473

5. Start backend

\\Start with seed
node index.js --seed

\\Start without seed
node index.js

6. Write queries from GraphQL web interface (http://localhost:4000/)

## Tips

##### View whole graph in Neo4j web interface
MATCH (n)
RETURN n

##### Clear database from everything
start r=relationship(*) delete r;

MATCH (n)
DETACH DELETE n
31 changes: 27 additions & 4 deletions ToDoApp/Backend/index.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,40 @@
const { ApolloServer } = require('apollo-server');
const { ApolloServer, makeExecutableSchema } = require('apollo-server');
const { mergeResolvers } = require("merge-graphql-schemas");
const neo4j = require('neo4j-driver');
const { augmentSchema } = require("neo4j-graphql-js");
const { seedDatabase } = require("./src/db/seed");
const { getAuth } = require("./src/utils/auth");
const { applyMiddleware } = require ('graphql-middleware');
const { permissions } = require ('./src/config/permissions');

const driver = neo4j.driver(
'bolt://localhost',
neo4j.auth.basic('neo4j', 'password'),
{ disableLosslessIntegers: true }
)

// The ApolloServer constructor requires two parameters: your schema
// definition and your set of resolvers.
const { typeDefs } = require('./src/schema/typeDefs');


const { userResolver } = require("./src/resolvers/user/userResolver");
const { todoResolver } = require("./src/resolvers/todo/todoResolver");
const resolvers = mergeResolvers([userResolver, todoResolver]);
const { eventResolver } = require("./src/resolvers/event/eventResolver");
const resolvers = mergeResolvers([userResolver, todoResolver, eventResolver]);

const schema = makeExecutableSchema({ typeDefs, resolvers });
const augmentedSchema = augmentSchema(applyMiddleware(schema, permissions));

const server = new ApolloServer({ schema: augmentedSchema, context:({req}) => {
return({
driver,
auth: getAuth(req),
})}
});

const server = new ApolloServer({ typeDefs, resolvers});
if (process.argv.length === 3 && process.argv[2] === "--seed") {
seedDatabase(driver)
}

// The `listen` method launches a web server.
server.listen().then(({ url }) => {
Expand Down
18 changes: 18 additions & 0 deletions ToDoApp/Backend/jest.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
module.exports = {
verbose: true,
moduleFileExtensions: [
"js",
"json"
],
transform: {
"^.+\\.js$": "<rootDir>/node_modules/babel-jest"
},
collectCoverage: true,
collectCoverageFrom: [
"src/components/*.{js}",
"!**/node_modules/**"
],
coverageReporters: [
"text-summary"
],
}
Loading