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()