Exemplo n.º 1
0
	def decorated(self, *args, **kwargs):
		user_id = self.session.get('user_id', None)
		user = user_id and User.get(user_id) or None
		if not user:
			return 403, 
		kwargs['user'] = user
		return f(self, *args, **kwargs)
Exemplo n.º 2
0
	def on_create_room(self, raw_attendees, user):
		chat_room = ChatRoom()
		chat_room.creator = user
		for raw_attendee in raw_attendees:
			attendee_id = raw_attendee.get('id', None)
			if attendee_id:
				attendee = User.get(attendee_id)
			elif raw_attendee['type'] == 'facebook':
				# TODO race condition may occurs need cacth exceptions
				attendee = User.get_by_facebook(raw_attendee['uid'])
				if not attendee:
					attendee = User()
					facebook_account = attendee.facebook_account =\
						FacebookAccount()
					facebook_account.name = attendee.nickname =\
						raw_attendee['nickname']
					attendee.email = raw_attendee.get('email', None)
					facebook_account.uid = raw_attendee['uid']
					db.session.add(attendee)
					db.session.commit()
			else:
				# TODO email account?
				pass
			chat_room.users.append(attendee)
		db.session.add(chat_room)
		db.session.commit()
		json = chat_room.to_json()
		json['message'] = chat_room.messages.first()
		return None, chat_room.to_json()