示例#1
0
def PUT_room(id):
    try:
        data = JSONencoder.load(request.data)
        room.update(id, data=data)
        return dumpJSON({'_id': id})
    except Exception as e:
        return respond500(e)
示例#2
0
def PUT_cleaner(id):
    try:
        data = JSONencoder.load(request.data)
        cleaner.update(id, data)
        return respond200()
    except Exception as e:
        return respond500(e)
示例#3
0
def POST_task(room_id):
    try:
        data = JSONencoder.load(request.data)
        id = room.add_task(room_id, data)
        return dumpJSON({'_id': id})
    except Exception as e:
        return respond500(e)
示例#4
0
def POST_receipt(list_id):
    """
	Creates receipt + sends receipt to client via SMS

	A receipt is a snapshot of the list at time of POST
	When a receipt is posted, the list/receipt models do the work
	list.create_receipt retrieves a fully populated list and inserts the receipt

	@param 		{list_id} _id of list of which to take snapshot and save as receipt 
	payload:	Request is made with entire list object - have _cleaner as cleaner._id

	Returns _id of newly inserted receipt 
	"""
    try:
        list_data = JSONencoder.load(request.data)

        # verify phonenumber in list_data -- need it to send link to receipt to client
        if not 'phonenumber' in list_data:
            raise APIexception(code=1)
        phonenumber = list_data['phonenumber']

        # need to fetch cleaner for just cleaner's name in SMS message
        cleaner_id = list_data[
            '_cleaner']  # something went wrong with request if _cleaner not in payload
        c = cleaner.find_one(id=cleaner_id)

        # create the receipt that will live forever
        receipt_id = List.create_receipt(list_id)

        # send SMS to client that has link to viewable receipt
        twilio_tools.send_receipt(phonenumber, c['name'], receipt_id)

        return dumpJSON({'_id': receipt_id})
    except Exception as e:
        return respond500(e)
示例#5
0
def POST_room(list_id):
    try:
        data = JSONencoder.load(request.data)
        room_id = List.add_room(list_id, room_data=data)
        return dumpJSON({'_id': room_id})
    except Exception as e:
        return respond500(e)
示例#6
0
def PUT_send_list(id):
    """
	Sends new agreement to client via SMS

	@param 		{id} _id of list to send as agreement to client 
	payload:	Request is made with entire list object - have _cleaner as cleaner._id

	Returns 200 response
	"""
    try:
        list_data = JSONencoder.load(request.data)

        # verify phonenumber in list_data -- need it to send link to receipt to client
        if not 'phonenumber' in list_data:
            raise APIexception(code=1)
        phonenumber = list_data['phonenumber']

        # need to fetch cleaner for just cleaner's name in SMS message
        cleaner_id = list_data[
            '_cleaner']  # something went wrong with request if _cleaner not in payload
        c = cleaner.find_one(id=cleaner_id)

        # send SMS to client that has link to viewable agreement
        twilio_tools.send_agreement(phonenumber, c['name'], id)

        return respond200()
    except Exception as e:
        return respond500(e)
示例#7
0
def POST_list(cleaner_id):
    try:
        list_data = JSONencoder.load(request.data)
        list_id = cleaner.add_list(cleaner_id, list_data=list_data)
        return dumpJSON({'_id': list_id})
    except Exception as e:
        return respond500(e)
示例#8
0
def POST_cleaner():
    """ Insert and login new cleaner """
    try:
        data = JSONencoder.load(request.data)
        id = cleaner.insert_new(data)
        c = cleaner.find_public(id=id)
        auth.login(c)
        return dumpJSON(c)
    except Exception as e:
        return respond500(e)
示例#9
0
def get_user():
    """
	Returns JSON encoded user if user in session, otherwise None

	** Potential issue I want to avoid:
		cleaner (user) was deleted (via backstage or direct database interaction) or something else bazaar happened
		yet cleaner is somehow still in session
		If this occurs - take user out of session
	"""
    if not ('user' in session and session['user']):
        return None

    # **see note above
    user = JSONencoder.load(session['user'])
    if not cleaner.find_one(id=user['_id']):
        session['user'] = None

    return session['user']
示例#10
0
def get_user():
	"""
	Returns JSON encoded user if user in session, otherwise None

	** Potential issue I want to avoid:
		cleaner (user) was deleted (via backstage or direct database interaction) or something else bazaar happened
		yet cleaner is somehow still in session
		If this occurs - take user out of session
	"""
	if not ('user' in session and session['user']):
		return None

	# **see note above
	user = JSONencoder.load(session['user'])
	if not cleaner.find_one(id=user['_id']):
		session['user'] = None

	return session['user']
示例#11
0
def POST_feedback(list_id):
    """
	@param 		{list_id} _id of list that is owner of feedback
	payload:	feedback data 

	Sends notification via SMS to cleaner that feedback has been sent with link to list 
	Returns _id of newly inserted feedback
	"""
    try:
        feedback_data = JSONencoder.load(request.data)
        feedback_id = List.add_feedback(list_id, feedback_data)

        # get list and cleaner so that can send SMS
        l = List.find_one(id=list_id)
        c = cleaner.find_one(id=l['_cleaner'])
        twilio_tools.send_feedback_notification(c['phonenumber'], c['name'],
                                                list_id)

        return dumpJSON({'_id': feedback_id})
    except Exception as e:
        return respond500(e)
示例#12
0
def login(user_data):
    user_data = JSONencoder.encode(user_data)
    session['user'] = user_data
示例#13
0
def login(user_data):
	user_data = JSONencoder.encode(user_data)
	session['user'] = user_data