示例#1
0
    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
示例#2
0
 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
示例#3
0
 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)
示例#4
0
    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)
示例#5
0
    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
示例#6
0
 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)