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)
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)
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
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