def unshare(self, plan, user_id): user_repository = UserRepository() plan_share_repository = PlanShareRepository() result = ChangeResult() user = user_repository.find(user_id) if not user: result.errors.append("No user with id {0} found".format(user_id)) else: existing = query(PlanShares.query.filter_by(plan_id=plan.id, user_id=user.id).all()).single_or_default( default=None) if existing: plan_share_repository.delete(existing.id) return result
def share(self, plan, user_id, permission): user_repository = UserRepository() plan_share_repository = PlanShareRepository() result = ChangeResult() user = user_repository.find(user_id) if not user: result.errors.append("No user with id {0} found".format(user_id)) else: existing = query(PlanShares.query.filter_by(plan_id=plan.id, user_id=user.id).all()).single_or_default( default=None) if existing: existing.permission = permission result.add_child_result(plan_share_repository.add_or_update(existing)) else: plan_share = PlanShares() plan_share.plan_id = plan.id plan_share.user_id = user.id plan_share.permission = permission result.add_child_result(plan_share_repository.add_or_update(plan_share)) return result
class FriendsResource(Resource): def __init__(self): self.user_repository = UserRepository() super(FriendsResource, self).__init__() @authenticate def get(self, **kwargs): graph = facebook.GraphAPI(access_token=kwargs['token']) friends = graph.get_connections( kwargs['user'].facebook_id, "friends")['data'] users = [] for friend in friends: user = query(self.user_repository.get( facebook_id=friend['id'])).single_or_default(default=None) if user: users.append(user) return users
def __init__(self): self.user_repository = UserRepository() super(FriendsResource, self).__init__()
def post(self): user_repository = UserRepository() auth_repository = UserAuthorizationRepository() args = self.auth_parser.parse_args() token = args['token'] uid = args['user_id'] graph = facebook.GraphAPI(access_token=token) user = graph.get_object("me", fields="email,first_name,last_name") if 'email' not in user: on_invalid_auth( "The provided key does not have email permissions. Obtain a key with extended email permissions" ) if user and user['id'] == uid: if not user_repository.user_exists(user['email']): new_user = User(uid, user['first_name'], user[ 'last_name'], user['email']) user_repository.add_or_update(new_user) user_repository.save_changes() users = user_repository.get(email=user['email']) user = users[0] if users else None if user: user.facebook_id = uid user_repository.add_or_update(user) user_repository.save_changes() auth_repository.insert_authorization(token, user.id) auth_repository.save_changes() else: on_server_error("Unknown error adding user") return True else: on_invalid_auth()