Example #1
0
from psycopg2 import IntegrityError

from newslynx.core import gen_session
from newslynx.models import ExtractCache
from newslynx.models import (ContentItem, Tag, Recipe, Author)
from newslynx.models.util import (get_table_columns, fetch_by_id_or_field)
from newslynx.views.util import validate_content_item_types
from newslynx.exc import RequestError
from newslynx.tasks import ingest_util

extract_cache = ExtractCache()


def ingest(obj,
           org_id,
           url_fields=['body'],
           requires=['url', 'type'],
           extract=True,
           kill_session=True):
    """
    Ingest an Event.
    """

    # distinct session for this eventlet.
    session = gen_session()

    # check required fields
    ingest_util.check_requires(obj, requires, type='Content Item')

    # validate type
    validate_content_item_types(obj['type'])