mutations.py 文件源码

python
阅读 29 收藏 0 点赞 0 评论 0

项目:crm 作者: Incubaid 项目源码 文件源码
def mutate(cls, root, context, **kwargs):
        """
        Mutation logic is handled here
        """

        # 'before_insert' hooks won't work with db.session.bulk_save_objects
        # we need to find a way to get hooks to work with bulk_save_objects @todo

        records = []
        for data in kwargs.get('records', []):
            actual = Contact.query.get(data['uid'])

            if not actual:
                raise GraphQLError('Invalid id (%s)' % data['id'])

            c = Contact.get_object_from_graphql_input(data)

            for column_name, _ in inspect(Contact).attrs.items():
                if column_name == 'id':
                    continue
                if column_name not in data:
                    continue
                setattr(actual, column_name, getattr(c, column_name))
            db.session.add(actual)
            records.append(actual.id)
        try:
            db.session.commit()
            return cls(ok=True, ids=records)
        except Exception as e:
            raise GraphQLError(e.args)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号