def post(self): user = users.GetCurrentUser() jsonObj = json.loads(self.request.body) names = jsonObj["names"] events = jsonObj["events"] cycle_id = jsonObj["cycleId"] cycle_title = jsonObj["title"] cycle = None user_event_map = {} # Get the cycle and any existing users in the cycle. if (cycle_id): logging.info("getting cycle with id: " + cycle_id) cycle = db.get(db.Key.from_path(Cycle.kind(), cycle_id)) if (cycle): logging.info("got cycle: " + str(cycle)) user_event_map = util.getEmailToEventId(cycle) if (not cycle): # Create the cycle db entry if (not cycle_id): os_rand = os.urandom(30) cycle_id = id = hashlib.sha1(user.nickname() + '-' + os_rand).hexdigest() cycle = Cycle(key_name = cycle_id, initiator = user, title = cycle_title) cycle.put() logging.info("Cycle with id \"" + cycle_id + "\" created by " + user.nickname()) # Create the user db entries for event in events: logging.info("event: " + str(event)) creator = event["owner"] if (not creator in names): logging.info("skipped due to creator being unselected: " + creator) continue if (not creator in user_event_map): user_event_map[creator] = [] # Check to make sure we haven't already processed the event. if (not event["eventId"] in user_event_map[creator]): # Create a new event and put it in the map. user_event_map[creator].append(event) # Save the event for later. db_event = CalendarEvent( parent = cycle, owner = creator, calendar_id = event["calendarId"], event_id = event["eventId"], summary = event["summary"], event_location = event["location"], recurrence = event["recurrence"], start_time = event["startTime"], link = event["link"], state = "Pending") db_event.put() logging.info("created event: " + event["eventId"])
def post(self): user = users.GetCurrentUser() # TODO: Validate user is owner of current cycle. cycle_id = self.request.get('id') cycle = db.get(db.Key.from_path(Cycle.kind(), cycle_id)) if not cycle: self.response.set_status(404, 'Cycle with id ' + cycle_id + ' not found.') return events_query = CalendarEvent.all(keys_only=True) events_query.ancestor(cycle) db.delete(events_query.run()) db.delete(cycle) logging.info('Deleted cycle with id ' + cycle_id)
def post(self): user = users.GetCurrentUser() # TODO: Validate user is owner of the cycle containing the event. event_id = self.request.get("event_id") cycle_id = self.request.get("cycle_id") event = None if event_id and cycle_id: cycle_key = db.Key.from_path(Cycle.kind(), cycle_id) event = CalendarEvent.gql("WHERE event_id = :1 AND ANCESTOR IS :2", event_id, cycle_key).get() if event is not None: event.delete() logging.info("Deleted event with id " + event_id) else: self.response.set_status(404, "Event with id %s not found in " "cycle with id %s" % (event_id, cycle_id))