def register(request): # POST for reg res = {} try: username = request.POST['username'] password = request.POST['password'] except: res['success'] = False res['message'] = 'Invalid Request' if username and password: existingUser = User.objects.filter(username = username) if len(existingUser) > 0: res['success'] = False res['message'] = 'Username Exists' else: # create user user = User.objects.create_user(username = username, password = password) user.save() # create profile profile = Profile(user = user, nickname = '') profile.save() res['success'] = True res['id'] = user.pk res['username'] = user.username return JsonResponse(res)
def register_user(email, password, firstname, lastname, role, speciality=None): user = User.objects.create_user(email.lower(), email.lower(), password) profile = Profile(firstname=firstname, lastname=lastname, speciality=speciality) profile.save() account = Account(role=role, profile=profile, user=user) account.save() medical_info = MedicalInfo(account=account) medical_info.save() logger.log(Action.ACTION_ACCOUNT, "Account registered", account) return user
def add_user(self, email: str, name: str, college: str) -> User: """ adds a user to the system. Usually will be called after a successful sign-up. Args: email name college Returns: the created User object """ profile = Profile(name=name, college=college) logger.info('a new user signed up with email: {}'.format(email)) user = self.usersRepository.create(email, profile) recommendations = self._seed_initial_recommendations() self.add_recommendations(user.id, recommendations) return user
def test_set_unavailable_to_mentor(client): token = '123' email = '*****@*****.**' verification_email = VerificationEmail(email=email) with app.app_context(): db.session.add(verification_email) db.session.commit() db.session.add( VerificationToken(token=token, email_id=verification_email.id)) profile = Profile( name='Test', contact_email=email, verification_email_id=verification_email.id, cadence='monthly', ) db.session.add(profile) db.session.commit() data = {'available': False} response = client.post('/api/availability', json=data, headers={'Authorization': f'Token {token}'}) assert response.status_code == HTTPStatus.OK.value assert response.json['available'] is False with app.app_context(): assert Profile.query.all()[0].available_for_mentoring is False
def test_update_profile(client): token = '1234' verification_email = save(VerificationEmail(email='*****@*****.**')) save(VerificationToken(token=token, email_id=verification_email.id)) profile = save( Profile( name='Test User', verification_email_id=verification_email.id, contact_email='*****@*****.**', cadence='monthly', )) new_profile = { 'name': 'New User', 'contact_email': '*****@*****.**', 'affiliations': [], 'clinical_specialties': [], 'professional_interests': [], 'parts_of_me': [], 'activities': [], 'degrees': [], } response = client.put( f'/api/profiles/{profile.id}', json=new_profile, headers={'Authorization': f'Token {token}'}, ) assert response.status_code == http.HTTPStatus.OK.value check_json = { key: value for key, value in response.json.items() if key != 'id' } assert check_json == { 'activities': [], 'additional_information': '', 'professional_interests': [], 'affiliations': [], 'cadence': 'monthly', 'clinical_specialties': [], 'degrees': [], 'contact_email': '*****@*****.**', 'name': 'New User', 'other_cadence': None, 'parts_of_me': [], 'profile_image_url': None, 'willing_discuss_personal': False, 'willing_goal_setting': False, 'willing_networking': False, 'willing_career_guidance': False, 'willing_student_group': False, 'willing_shadowing': False, }
def setUp(self) -> None: michael = User(user_id='mscott', email='*****@*****.**', profile=Profile(name='Michael Scott', college='Scranton University')) users_repository: UsersRepository = MagicMock() users_repository.get = MagicMock(return_value=michael) users_repository.create = MagicMock(return_value=michael) users_repository.update = MagicMock(return_value=michael) connections_repository: ConnectionsRepository = MagicMock() recommendations_repository: RecommendationsRepository = MagicMock() self.controller = Controller(users_repository, connections_repository, recommendations_repository)
def _object_mapper(user_dict: dict) -> User: try: return User(user_id=user_dict['id'], email=user_dict['email'], profile=Profile(name=user_dict['name'], college=user_dict['college'])) except KeyError as e: message = "malformed data in json file" logger.error(message) raise DataIntegrityException(message, e)
def main(): context() profiles = [ Profile( name='Manatee', contact_email='*****@*****.**', profile_image_url= f'{CLOUDINARY_PREFIX}/v1528666929/keonolml4mwgsixpprsh.png', clinical_specialties=[ # 'Advanced Heart Failure & Transplant Cardiology', # 'Clinical Cardiac Electrophysiology', # 'Cardiovascular Disease', ], affiliations=[], # 'Forsyth Institute'.split(), activities=[], cadence='monthly', ), Profile( name='Falcon!!', contact_email='*****@*****.**', profile_image_url= f'{CLOUDINARY_PREFIX}/v1528666737/nbnszojbvgqaxxlv1izh.png', clinical_specialties= [], # 'Endocrinology, Diabetes & Metabolism'.split(','), affiliations=[], # 'Dana-Farber Cancer Institute', activities=[], additional_information=( 'I am excited to take students under my wing and' ' share my love of diabetes outcomes research!'), willing_shadowing=True, willing_networking=True, willing_goal_setting=True, willing_discuss_personal=True, willing_career_guidance=False, cadence='monthly', ), Profile( name='California Sea Lion', contact_email='*****@*****.**', profile_image_url= f'{CLOUDINARY_PREFIX}/v1528667191/aqzz8rwsutgdx4bzpbbn.png', clinical_specialties= [], # 'Pediatric Hematology-Oncology,Pain Medicine'.split(','), affiliations=[], # 'Children’s Hospital Boston', activities=[], additional_information=( "I'm happy to discuss personal aspects," ' such as work-life balance, and how my role as a mother' ' impacts my work in pediatrics.'), willing_shadowing=True, willing_networking=True, willing_goal_setting=True, willing_discuss_personal=True, willing_career_guidance=False, cadence='monthly', ), Profile( name='Cat', contact_email='*****@*****.**', profile_image_url= f'{CLOUDINARY_PREFIX}/v1528741344/eo4fleywh2ljmj27i89s.png', clinical_specialties= [], # 'Dermatology,Procedural Dermatology'.split(','), affiliations=[], # 'Brigham and Women’s Hospital', activities=[], additional_information= ("I'm interested in meeting with students who are passionate about the skin!" ), willing_shadowing=True, willing_networking=False, willing_goal_setting=True, willing_discuss_personal=False, willing_career_guidance=False, cadence='quarterly', ), Profile( name='Puppy', contact_email='*****@*****.**', profile_image_url= f'{CLOUDINARY_PREFIX}/v1528668241/q8k83ozecn81gjq1qpjp.png', clinical_specialties= [], # ['Addiction Psychiatry', 'Child & Adolescent Psychiatry'], affiliations=[], # 'McLean Hospital', activities=[], additional_information= ('Looking forward to discussing all aspects of life and medicine with students.' ), willing_shadowing=True, willing_networking=True, willing_goal_setting=True, willing_discuss_personal=True, willing_career_guidance=False, cadence='biweekly', ), ] for index, profile in enumerate(profiles): email = VerificationEmail(email=f'animal{index}@gmail.com', is_mentor=True) save(email) profile.verification_email_id = email.id save(profile) print(profile.id) save(VerificationToken(token=str(uuid.uuid4()), email_id=email.id))
import uuid from server.models import VerificationEmail, VerificationToken, save, Profile profiles = [ Profile( name='Manatee', contact_email='*****@*****.**', profile_image_url= 'https://res.cloudinary.com/dxzddmun4/image/upload/c_crop,h_200,w_200/v1528666929/keonolml4mwgsixpprsh.png', clinical_specialties= 'Advanced Heart Failure & Transplant Cardiology,Clinical Cardiac Electrophysiology,Cardiovascular Disease' .split(','), affiliations='Forsyth Institute'.split(), activities=[], cadence='monthly', ), Profile( name='Falcon!!', contact_email='*****@*****.**', profile_image_url= 'https://res.cloudinary.com/dxzddmun4/image/upload/c_crop,h_200,w_200/v1528666737/nbnszojbvgqaxxlv1izh.png', clinical_specialties='Endocrinology, Diabetes & Metabolism'.split(','), affiliations='Dana-Farber Cancer Institute', activities=[], additional_information= 'I am excited to take students under my wing and share my love of diabetes outcomes research!', willing_shadowing=True, willing_networking=True, willing_goal_setting=True, willing_discuss_personal=True,