diff options
| author | Wes Bos <wesbos@gmail.com> | 2018-06-27 13:02:25 -0400 |
|---|---|---|
| committer | Wes Bos <wesbos@gmail.com> | 2018-06-27 13:02:25 -0400 |
| commit | ff7fc88e36bb66a47327fa2c7e8513b222e539ef (patch) | |
| tree | ecfc2901b53d8e068252b058a07d1a4e63d42816 /stepped-solutions/21/backend/src | |
| parent | 4e52a98a0f78d2bedfdd31a1955639143cd26fc6 (diff) | |
Video 21
Diffstat (limited to 'stepped-solutions/21/backend/src')
| -rwxr-xr-x | stepped-solutions/21/backend/src/resolvers/Mutation.js | 45 | ||||
| -rwxr-xr-x | stepped-solutions/21/backend/src/schema.graphql | 12 |
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 +} |
