Exemple #1
0
def create_account(request, account, accountID=None, updateAPI=True):

    accountAlreadyExists = False
    createAPIAccount = True

    if accountID:
        accountObj = Account.objects.get(id=accountID)
        accountAlreadyExists = True
    else:
        try:
            accountObj = Account.objects.get(email=account['email'])
            accountAlreadyExists = True
        except ObjectDoesNotExist:
            accountObj = Account()

    accountObj.first_name = account['first_name']
    accountObj.last_name = account['last_name']
    accountObj.gender = account['gender']

    if account['birth_date'] not in ['', 'None', None]:
        dob = datetime.datetime.strptime(account['birth_date'], '%Y-%m-%d').date()
    else:
        dob = None

    accountObj.birth_date = dob
    accountObj.email = account['email']
    accountObj.street_number = account['street_number']
    accountObj.city = account['city']
    accountObj.zipcode = account['zipcode']
    accountObj.phone = account['phone']
    accountObj.country = account['country']
    accountObj.utm_campaign = account['utm_campaign']
    accountObj.utm_source = account['utm_source']
    accountObj.utm_medium = account['utm_medium']
    accountObj.tr_language = account['tr_language']
    accountObj.tr_input_method = account['tr_input_method']
    accountObj.tr_ip_address = account['tr_ip_address']
    accountObj.lead = account['lead']

    if 'mailing_list' in account:
        accountObj.mailing_list = int(account['mailing_list'])
    else:
        accountObj.mailing_list = int(account['mailing_lists'][0]['resource_uri'].split('/')[3])

    if 'tr_referral_name' in account:
        accountObj.tr_referral = account['tr_referral_name']
    else:
        accountObj.tr_referral = account['tr_referral']['name']

    accountObj.save()

    if updateAPI:
        if accountAlreadyExists:
            createAPIAccount = api_delete_account(accountObj.resource_uri)

        if createAPIAccount:
            api_create_successful, resource_uri = api_create_account(accountObj)
            if api_create_successful:
                accountObj.resource_uri = resource_uri
                accountObj.save()

                if accountAlreadyExists:
                    message = 'Account successfully updated'
                else:
                    message = 'Account successfully created'

                messages.success(request, message)
            else:
                messages.warning(request, 'Account successfully created but the API post failed')