def create_fact(cls, **data):
        client = DimensionClient.insert(client_id=data['client_id'])
        item = DimensionItem.insert(item_id=data['item_id'])
        data_role = DimensionDataRole.insert(role=data['data_role'])

        definition = DimensionDefinition.insert(definition=data['definition'])

        processing_state = DimensionProcessingState.insert(processing_state=data['processing_state'])
        territory = DimensionTerritory.insert(code=data['territory'])

        asset = DimensionAssets.insert(
            asset_id=data['asset_id'],
            type=data['asset_type']
        )

        provider = DimensionItemProvider.insert(
            True,
            provider_id=data['provider_item_id'],
            provider_name=data['provider'],
            )


        delivery_date = datetime.datetime.strptime(str(data['delivery_date']), settings.DATETIME_FORMAT)
        event_date = datetime.datetime.strptime(data['event_time'], settings.DATETIME_FORMAT)
        event_utc_datetime = datetime.datetime.strptime(data['event_time'], settings.DATETIME_FORMAT)

        fact = FactServicesBackstageAssetMatch.objects.create(
            client=client,
            item=item,
            asset=asset,
            data_role=data_role,
            processing_state=processing_state,
            provider=provider,
            territory=territory,
            spec_name=data['spec_name'],
            delivery_date=delivery_date,
            definition=definition,
            file_size=data['file_size'],
            duration=data['duration'],
            event_date=event_date.date(),
            event_utc_date=DimensionUTCDate.date_from_datetime(datetime=data['event_time']),
            event_utc_datetime=event_utc_datetime
        )

        fact.save()
        if data['used_asset_ids']:
            for asset_id in data['used_asset_ids']:
                asset_dim = DimensionAssets.objects.get_or_create(asset_id=asset_id)
                fact.used_asset_ids.add(asset_dim[0].id)
        else:
            fact.used_asset_ids = ''

        if data['languages']:
            for language in data['languages']:
                lang_dim = DimensionLanguage.objects.get_or_create(iso_code=language)
                fact.languages.add(lang_dim[0].id)
        else:
            fact.languages = ''
        return fact
示例#2
0
    def create_fact(cls, **data):
        dip = DimensionItemProvider.insert(
            True,
            provider_id=data['provider_id'],
            provider_name=data['provider_name'],
        )
        pl = DimensionLanguage.insert(iso_code=data['primary_language'])
        vendor = DimensionVendor.insert(name=data['vendor'])
        country = DimensionCountryCode.objects.get(
            iso_code=data['country_of_origin_iso'])
        meta_type = DimensionMetadataType.insert(type=data['type'])
        item = DimensionItem.insert(item_id=data['item_id'])

        f = FactServicesBackstageItemMetadata.objects.create(
            metadata_id=data['metadata_id'],
            version=data['version'],
            country_of_origin=country,
            title=data['title'],
            copyright_cline=data['copyright_cline'],
            provider=dip,
            type=meta_type,
            isan=data['isan'],
            eidr=data['eidr'],
            release_date=data['release_date'],
            production_company=data['production_company'],
            release_year=data['release_year'],
            primary_language=pl,
            short_synopsis=data['short_synopsis'],
            medium_synopsis=data['medium_synopsis'],
            long_synopsis=data['long_synopsis'],
            runtime=data['runtime'],
            vendor=vendor,
            episode_number=data['episode_number'] or None,
            season=data['season'] or None,
            show_title=data['show_title'] or None,
            created=data['created'],
            modified=data['modified'] or data['created'],
            original_url=data['original_url'],
            ultraviolet=data['ultraviolet'],
            event_utc_date=DimensionUTCDate.date_from_datetime(
                datetime=data['event_time']),
            event_utc_datetime=data['event_time'])

        f.item_meta.add(item)

        return f
    def create_fact(cls, **data):
        dip = DimensionItemProvider.insert(
            True,
            provider_id=data['provider_id'],
            provider_name=data['provider_name'],
        )
        pl = DimensionLanguage.insert(iso_code=data['primary_language'])
        vendor = DimensionVendor.insert(name=data['vendor'])
        country = DimensionCountryCode.objects.get(iso_code=data['country_of_origin_iso'])
        meta_type = DimensionMetadataType.insert(type=data['type'])
        item = DimensionItem.insert(item_id=data['item_id'])

        f = FactServicesBackstageItemMetadata.objects.create(
            metadata_id=data['metadata_id'],
            version=data['version'],
            country_of_origin=country,
            title=data['title'],
            copyright_cline=data['copyright_cline'],
            provider=dip,
            type=meta_type,
            isan=data['isan'],
            eidr=data['eidr'],
            release_date=data['release_date'],
            production_company=data['production_company'],
            release_year=data['release_year'],
            primary_language=pl,
            short_synopsis=data['short_synopsis'],
            medium_synopsis=data['medium_synopsis'],
            long_synopsis=data['long_synopsis'],
            runtime=data['runtime'],
            vendor=vendor,
            episode_number=data['episode_number'] or None,
            season=data['season'] or None,
            show_title=data['show_title'] or None,
            created=data['created'],
            modified=data['modified'] or data['created'],
            original_url=data['original_url'],
            ultraviolet=data['ultraviolet'],
            event_utc_date=DimensionUTCDate.date_from_datetime(datetime=data['event_time']),
            event_utc_datetime=data['event_time']
        )

        f.item_meta.add(item)

        return f