summaryrefslogtreecommitdiffstats
path: root/stepped-solutions/21/backend/src
diff options
context:
space:
mode:
authorWes Bos <wesbos@gmail.com>2018-06-27 13:02:25 -0400
committerWes Bos <wesbos@gmail.com>2018-06-27 13:02:25 -0400
commitff7fc88e36bb66a47327fa2c7e8513b222e539ef (patch)
treeecfc2901b53d8e068252b058a07d1a4e63d42816 /stepped-solutions/21/backend/src
parent4e52a98a0f78d2bedfdd31a1955639143cd26fc6 (diff)
Video 21
Diffstat (limited to 'stepped-solutions/21/backend/src')
-rwxr-xr-xstepped-solutions/21/backend/src/resolvers/Mutation.js45
-rwxr-xr-xstepped-solutions/21/backend/src/schema.graphql12
2 files changed, 57 insertions, 0 deletions
diff --git a/stepped-solutions/21/backend/src/resolvers/Mutation.js b/stepped-solutions/21/backend/src/resolvers/Mutation.js
new file mode 100755
index 0000000..c5ac963
--- /dev/null
+++ b/stepped-solutions/21/backend/src/resolvers/Mutation.js
@@ -0,0 +1,45 @@
+const Mutations = {
+ async createItem(parent, args, ctx, info) {
+ // TODO: Check if they are logged in
+
+ const item = await ctx.db.mutation.createItem(
+ {
+ data: {
+ ...args,
+ },
+ },
+ info
+ );
+
+ console.log(item);
+
+ return item;
+ },
+ updateItem(parent, args, ctx, info) {
+ // first take a copy of the updates
+ const updates = { ...args };
+ // remove the ID from the updates
+ delete updates.id;
+ // run the update method
+ return ctx.db.mutation.updateItem(
+ {
+ data: updates,
+ where: {
+ id: args.id,
+ },
+ },
+ info
+ );
+ },
+ async deleteItem(parent, args, ctx, info) {
+ const where = { id: args.id };
+ // 1. find the item
+ const item = await ctx.db.query.item({ where }, `{ id title}`);
+ // 2. Check if they own that item, or have the permissions
+ // TODO
+ // 3. Delete it!
+ return ctx.db.mutation.deleteItem({ where }, info);
+ },
+};
+
+module.exports = Mutations;
diff --git a/stepped-solutions/21/backend/src/schema.graphql b/stepped-solutions/21/backend/src/schema.graphql
new file mode 100755
index 0000000..82bb186
--- /dev/null
+++ b/stepped-solutions/21/backend/src/schema.graphql
@@ -0,0 +1,12 @@
+# import * from './generated/prisma.graphql'
+
+type Mutation {
+ createItem(title: String, description: String, price: Int, image: String, largeImage: String): Item!
+ updateItem(id: ID!, title: String, description: String, price: Int): Item!
+ deleteItem(id: ID!): Item
+}
+
+type Query {
+ items: [Item]!
+ item(where: ItemWhereUniqueInput!): Item
+}