def save_user(self): """ Save user to database. params: user_info: dict returns: bloolean """ try: email = self.user_info['email'] name = self.user_info['name'] picture = self.user_info['picture'] user = User.query.filter_by(email=email).first() role = Role.query.filter_by(role='Default User').first() if not role: role = Role(role='Default User') role.save() if not user: try: user_data = User(email=email, name=name, picture=picture) user_data.save() user_role = UsersRole(user_id=user_data.id, role_id=role.id) user_role.save() notification_settings = NotificationModel( user_id=user_data.id) notification_settings.save() except Exception as e: # noqa db_session.rollback() except SQLAlchemyError: pass return True
def resolve_get_user_notification_settings(self, info): user = get_user_from_db() query = Notification.get_query(info) notification = query.filter( NotificationModel.user_id == user.id).first() if notification is None: notification = NotificationModel(user_id=user.id) notification.save() return [notification] # makes the response iterable
def mutate(self, info, **kwargs): user = UserModel(**kwargs) if not verify_email(user.email): raise GraphQLError("This email is not allowed") payload = { 'model': UserModel, 'field': 'email', 'value': kwargs['email'] } with SaveContextManager(user, 'User email', payload): notification_settings = NotificationModel(user_id=user.id) notification_settings.save() return CreateUser(user=user)
def mutate(self, info, **kwargs): user = get_user_from_db() notification = NotificationModel.query.filter_by( user_id=user.id).first() if not notification: notification = NotificationModel(user_id=user.id) if 'device_health_notification' in kwargs: notification.device_health_notification = kwargs[ 'device_health_notification'] if 'meeting_update_notification' in kwargs: notification.meeting_update_notification = kwargs[ 'meeting_update_notification'] notification.save() return UpdateNotification(notification=notification)
def save_user(self, email, *expected_args): # noqa: C901 """ Save user to database. params: user_info: dict returns: bloolean """ try: email = self.user_info['email'] name = self.user_info['name'] picture = self.user_info['picture'] user = User.query.filter_by(email=email).first() role = Role.query.filter_by(role='Default User').first() if not role: role = Role(role='Default User') role.save() if not user: try: response = self.get_user_details_from_api( email, *expected_args) user_data = User(email=email, name=name, picture=picture) user_data.roles.append(role) for value in response['values']: if user_data.email == value["email"]: if value['location']: # pragma: no cover check_and_add_location( value['location']['name']) notification_settings = NotificationModel( user_id=user_data.id) notification_settings.save() except Exception as e: # noqa db_session.rollback() except SQLAlchemyError: # pragma: no cover pass return True
def mutate(self, info, **kwargs): user = UserModel(**kwargs) with SaveContextManager(user, kwargs.get('email'), 'User email'): notification_settings = NotificationModel(user_id=user.id) notification_settings.save() return CreateUser(user=user)