From 15fd791ca46685b10f42477d7c71f6af0fc95a30 Mon Sep 17 00:00:00 2001
From: Charlielv04 <carloslv04@gmail.com>
Date: Sat, 5 Aug 2023 17:07:33 +0200
Subject: [PATCH] Delete event functionality

Add option to delete an event when changing them
---
 Ideas.txt                | 3 +--
 src/Committees-Parrot.py | 9 ++++++++-
 src/utils/gc.py          | 4 ++++
 3 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/Ideas.txt b/Ideas.txt
index d24f60a..318bd11 100644
--- a/Ideas.txt
+++ b/Ideas.txt
@@ -10,8 +10,7 @@ Template:
 - Attribute that keeps track of where you are in a given flow structure
 
 Events:
-- Possibility for event to start one day and finish another (ask if its the next day)
-- Possibility to see all events planned by the committee and allow to delete them
+- Add possibility to delete events
 
 Check error when not fulfilling some flow of the access handler or event handler (not possibility of continuing interaction)
 
diff --git a/src/Committees-Parrot.py b/src/Committees-Parrot.py
index 31426f7..e57b18c 100644
--- a/src/Committees-Parrot.py
+++ b/src/Committees-Parrot.py
@@ -234,6 +234,9 @@ class event_changer:
             self.event = [event for event in self.events if event["summary"] == call_data][0]
             return True, 'property', None
         if self.state == self.State.PROPERTY:
+            if call_data == 'Delete Event':
+                self.state = self.State.OTHER_EVENT
+                return False, 'delete', self.event
             self.state = self.State.VALUE
             self.property = call_data
             return True, 'value', None
@@ -254,7 +257,7 @@ class event_changer:
         self.keyboard = self._build_keyboard(event_names)
 
     def _build_properties(self):
-        properties = [['Date'], ['Start'], ['End'], ['Name'], ['Description']]
+        properties = [['Date'], ['Start'], ['End'], ['Name'], ['Description'], ['Delete Event']]
         self.keyboard = self._build_keyboard(properties)
 
     def _build_more(self):
@@ -395,6 +398,10 @@ class Event_handler:
 
 
         key, state, event = self.event_changer.process(data)
+        if not key and state == 'delete':
+            gc.deleteEvent(event)
+            await query.edit_message_text(text="Alright")
+            return self.state.HUB
         if not key and state == 'event':
             await query.edit_message_text(text="Alright")
             return self.state.HUB
diff --git a/src/utils/gc.py b/src/utils/gc.py
index 40906ad..4faef9b 100644
--- a/src/utils/gc.py
+++ b/src/utils/gc.py
@@ -60,6 +60,10 @@ def changeTime(formatted_time, new_time, next_day):
         date = str(date_obj)
     return date + 'T' + new_time + ':00'
 
+def deleteEvent(event):
+    service = get_calendar_service()
+    service.events().delete(calendarId=calendar_id, eventId=event["id"]).execute()
+
 def timeFormat(date, time):
 
     return str(date) + 'T' + time + ':00'
-- 
GitLab