Beispiel #1
0
def get_user(username: str,
             provider: ProviderType,
             from_local: Optional[bool] = False,
             data_base: SESSION = Depends(get_con)):
    if from_local:
        user = ModelUser.get_user_by_username(username=username,
                                              db_session=data_base)
        # add provider
        if not user:
            return JSONResponse(status_code=status.HTTP_404_NOT_FOUND,
                                content='User not found in database')

        repositories = ModelRepository.get_all_from_local(db_session=data_base,
                                                          user_id=user.id)
        names = [repository.name for repository in repositories]
        return UserOutputRepos(id=user.id,
                               login=user.login,
                               email=user.email,
                               twitter_username=user.twitter_username,
                               repos=names)

    source = dealer.get_provider(provider=provider)
    user = source.get_user(username=username)
    if not user:
        return JSONResponse(status_code=status.HTTP_404_NOT_FOUND,
                            content='User not found remotely')

    repositories = source.get_all_repos(username=username)
    names = [repository.name for repository in repositories]

    return UserOutputRepos(id=user.id,
                           login=user.login,
                           email=user.email,
                           twitter_username=user.twitter_username,
                           repos=names)
Beispiel #2
0
def update_user(username: str,
                provider: ProviderType,
                data_base: SESSION = Depends(get_con)):
    source = dealer.get_provider(provider=provider)
    user = source.get_user(username=username)

    if not user:
        return JSONResponse(status_code=status.HTTP_404_NOT_FOUND,
                            content=dict(message='User not found remotely'))

    model_user = ModelUser.get_user_by_username(username=user.login,
                                                db_session=data_base)

    if not model_user:
        return JSONResponse(status_code=status.HTTP_404_NOT_FOUND,
                            content=dict(message='User not found in database'))

    status_user, message = model_user.update(
        connection=data_base,
        email=user.email,
        twitter_username=user.twitter_username)

    if not status_user:
        return JSONResponse(status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
                            content=dict(message='Database error',
                                         details=message))

    return 'User updated successfully'
Beispiel #3
0
def authenticate(username, password):
    users = User()
    user = users.get_user_by_username(username)
    if user and safe_str_cmp(user.password.encode('utf-8'),
                             password.encode('utf-8')):
        return user