Пример #1
0
def user_subscription(data):
    """
    Storefront: User Subscription event injection

    window_id
    item_id
    product_id
    window_start_date
    window_end_date
    window_pricing_id
    window_usage_right_id
    window_tier
    window_deleted_date
    window_type
    window_on_going
    window_repeat_count
    window_auto_upgrade
    window_allow_repurchase
    apple_product_id
    transaction_id
    internal_user_id
    external_user_id
    territory
    client_id
    subscription_id
    subscription_period
    subscription_recurrence
    subscription_status
    platform_os
    platform_name
    platform_version
    event_time
    >>> from uuid import uuid4
    >>> from django.utils import timezone
    >>> iuid = unicode(uuid4())
    >>> euid = unicode(uuid4())
    >>> territory = u'GB'
    >>> cid = unicode(uuid4())
    >>> sid = unicode(uuid4())
    >>> sp = u'P1M'
    >>> sr = u'1'
    >>> ss = u'1'
    >>> et = unicode(timezone.now().isoformat())
    >>> data = {'internal_user_id': iuid, 'external_user_id': euid, 'territory': territory, 'client_id': cid, 'subscription_id': sid, 'subscription_period': sp, 'subscription_recurrence': sr, 'subscription_status': ss, 'event_time': et}
    >>> import json
    >>> data = json.dumps(data)
    >>> user_subscription(data)
    1
    """
    logs = Log.create_flag(event_name='user_subscription', packet=data)
    FactServicesStorefrontSubscription.create_fact(logs=logs, **data)
Пример #2
0
def user_subscription(data):
    """
    Storefront: User Subscription event injection

    window_id
    item_id
    product_id
    window_start_date
    window_end_date
    window_pricing_id
    window_usage_right_id
    window_tier
    window_deleted_date
    window_type
    window_on_going
    window_repeat_count
    window_auto_upgrade
    window_allow_repurchase
    apple_product_id
    transaction_id
    internal_user_id
    external_user_id
    territory
    client_id
    subscription_id
    subscription_period
    subscription_recurrence
    subscription_status
    platform_os
    platform_name
    platform_version
    event_time
    >>> from uuid import uuid4
    >>> from django.utils import timezone
    >>> iuid = unicode(uuid4())
    >>> euid = unicode(uuid4())
    >>> territory = u'GB'
    >>> cid = unicode(uuid4())
    >>> sid = unicode(uuid4())
    >>> sp = u'P1M'
    >>> sr = u'1'
    >>> ss = u'1'
    >>> et = unicode(timezone.now().isoformat())
    >>> data = {'internal_user_id': iuid, 'external_user_id': euid, 'territory': territory, 'client_id': cid, 'subscription_id': sid, 'subscription_period': sp, 'subscription_recurrence': sr, 'subscription_status': ss, 'event_time': et}
    >>> import json
    >>> data = json.dumps(data)
    >>> user_subscription(data)
    1
    """
    logs = Log.create_flag(event_name='user_subscription', packet=data)
    FactServicesStorefrontSubscription.create_fact(logs=logs, **data)
Пример #3
0
    def _preconditions(self, row=dict):

        try:
            _row = FactServicesStorefrontSubscription.objects.get(id=row["id"])
        except FactServicesStorefrontSubscription.DoesNotExist:
            # this is fine, as there is no previous row, so we dont need to assert anything
            _row = None

        if _row:

            current_state = FactServicesStorefrontSubscription.get_last_event(
                subscription_id=_row.subscription_id, date=_row.event_utc_datetime
            )

            state, err = get_rule(
                status=_row.subscription_status.id, current_state=current_state, window_ongoing=_row.window.on_going
            )

            _state_obj, _ = DimensionSubscriptionState.objects.get_or_create(state=state)

            _row.subscription_state = _state_obj
            _row.subscription_state_error = err
            _row.save()

            row["subscription_state_id__state"] = state
            row["subscription_state_error"] = err

        del row["subscription_id"]

        return row, True
Пример #4
0
    def _preconditions(self, row=dict):

        try:
            _row = FactServicesStorefrontSubscription.objects.get(id=row['id'])
        except FactServicesStorefrontSubscription.DoesNotExist:
            # this is fine, as there is no previous row, so we dont need to assert anything
            _row = None

        if _row:

            current_state = FactServicesStorefrontSubscription.get_last_event(
                subscription_id=_row.subscription_id,
                date=_row.event_utc_datetime)

            state, err = get_rule(status=_row.subscription_status.id,
                                  current_state=current_state,
                                  window_ongoing=_row.window.on_going)

            _state_obj, _ = DimensionSubscriptionState.objects.get_or_create(
                state=state)

            _row.subscription_state = _state_obj
            _row.subscription_state_error = err
            _row.save()

            row['subscription_state_id__state'] = state
            row['subscription_state_error'] = err

        del row['subscription_id']

        return row, True