summaryrefslogtreecommitdiffstats
path: root/stepped-solutions/21/backend/src/resolvers/Mutation.js
diff options
context:
space:
mode:
Diffstat (limited to 'stepped-solutions/21/backend/src/resolvers/Mutation.js')
-rwxr-xr-xstepped-solutions/21/backend/src/resolvers/Mutation.js45
1 files changed, 45 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;