Esempio n. 1
0
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
Esempio n. 2
0
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
Esempio n. 3
0
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
Esempio n. 4
0
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
Esempio n. 5
0
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
Esempio n. 6
0
	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]"