예제 #1
0
    def run(self, admin_id, email, created_at, distinct_id=None, backend='password', activation_url=None):
        if distinct_id is not None:
            analytics.alias(distinct_id, email)
        analytics.alias(email, admin_id)

        analytics.identify(admin_id, traits={'email': email, 'Lifecycle stage': 'customer', 'created_at': created_at},
                           timestamp=self.timestamp)
        data = {'authBackend': backend}
        if activation_url is not None:
            data['activationUrl'] = activation_url
        analytics.track(admin_id, 'Sign up', data, timestamp=self.timestamp)
예제 #2
0
def alias():
    try:
        content = request.get_json(silent=True)
        _previous_id = content.get('previousId')
        _userId = content.get('userId')
        _context = content.get('context')
        _timestamp = format_timestamp(content.get('timestamp'))
        _integrations = content.get('integrations')

        analytics.alias(_previous_id, _userId, _context, _timestamp, _integrations)

        return format_response('alias')
    except Exception as e:
        return json.dumps({'error': str(e)})
예제 #3
0
    def test_alias(self):

        session_id = str(randint(1000000, 99999999))
        user_id = 'bob+'+session_id + '@gmail.com'

        analytics.default_client.flush_at = 1
        analytics.default_client.async = False

        last_aliases = analytics.stats.aliases
        last_successful = analytics.stats.successful

        analytics.identify(session_id, traits={'AnonymousTrait': 'Who am I?'})
        analytics.track(session_id, 'Anonymous Event')

        # alias the user
        analytics.alias(session_id, user_id)

        analytics.identify(user_id, traits={'IdentifiedTrait': 'A Hunk'})
        analytics.track(user_id, 'Identified Event')

        self.assertEqual(analytics.stats.aliases, last_aliases + 1)
        self.assertEqual(analytics.stats.successful, last_successful + 5)
예제 #4
0
    def test_alias(self):

        session_id = str(randint(1000000, 99999999))
        user_id = 'bob+'+session_id + '@gmail.com'

        analytics.default_client.flush_at = 1
        analytics.default_client.async = False

        last_aliases = analytics.stats.aliases
        last_successful = analytics.stats.successful

        analytics.identify(session_id, traits={'AnonymousTrait': 'Who am I?'})
        analytics.track(session_id, 'Anonymous Event')

        # alias the user
        analytics.alias(session_id, user_id)

        analytics.identify(user_id, traits={'IdentifiedTrait': 'A Hunk'})
        analytics.track(user_id, 'Identified Event')

        self.assertEqual(analytics.stats.aliases, last_aliases + 1)
        self.assertEqual(analytics.stats.successful, last_successful + 5)
예제 #5
0
 def send_identify(self, email, user_id):
     try:
         if self.is_enabled:
             analytics.identify(
                 user_id,
                 {
                     'anonymous_id': self.anonymous_id,
                     'installation_id': self.device_id,
                     'email': email,
                     'user_id': user_id,
                     'deviceId': user_id,
                     # all DATE and TIME submissions need to be in ISO 8601 format
                     'createdAt': datetime.datetime.now().isoformat(),
                 },
                 anonymous_id=self.anonymous_id,
             )
             # Associate old unauthenticated events to post-authenticated events
             analytics.alias(self.anonymous_id, user_id)
     except Exception as except_err:
         logger.error(
             "Exception in send_identify while communicating to segment")
         logger.exception(except_err)
예제 #6
0
 def test_alias(self):
     analytics.alias('previousId', 'userId')
     analytics.flush()
예제 #7
0
 def test_alias(self):
     analytics.alias('previousId', 'userId')
     analytics.flush()
예제 #8
0
 def test_alias(self):
     analytics.alias('previousId', 'distinct_id')
     analytics.flush()
예제 #9
0
        properties =  arguments["--properties"]
        if properties:
            properties = json.loads(properties)
        analytics.track(user_id = userId, anonymous_id=anonymousId, event = arguments["--event"], properties = properties, context = context, integrations = integrations)
    elif msgType == "screen":
        properties =  arguments["--properties"]
        if properties:
            properties = json.loads(properties)
        analytics.screen(user_id = userId, anonymous_id=anonymousId, name = arguments["--name"], properties = properties, context = context, integrations = integrations)
    elif msgType == "page":
        properties =  arguments["--properties"]
        if properties:
            properties = json.loads(properties)
        analytics.page(user_id = userId, anonymous_id=anonymousId, name = arguments["--name"], properties = properties, context = context, integrations = integrations)
    elif msgType == "alias":
        analytics.alias(user_id = userId, previousId=arguments["--previousId"])
    elif msgType == "group":
        traits =  arguments["--traits"]
        if traits:
            traits = json.loads(traits)
        analytics.group(user_id = userId, anonymous_id=anonymousId, group_id = arguments["--groupId"], traits = traits, context = context, integrations = integrations)
    elif msgType == "identify":
        traits =  arguments["--traits"]
        if traits:
            traits = json.loads(traits)
        analytics.identify(user_id = userId, anonymous_id=anonymousId, traits = traits, context = context, integrations = integrations)
    else:
        raise Exception('Unknown argument')

    analytics.flush