def create_member(old_id=1, name='Joe Blue', email='*****@*****.**', active=True, old_marketing_id=1, is_course_member=False, last_updated=None, marketing_id=None): if not marketing_id: search_marketing = Marketing.query.filter_by( description='Search').first() if not search_marketing: marketing = create_marketing(description='Search') marketing_id = str(marketing.id) else: marketing_id = str(search_marketing.id) data = { 'old_id': old_id, 'name': name, 'email': email, 'active': active, 'old_marketing_id': old_marketing_id, 'is_course_member': is_course_member, 'last_updated': last_updated, 'marketing_id': marketing_id } member = Member(**data) dao_create_member(member) return member
def subscribe_member(): data = request.get_json(force=True) current_app.logger.info('Subscribe member: {}'.format(data)) validate(data, post_subscribe_member_schema) member = dao_get_member_by_email(data.get('email')) if member: return jsonify( {'error': 'member already subscribed: {}'.format(member.email)}), 400 member = Member(name=data['name'], email=data['email'], marketing_id=data['marketing_id'], active=True) dao_create_member(member) send_ga_event(f"Subscribed {member.id}", "members", "subscribe", f"{member.id}") basic_html = get_email_html( email_type=BASIC, title='Subscription', message= "Thank you{} for subscribing to New Acropolis events and magazines". format(' {}'.format(data.get('name', '')) if 'name' in data else ''), member_id=member.id) response = send_email(data['email'], 'New Acropolis subscription', basic_html) return jsonify(member.serialize())
def import_members(): text = request.get_data(as_text=True) text = text.replace('"EmailAdd": "anon"', '"EmailAdd": null') text = text.replace('"EmailAdd": ""', '"EmailAdd": null') text = text.replace('"CreationDate": "0000-00-00"', '"CreationDate": null') data = json.loads(text) validate(data, post_import_members_schema) errors = [] members = [] for item in data: err = '' member = Member.query.filter(Member.old_id == item['id']).first() if member: err = u'member already exists: {}'.format(member.old_id) current_app.logger.info(err) errors.append(err) else: member = Member(old_id=item['id'], name=item['Name'], email=item['EmailAdd'], active=item["Active"] == "y", created_at=item["CreationDate"], old_marketing_id=item["Marketing"], is_course_member=item["IsMember"] == "y", last_updated=item["LastUpdated"]) marketing = Marketing.query.filter( Marketing.old_id == item['Marketing']).first() if not marketing: err = "Cannot find marketing: {}".format(item['Marketing']) current_app.logger.error(err) errors.append(err) continue else: member.marketing_id = marketing.id dao_create_member(member) members.append(member) current_app.logger.info('Creating member: %d, %s', member.old_id, member.name) res = {"members": [m.serialize() for m in members]} if errors: res['errors'] = errors return jsonify(res), 201 if members else 400 if errors else 200