コード例 #1
0
def populate_intercom_user(session_key, user_detail=None):
    """
    Creates or updates an intercom user with information from itsyou.online
    Args:
        session_key (ndb.Key): key of the Session for this user
        user_detail (UserDetailsTO): key of the Session for this user
    """
    intercom_plugin = get_plugin('intercom_support')
    if intercom_plugin:
        session = session_key.get()
        if not session:
            return
        assert isinstance(session, Session)
        assert isinstance(intercom_plugin, IntercomSupportPlugin)
        data = get_user(session.user_id, session.jwt)
        intercom_user = upsert_intercom_user(data.username, data)
        tag_intercom_users(IntercomTags.APP_REGISTER, [data.username])
        if user_detail:
            message = """Welcome to the ThreeFold Foundation app.
If you have questions you can get in touch with us through this chat.
Our team is at your service during these hours:

Sunday: 07:00 - 15:00 GMT +1
Monday - Friday: 09:00 - 17:00 GMT +1

Of course you can always ask your questions outside these hours, we will then get back to you the next business day."""
            chat_id = start_or_get_chat(get_config(NAMESPACE).rogerthat.api_key, '+default+', user_detail.email,
                                        user_detail.app_id, intercom_user, message)
            deferred.defer(store_chat_id_in_user_data, chat_id, user_detail)
コード例 #2
0
def store_iyo_info_in_userdata(username, user_detail):
    logging.info('Getting the user\'s info from IYO')
    iyo_user = get_user(username)

    api_key = get_rogerthat_api_key()
    user_data_keys = ['name', 'email', 'phone', 'address']
    current_user_data = system.get_user_data(api_key, user_detail.email, user_detail.app_id, user_data_keys)

    user_data = dict()
    if not current_user_data.get('name') and iyo_user.firstname and iyo_user.lastname:
        user_data['name'] = '%s %s' % (iyo_user.firstname, iyo_user.lastname)

    if not current_user_data.get('email') and iyo_user.validatedemailaddresses:
        user_data['email'] = iyo_user.validatedemailaddresses[0].emailaddress

    if not current_user_data.get('phone') and iyo_user.validatedphonenumbers:
        user_data['phone'] = iyo_user.validatedphonenumbers[0].phonenumber

    if not current_user_data.get('address') and iyo_user.addresses:
        user_data['address'] = '%s %s' % (iyo_user.addresses[0].street, iyo_user.addresses[0].nr)
        user_data['address'] += '\n%s %s' % (iyo_user.addresses[0].postalcode, iyo_user.addresses[0].city)
        user_data['address'] += '\n%s' % iyo_user.addresses[0].country
        if iyo_user.addresses[0].other:
            user_data['address'] += '\n\n%s' % iyo_user.addresses[0].other

    if user_data:
        system.put_user_data(api_key, user_detail.email, user_detail.app_id, user_data)
コード例 #3
0
def notify_new_referral(my_username, app_user):
    iyo_user = get_user(my_username)

    subject = u'%s just used your invitation code' % iyo_user.firstname
    message = u'Hi!\n' \
              u'Good news, %s %s has used your invitation code.' % (iyo_user.firstname, iyo_user.lastname)

    send_message_and_email(app_user, message, subject)
コード例 #4
0
def upsert_intercom_user(iyo_username, iyo_user_info=None):
    # type: (unicode, userview) -> User
    intercom_plugin = get_intercom_plugin()

    def _upsert(iyo_username, iyo_user_info):
        # type: (unicode, userview) -> User
        name = None
        email = None
        phone = None
        if iyo_user_info.firstname and iyo_user_info.lastname:
            name = '%s %s' % (iyo_user_info.firstname, iyo_user_info.lastname)
        if iyo_user_info.validatedemailaddresses:
            email = iyo_user_info.validatedemailaddresses[0].emailaddress
        if iyo_user_info.validatedphonenumbers:
            phone = iyo_user_info.validatedphonenumbers[0].phonenumber
        return intercom_plugin.upsert_user(iyo_username, name, email, phone)

    if iyo_user_info:
        return _upsert(iyo_username, iyo_user_info)
    else:
        try:
            return intercom_plugin.get_user(user_id=iyo_username)
        except ResourceNotFound:
            return _upsert(iyo_username, get_user(iyo_username))