def create_fake_creator( name=None, is_group=False, alias_names=None ): creator_dict = { 'name': name or random_word_generator(2), 'is_group': is_group } alias_names = alias_names or [] with session_scope() as session: new_fake_creator = Creator(**creator_dict) for alias_name in alias_names: new_alias = CreatorAlias(name=alias_name, creator=new_fake_creator) session.add(new_fake_creator) session.commit() creator_dict = api_to_model_dict({'creator': new_fake_creator.to_dict()}) return creator_dict
def create_creator(creator_dict): creator_dict = dict(creator_dict) creator_dict.pop('id', None) with session_scope() as session: roles = creator_dict.pop('roles', None) related_creators = creator_dict.pop('related_creators', []) aliases = creator_dict.pop('aliases', []) new_creator = Creator(**creator_dict) session.add(new_creator) if roles: _update_roles_for_creator(session, roles, new_creator) if related_creators: related_creator_rows = session.query(Creator)\ .filter(Creator.id.in_(related_creators))\ .all() new_creator.related_creators = related_creator_rows if aliases: _update_creator_aliases(session, aliases, new_creator) session.commit() return new_creator.to_dict()