From 7a6f6ff6e89b4cba4636603e714df0a7c3ca49e3 Mon Sep 17 00:00:00 2001 From: Ramon Wenger Date: Fri, 21 Sep 2018 15:24:52 +0200 Subject: [PATCH] Add functionality to room delete button --- client/src/components/rooms/RoomPopover.vue | 2 +- client/src/components/rooms/RoomWidget.vue | 29 ++++++++++++++++++- .../src/graphql/gql/mutations/deleteRoom.gql | 12 ++++++++ server/rooms/mutations.py | 16 ++++++++++ 4 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 client/src/graphql/gql/mutations/deleteRoom.gql diff --git a/client/src/components/rooms/RoomPopover.vue b/client/src/components/rooms/RoomPopover.vue index 71ca896f..c9793867 100644 --- a/client/src/components/rooms/RoomPopover.vue +++ b/client/src/components/rooms/RoomPopover.vue @@ -1,6 +1,6 @@ diff --git a/client/src/components/rooms/RoomWidget.vue b/client/src/components/rooms/RoomWidget.vue index 61346973..d3d7efdd 100644 --- a/client/src/components/rooms/RoomWidget.vue +++ b/client/src/components/rooms/RoomWidget.vue @@ -10,13 +10,16 @@ - + diff --git a/client/src/graphql/gql/mutations/deleteRoom.gql b/client/src/graphql/gql/mutations/deleteRoom.gql new file mode 100644 index 00000000..8ee459c2 --- /dev/null +++ b/client/src/graphql/gql/mutations/deleteRoom.gql @@ -0,0 +1,12 @@ +mutation DeleteRoom($input: DeleteRoomInput!) { + deleteRoom(input: $input) { + success + errors + } +} + +#{ +# "input": { +# "id": "Um9vbU5vZGU6MjY=" +# } +#} diff --git a/server/rooms/mutations.py b/server/rooms/mutations.py index 87c9cf25..3eed6668 100644 --- a/server/rooms/mutations.py +++ b/server/rooms/mutations.py @@ -41,6 +41,22 @@ class UpdateRoom(MutateRoom): room = graphene.Argument(UpdateRoomArgument) # NB: can't be named ChangeRoomInput, otherwise graphene complains +class DeleteRoom(relay.ClientIDMutation): + class Input: + id = graphene.ID(required=True) + + success = graphene.Boolean() + errors = graphene.List(graphene.String) + + @classmethod + def mutate_and_get_payload(cls, *args, **kwargs): + id = kwargs.get('id') + room = get_object(Room, id) + room.delete() + return cls(success=True) + + class RoomMutations: update_room = UpdateRoom.Field() add_room = AddRoom.Field() + delete_room = DeleteRoom.Field()