def parseResponse(jpost): if not isValid_Response(jpost): # print "Response update went wrong. Not updated." return False mid = jpost["mid"] netid = jpost["netid"] # This is not actually the creator id this is the respondedid creatorId = db.getUser(netid).uid db.createResponse(mid, creatorId, str(jpost["response"])) if db.getNotRespondedNetids(mid) == []: db.updateMeeting(mid, allResponded=True) sendAllRespondedEmail(db.getMeeting(mid).title, db.getUserFromId(db.getMeeting(mid).creatorId).netid) return True
def parseDecision(jpost): if not isValid_Decision(jpost): # print "Final Time update went wrong. Not updated." return False mid = jpost["mid"] netid = jpost["netid"] creatorId = db.getUser(netid).uid finalTime = str(jpost["finalTime"]) if db.getNotRespondedNetids(mid) == []: db.updateMeeting(mid, allResponded=True, scheduledTime=finalTime) else: db.updateMeeting(mid, scheduledTime=finalTime) # Doesn't necessarily work since the respondedNetids is everyone that responded, but not everyone invited sendFinalTimeEmail(db.getMeeting(mid).title, netid, db.getRespondedNetids(mid), jpost["finalTime"][0]) return True
def isValid_MeetingDelete(jpost): meetingDeleteFields = ["category", "mid", "netid"] for key in meetingDeleteFields: if key not in jpost: return False if not isinstance(jpost["netid"], basestring): return False if not isinstance(jpost["mid"], int): return False if db.getUser(jpost["netid"]) is None: return False # check if netid is the creator of the meeting meeting = db.getMeeting(jpost["mid"]) if meeting is None: return False if meeting not in db.getUserCreatedMeetings(jpost["netid"]): return False # print "meeting deletion ok" return True
def isValid_Decision(jpost): decisionFields = ["category", "mid", "netid", "finalTime"] for key in decisionFields: if key not in jpost: return False if not isinstance(jpost["mid"], int): return False if not isinstance(jpost["netid"], basestring): return False if len(jpost["finalTime"]) > 1: # if more than 1 scheduled time return False if not datetimes_isValid(jpost["finalTime"]): return False if db.getUser(jpost["netid"]) is None: return False if db.getMeeting(jpost["mid"]) is None: return False # print "decision ok" return True
def isValid_Response(jpost): responseFields = ["category", "mid", "netid", "response"] for key in responseFields: if key not in jpost: return False if not isinstance(jpost["mid"], int): return False if not isinstance(jpost["netid"], basestring): return False if not datetimes_isValid(jpost["response"]): return False if db.getUser(jpost["netid"]) is None: return False if db.getMeeting(jpost["mid"]) is None: return False if db.getResponse(jpost["mid"], db.getUser(jpost["netid"]).uid) is not None: return False # print "response ok" return True
aaron.lastName == None and aaron.unacceptableTimes == sample2 assert kim.uid == 4 and kim.firstName == None and \ kim.lastName == 'Sha' and kim.acceptableTimes == sample3 assert katlee.uid == 5 and katlee.firstName == 'Katherine' and \ katlee.lastName == 'Lee' and katlee.preferredTimes == pref1 ## Create meetings and check that they were properly added ######################################## db.createMeeting('Colonial Lunch', hector.uid, "[2, 4]", "04-21-17") db.createMeeting('Back Massage', hector.uid, "[2]", "04-21-17") db.createMeeting('Charter Friday', gary.uid, "[4]", "04-20-17") db.createMeeting('Code@Night', katlee.uid, "[6, 2, 1, 3, 4]", "04-19-17") colonial = db.getMeeting(1) massage = db.getMeeting(2) charter = db.getMeeting(3) code = db.getMeeting(4) assert colonial.mid == 1 and colonial.title == 'Colonial Lunch' and \ colonial.creatorId == hector.uid and colonial.respondingId == "[2, 4]" assert massage.mid == 2 and massage.title == 'Back Massage' and \ massage.creatorId == hector.uid and massage.respondingId == "[2]" assert charter.mid == 3 and charter.title == 'Charter Friday' and \ charter.creatorId == gary.uid and charter.respondingId == "[4]" assert code.mid == 4 and code.title == 'Code@Night' and \ code.creatorId == katlee.uid and code.respondingId == "[6, 2, 1, 3, 4]"