Beispiel #1
0
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)
Beispiel #2
0
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
Beispiel #4
0
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,
    }
Beispiel #6
0
 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)
Beispiel #8
0
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))
Beispiel #9
0
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,