summaryrefslogtreecommitdiffstats
path: root/stepped-solutions/13
diff options
context:
space:
mode:
Diffstat (limited to 'stepped-solutions/13')
-rw-r--r--stepped-solutions/13/backend/src/createServer.js22
-rw-r--r--stepped-solutions/13/backend/src/db.js11
-rw-r--r--stepped-solutions/13/backend/src/index.js20
-rw-r--r--stepped-solutions/13/backend/src/resolvers/Mutation.js3
-rw-r--r--stepped-solutions/13/backend/src/resolvers/Query.js3
-rw-r--r--stepped-solutions/13/backend/src/schema.graphql7
6 files changed, 66 insertions, 0 deletions
diff --git a/stepped-solutions/13/backend/src/createServer.js b/stepped-solutions/13/backend/src/createServer.js
new file mode 100644
index 0000000..c552b02
--- /dev/null
+++ b/stepped-solutions/13/backend/src/createServer.js
@@ -0,0 +1,22 @@
+const { GraphQLServer } = require('graphql-yoga');
+const Mutation = require('./resolvers/Mutation');
+const Query = require('./resolvers/Query');
+const db = require('./db');
+
+// Create the GraphQL Yoga Server
+
+function createServer() {
+ return new GraphQLServer({
+ typeDefs: 'src/schema.graphql',
+ resolvers: {
+ Mutation,
+ Query,
+ },
+ resolverValidationOptions: {
+ requireResolversForResolveType: false,
+ },
+ context: req => ({ ...req, db }),
+ });
+}
+
+module.exports = createServer;
diff --git a/stepped-solutions/13/backend/src/db.js b/stepped-solutions/13/backend/src/db.js
new file mode 100644
index 0000000..8f66240
--- /dev/null
+++ b/stepped-solutions/13/backend/src/db.js
@@ -0,0 +1,11 @@
+// This file connects to the remote prisma DB and gives us the ability to query it with JS
+const { Prisma } = require('prisma-binding');
+
+const db = new Prisma({
+ typeDefs: 'src/generated/prisma.graphql',
+ endpoint: process.env.PRISMA_ENDPOINT,
+ secret: process.env.PRISMA_SECRET,
+ debug: false,
+});
+
+module.exports = db;
diff --git a/stepped-solutions/13/backend/src/index.js b/stepped-solutions/13/backend/src/index.js
new file mode 100644
index 0000000..e2dfa96
--- /dev/null
+++ b/stepped-solutions/13/backend/src/index.js
@@ -0,0 +1,20 @@
+require('dotenv').config({ path: 'variables.env' });
+const createServer = require('./createServer');
+const db = require('./db');
+
+const server = createServer();
+
+// TODO Use express middlware to handle cookies (JWT)
+// TODO Use express middlware to populate current user
+
+server.start(
+ {
+ cors: {
+ credentials: true,
+ origin: process.env.FRONTEND_URL,
+ },
+ },
+ deets => {
+ console.log(`Server is now running on port http:/localhost:${deets.port}`);
+ }
+);
diff --git a/stepped-solutions/13/backend/src/resolvers/Mutation.js b/stepped-solutions/13/backend/src/resolvers/Mutation.js
new file mode 100644
index 0000000..f9bedf6
--- /dev/null
+++ b/stepped-solutions/13/backend/src/resolvers/Mutation.js
@@ -0,0 +1,3 @@
+const Mutations = {};
+
+module.exports = Mutations;
diff --git a/stepped-solutions/13/backend/src/resolvers/Query.js b/stepped-solutions/13/backend/src/resolvers/Query.js
new file mode 100644
index 0000000..eebe788
--- /dev/null
+++ b/stepped-solutions/13/backend/src/resolvers/Query.js
@@ -0,0 +1,3 @@
+const Query = {};
+
+module.exports = Query;
diff --git a/stepped-solutions/13/backend/src/schema.graphql b/stepped-solutions/13/backend/src/schema.graphql
new file mode 100644
index 0000000..5a1f430
--- /dev/null
+++ b/stepped-solutions/13/backend/src/schema.graphql
@@ -0,0 +1,7 @@
+type Mutation {
+ hi: String
+}
+
+type Query {
+ hi: String
+}